Skip to content

Commit dc72326

Browse files
authored
Add more streams keys/features (#2358)
* add status regression note
1 parent 4778d03 commit dc72326

File tree

2 files changed

+273
-44
lines changed

2 files changed

+273
-44
lines changed

features/streams.yml

Lines changed: 91 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,94 @@ description: The streams API creates, composes, and consumes continuously genera
33
spec: https://streams.spec.whatwg.org/
44
caniuse: streams
55
group: streams
6-
# TODO: Later support
7-
# - api.ReadableStreamDefaultController
8-
# - api.ReadableStreamDefaultController.close
9-
# - api.ReadableStreamDefaultController.desiredSize
10-
# - api.ReadableStreamDefaultController.enqueue
11-
# - api.ReadableStreamDefaultController.error
12-
# - api.ReadableStreamDefaultReader
13-
# - api.ReadableStreamDefaultReader.cancel
14-
# - api.ReadableStreamDefaultReader.closed
15-
# - api.ReadableStreamDefaultReader.read
16-
# - api.ReadableStreamDefaultReader.releaseLock
17-
# - api.TransformStream
18-
# - api.TransformStream.TransformStream
19-
# - api.TransformStream.readable
20-
# - api.TransformStream.writable
21-
# - api.TransformStreamDefaultController
22-
# - api.TransformStreamDefaultController.desiredSize
23-
# - api.TransformStreamDefaultController.enqueue
24-
# - api.TransformStreamDefaultController.error
25-
# - api.TransformStreamDefaultController.terminate
26-
# - api.WritableStream.close
27-
# - api.WritableStreamDefaultWriter.WritableStreamDefaultWriter
28-
29-
# TODO: consider BYOB feature
30-
# - api.ReadableStreamBYOBReader
31-
# - api.ReadableStreamBYOBReader.ReadableStreamBYOBReader
32-
# - api.ReadableStreamBYOBReader.cancel
33-
# - api.ReadableStreamBYOBReader.closed
34-
# - api.ReadableStreamBYOBReader.read
35-
# - api.ReadableStreamBYOBReader.releaseLock
36-
# - api.ReadableStreamBYOBRequest
37-
# - api.ReadableStreamBYOBRequest.respond
38-
# - api.ReadableStreamBYOBRequest.respondWithNewView
39-
# - api.ReadableStreamBYOBRequest.view
40-
41-
# TODO: consider abortable stream feature
42-
# - api.WritableStreamDefaultController.signal
6+
# TODO: https://github.com/web-platform-dx/web-features/issues/1971
7+
# Status changed: https://github.com/web-platform-dx/web-features/pull/2358
8+
# 2024-12-19 — low → false — Regressed status to match Caniuse, which considers support beginning at BYOB shipping.
9+
# References:
10+
# - https://caniuse.com/streams
11+
status:
12+
compute_from:
13+
- api.ReadableStreamBYOBReader
14+
compat_features:
15+
- api.ReadableByteStreamController
16+
- api.ReadableByteStreamController.byobRequest
17+
- api.ReadableByteStreamController.close
18+
- api.ReadableByteStreamController.desiredSize
19+
- api.ReadableByteStreamController.enqueue
20+
- api.ReadableByteStreamController.error
21+
- api.ReadableStream.from_static
22+
- api.ReadableStream.transferable
23+
- api.ReadableStream.values
24+
- api.ReadableStreamBYOBReader
25+
- api.ReadableStreamBYOBReader.ReadableStreamBYOBReader
26+
- api.ReadableStreamBYOBReader.cancel
27+
- api.ReadableStreamBYOBReader.closed
28+
- api.ReadableStreamBYOBReader.read
29+
- api.ReadableStreamBYOBReader.read.options_min_parameter
30+
- api.ReadableStreamBYOBReader.releaseLock
31+
- api.ReadableStreamBYOBReader.releaseLock.reject_pending_read_request
32+
- api.ReadableStreamBYOBRequest
33+
- api.ReadableStreamBYOBRequest.respond
34+
- api.ReadableStreamBYOBRequest.respondWithNewView
35+
- api.ReadableStreamBYOBRequest.view
36+
- api.ReadableStreamDefaultController
37+
- api.ReadableStreamDefaultController.close
38+
- api.ReadableStreamDefaultController.desiredSize
39+
- api.ReadableStreamDefaultController.enqueue
40+
- api.ReadableStreamDefaultController.error
41+
- api.ReadableStreamDefaultReader
42+
- api.ReadableStreamDefaultReader.ReadableStreamDefaultReader
43+
- api.ReadableStreamDefaultReader.cancel
44+
- api.ReadableStreamDefaultReader.closed
45+
- api.ReadableStreamDefaultReader.read
46+
- api.ReadableStreamDefaultReader.releaseLock
47+
- api.ReadableStreamDefaultReader.releaseLock.reject_pending_read_request
48+
- api.TextDecoderStream.readable
49+
- api.TextDecoderStream.writable
50+
- api.TextEncoderStream.readable
51+
- api.TextEncoderStream.writable
52+
- api.TransformStream
53+
- api.TransformStream.TransformStream
54+
- api.TransformStream.readable
55+
- api.TransformStream.transferable
56+
- api.TransformStream.writable
57+
- api.TransformStreamDefaultController
58+
- api.TransformStreamDefaultController.desiredSize
59+
- api.TransformStreamDefaultController.enqueue
60+
- api.TransformStreamDefaultController.error
61+
- api.TransformStreamDefaultController.terminate
62+
- api.WritableStream.close
63+
- api.WritableStream.transferable
64+
- api.WritableStreamDefaultController.signal
65+
- api.WritableStreamDefaultWriter.WritableStreamDefaultWriter
66+
- api.ByteLengthQueuingStrategy
67+
- api.ByteLengthQueuingStrategy.ByteLengthQueuingStrategy
68+
- api.ByteLengthQueuingStrategy.highWaterMark
69+
- api.ByteLengthQueuingStrategy.size
70+
- api.CountQueuingStrategy
71+
- api.CountQueuingStrategy.CountQueuingStrategy
72+
- api.CountQueuingStrategy.highWaterMark
73+
- api.CountQueuingStrategy.size
74+
- api.ReadableStream
75+
- api.ReadableStream.ReadableStream
76+
- api.ReadableStream.cancel
77+
- api.ReadableStream.getReader
78+
- api.ReadableStream.locked
79+
- api.ReadableStream.pipeThrough
80+
- api.ReadableStream.pipeTo
81+
- api.ReadableStream.tee
82+
- api.WritableStream
83+
- api.WritableStream.WritableStream
84+
- api.WritableStream.abort
85+
- api.WritableStream.getWriter
86+
- api.WritableStream.locked
87+
- api.WritableStreamDefaultController
88+
- api.WritableStreamDefaultController.error
89+
- api.WritableStreamDefaultWriter
90+
- api.WritableStreamDefaultWriter.abort
91+
- api.WritableStreamDefaultWriter.close
92+
- api.WritableStreamDefaultWriter.closed
93+
- api.WritableStreamDefaultWriter.desiredSize
94+
- api.WritableStreamDefaultWriter.ready
95+
- api.WritableStreamDefaultWriter.releaseLock
96+
- api.WritableStreamDefaultWriter.write

features/streams.yml.dist

Lines changed: 182 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,13 @@
22
# Do not edit this file by hand. Edit the source file instead!
33

44
status:
5-
baseline: low
6-
baseline_low_date: 2022-06-28
5+
baseline: false
76
support:
8-
chrome: "59"
9-
chrome_android: "59"
10-
edge: "79"
7+
chrome: "89"
8+
chrome_android: "89"
9+
edge: "89"
1110
firefox: "102"
1211
firefox_android: "102"
13-
safari: "14.1"
14-
safari_ios: "14.5"
1512
compat_features:
1613
# baseline: high
1714
# baseline_low_date: 2019-01-29
@@ -61,6 +58,40 @@ compat_features:
6158
- api.CountQueuingStrategy.highWaterMark
6259
- api.CountQueuingStrategy.size
6360

61+
# baseline: high
62+
# baseline_low_date: 2020-01-15
63+
# baseline_high_date: 2022-07-15
64+
# support:
65+
# chrome: "43"
66+
# chrome_android: "43"
67+
# edge: "79"
68+
# firefox: "65"
69+
# firefox_android: "65"
70+
# safari: "10"
71+
# safari_ios: "10"
72+
- api.ReadableStreamDefaultReader
73+
- api.ReadableStreamDefaultReader.cancel
74+
- api.ReadableStreamDefaultReader.closed
75+
- api.ReadableStreamDefaultReader.read
76+
- api.ReadableStreamDefaultReader.releaseLock
77+
78+
# baseline: high
79+
# baseline_low_date: 2020-01-15
80+
# baseline_high_date: 2022-07-15
81+
# support:
82+
# chrome: "52"
83+
# chrome_android: "52"
84+
# edge: "79"
85+
# firefox: "65"
86+
# firefox_android: "65"
87+
# safari: "10"
88+
# safari_ios: "10"
89+
- api.ReadableStreamDefaultController
90+
- api.ReadableStreamDefaultController.close
91+
- api.ReadableStreamDefaultController.desiredSize
92+
- api.ReadableStreamDefaultController.enqueue
93+
- api.ReadableStreamDefaultController.error
94+
6495
# baseline: high
6596
# baseline_low_date: 2020-01-15
6697
# baseline_high_date: 2022-07-15
@@ -115,6 +146,32 @@ compat_features:
115146
# safari_ios: "10.3"
116147
- api.ReadableStream.pipeTo
117148

149+
# baseline: high
150+
# baseline_low_date: 2022-05-03
151+
# baseline_high_date: 2024-11-03
152+
# support:
153+
# chrome: "78"
154+
# chrome_android: "78"
155+
# edge: "79"
156+
# firefox: "100"
157+
# firefox_android: "100"
158+
# safari: "14.1"
159+
# safari_ios: "14.5"
160+
- api.WritableStreamDefaultWriter.WritableStreamDefaultWriter
161+
162+
# baseline: high
163+
# baseline_low_date: 2022-05-03
164+
# baseline_high_date: 2024-11-03
165+
# support:
166+
# chrome: "81"
167+
# chrome_android: "81"
168+
# edge: "81"
169+
# firefox: "100"
170+
# firefox_android: "100"
171+
# safari: "14.1"
172+
# safari_ios: "14.5"
173+
- api.WritableStream.close
174+
118175
# baseline: low
119176
# baseline_low_date: 2022-06-28
120177
# support:
@@ -126,3 +183,121 @@ compat_features:
126183
# safari: "10.1"
127184
# safari_ios: "10.3"
128185
- api.ReadableStream.pipeThrough
186+
187+
# baseline: low
188+
# baseline_low_date: 2022-06-28
189+
# support:
190+
# chrome: "67"
191+
# chrome_android: "67"
192+
# edge: "79"
193+
# firefox: "102"
194+
# firefox_android: "102"
195+
# safari: "14.1"
196+
# safari_ios: "14.5"
197+
- api.TransformStream
198+
- api.TransformStream.TransformStream
199+
- api.TransformStream.readable
200+
- api.TransformStream.writable
201+
- api.TransformStreamDefaultController
202+
- api.TransformStreamDefaultController.desiredSize
203+
- api.TransformStreamDefaultController.enqueue
204+
- api.TransformStreamDefaultController.error
205+
- api.TransformStreamDefaultController.terminate
206+
207+
# baseline: low
208+
# baseline_low_date: 2022-09-20
209+
# support:
210+
# chrome: "71"
211+
# chrome_android: "71"
212+
# edge: "79"
213+
# firefox: "105"
214+
# firefox_android: "105"
215+
# safari: "14.1"
216+
# safari_ios: "14.5"
217+
- api.TextDecoderStream.readable
218+
- api.TextDecoderStream.writable
219+
- api.TextEncoderStream.readable
220+
- api.TextEncoderStream.writable
221+
222+
# baseline: low
223+
# baseline_low_date: 2023-03-27
224+
# support:
225+
# chrome: "98"
226+
# chrome_android: "98"
227+
# edge: "98"
228+
# firefox: "100"
229+
# firefox_android: "100"
230+
# safari: "16.4"
231+
# safari_ios: "16.4"
232+
- api.WritableStreamDefaultController.signal
233+
234+
# baseline: false
235+
# support:
236+
# chrome: "78"
237+
# chrome_android: "78"
238+
# edge: "79"
239+
# firefox: "100"
240+
# firefox_android: "100"
241+
- api.ReadableStreamDefaultReader.ReadableStreamDefaultReader
242+
243+
# baseline: false
244+
# support:
245+
# chrome: "87"
246+
# chrome_android: "87"
247+
# edge: "87"
248+
# firefox: "103"
249+
# firefox_android: "103"
250+
- api.ReadableStream.transferable
251+
- api.TransformStream.transferable
252+
- api.WritableStream.transferable
253+
254+
# ⬇️ Same status as overall feature ⬇️
255+
# baseline: false
256+
# support:
257+
# chrome: "89"
258+
# chrome_android: "89"
259+
# edge: "89"
260+
# firefox: "102"
261+
# firefox_android: "102"
262+
- api.ReadableByteStreamController
263+
- api.ReadableByteStreamController.byobRequest
264+
- api.ReadableByteStreamController.close
265+
- api.ReadableByteStreamController.desiredSize
266+
- api.ReadableByteStreamController.enqueue
267+
- api.ReadableByteStreamController.error
268+
- api.ReadableStreamBYOBReader
269+
- api.ReadableStreamBYOBReader.ReadableStreamBYOBReader
270+
- api.ReadableStreamBYOBReader.cancel
271+
- api.ReadableStreamBYOBReader.closed
272+
- api.ReadableStreamBYOBReader.read
273+
- api.ReadableStreamBYOBReader.releaseLock
274+
- api.ReadableStreamBYOBRequest
275+
- api.ReadableStreamBYOBRequest.respond
276+
- api.ReadableStreamBYOBRequest.respondWithNewView
277+
- api.ReadableStreamBYOBRequest.view
278+
279+
# baseline: false
280+
# support:
281+
# chrome: "124"
282+
# chrome_android: "124"
283+
# edge: "124"
284+
# firefox: "110"
285+
# firefox_android: "110"
286+
- api.ReadableStream.values
287+
288+
# baseline: false
289+
# support:
290+
# firefox: "102"
291+
# firefox_android: "102"
292+
- api.ReadableStreamBYOBReader.releaseLock.reject_pending_read_request
293+
- api.ReadableStreamDefaultReader.releaseLock.reject_pending_read_request
294+
295+
# baseline: false
296+
# support:
297+
# firefox: "117"
298+
# firefox_android: "117"
299+
- api.ReadableStream.from_static
300+
301+
# baseline: false
302+
# support: {}
303+
- api.ReadableStreamBYOBReader.read.options_min_parameter

0 commit comments

Comments
 (0)