From 5e4565e7cdaf9a21951da7b8b176a542aed74480 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Fri, 29 Nov 2024 11:40:53 +0100 Subject: [PATCH 1/5] Add more streams keys/features --- features/streams.yml | 122 ++++++++++++++++-------- features/streams.yml.dist | 190 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 265 insertions(+), 47 deletions(-) diff --git a/features/streams.yml b/features/streams.yml index f36a5c393a3..8f7dea7d525 100644 --- a/features/streams.yml +++ b/features/streams.yml @@ -3,40 +3,88 @@ description: The streams API creates, composes, and consumes continuously genera spec: https://streams.spec.whatwg.org/ caniuse: streams group: streams -# TODO: Later support -# - api.ReadableStreamDefaultController -# - api.ReadableStreamDefaultController.close -# - api.ReadableStreamDefaultController.desiredSize -# - api.ReadableStreamDefaultController.enqueue -# - api.ReadableStreamDefaultController.error -# - api.ReadableStreamDefaultReader -# - api.ReadableStreamDefaultReader.cancel -# - api.ReadableStreamDefaultReader.closed -# - api.ReadableStreamDefaultReader.read -# - api.ReadableStreamDefaultReader.releaseLock -# - api.TransformStream -# - api.TransformStream.TransformStream -# - api.TransformStream.readable -# - api.TransformStream.writable -# - api.TransformStreamDefaultController -# - api.TransformStreamDefaultController.desiredSize -# - api.TransformStreamDefaultController.enqueue -# - api.TransformStreamDefaultController.error -# - api.TransformStreamDefaultController.terminate -# - api.WritableStream.close -# - api.WritableStreamDefaultWriter.WritableStreamDefaultWriter - -# TODO: consider BYOB feature -# - api.ReadableStreamBYOBReader -# - api.ReadableStreamBYOBReader.ReadableStreamBYOBReader -# - api.ReadableStreamBYOBReader.cancel -# - api.ReadableStreamBYOBReader.closed -# - api.ReadableStreamBYOBReader.read -# - api.ReadableStreamBYOBReader.releaseLock -# - api.ReadableStreamBYOBRequest -# - api.ReadableStreamBYOBRequest.respond -# - api.ReadableStreamBYOBRequest.respondWithNewView -# - api.ReadableStreamBYOBRequest.view - -# TODO: consider abortable stream feature -# - api.WritableStreamDefaultController.signal +compat_features: + - api.ReadableByteStreamController + - api.ReadableByteStreamController.byobRequest + - api.ReadableByteStreamController.close + - api.ReadableByteStreamController.desiredSize + - api.ReadableByteStreamController.enqueue + - api.ReadableByteStreamController.error + - api.ReadableStream.from_static + - api.ReadableStream.transferable + - api.ReadableStream.values + # TODO: consider BYOB feature + - api.ReadableStreamBYOBReader + - api.ReadableStreamBYOBReader.ReadableStreamBYOBReader + - api.ReadableStreamBYOBReader.cancel + - api.ReadableStreamBYOBReader.closed + - api.ReadableStreamBYOBReader.read + - api.ReadableStreamBYOBReader.read.options_min_parameter + - api.ReadableStreamBYOBReader.releaseLock + - api.ReadableStreamBYOBReader.releaseLock.reject_pending_read_request + - api.ReadableStreamBYOBRequest + - api.ReadableStreamBYOBRequest.respond + - api.ReadableStreamBYOBRequest.respondWithNewView + - api.ReadableStreamBYOBRequest.view + - api.ReadableStreamDefaultController + - api.ReadableStreamDefaultController.close + - api.ReadableStreamDefaultController.desiredSize + - api.ReadableStreamDefaultController.enqueue + - api.ReadableStreamDefaultController.error + - api.ReadableStreamDefaultReader + - api.ReadableStreamDefaultReader.ReadableStreamDefaultReader + - api.ReadableStreamDefaultReader.cancel + - api.ReadableStreamDefaultReader.closed + - api.ReadableStreamDefaultReader.read + - api.ReadableStreamDefaultReader.releaseLock + - api.ReadableStreamDefaultReader.releaseLock.reject_pending_read_request + - api.TextDecoderStream.readable + - api.TextDecoderStream.writable + - api.TextEncoderStream.readable + - api.TextEncoderStream.writable + - api.TransformStream + - api.TransformStream.TransformStream + - api.TransformStream.readable + - api.TransformStream.transferable + - api.TransformStream.writable + - api.TransformStreamDefaultController + - api.TransformStreamDefaultController.desiredSize + - api.TransformStreamDefaultController.enqueue + - api.TransformStreamDefaultController.error + - api.TransformStreamDefaultController.terminate + - api.WritableStream.close + - api.WritableStream.transferable + # TODO: consider abortable stream feature + - api.WritableStreamDefaultController.signal + - api.WritableStreamDefaultWriter.WritableStreamDefaultWriter + - api.ByteLengthQueuingStrategy + - api.ByteLengthQueuingStrategy.ByteLengthQueuingStrategy + - api.ByteLengthQueuingStrategy.highWaterMark + - api.ByteLengthQueuingStrategy.size + - api.CountQueuingStrategy + - api.CountQueuingStrategy.CountQueuingStrategy + - api.CountQueuingStrategy.highWaterMark + - api.CountQueuingStrategy.size + - api.ReadableStream + - api.ReadableStream.ReadableStream + - api.ReadableStream.cancel + - api.ReadableStream.getReader + - api.ReadableStream.locked + - api.ReadableStream.pipeThrough + - api.ReadableStream.pipeTo + - api.ReadableStream.tee + - api.WritableStream + - api.WritableStream.WritableStream + - api.WritableStream.abort + - api.WritableStream.getWriter + - api.WritableStream.locked + - api.WritableStreamDefaultController + - api.WritableStreamDefaultController.error + - api.WritableStreamDefaultWriter + - api.WritableStreamDefaultWriter.abort + - api.WritableStreamDefaultWriter.close + - api.WritableStreamDefaultWriter.closed + - api.WritableStreamDefaultWriter.desiredSize + - api.WritableStreamDefaultWriter.ready + - api.WritableStreamDefaultWriter.releaseLock + - api.WritableStreamDefaultWriter.write diff --git a/features/streams.yml.dist b/features/streams.yml.dist index 719d416694e..6acef8b2ecc 100644 --- a/features/streams.yml.dist +++ b/features/streams.yml.dist @@ -2,16 +2,8 @@ # Do not edit this file by hand. Edit the source file instead! status: - baseline: low - baseline_low_date: 2022-06-28 - support: - chrome: "59" - chrome_android: "59" - edge: "79" - firefox: "102" - firefox_android: "102" - safari: "14.1" - safari_ios: "14.5" + baseline: false + support: {} compat_features: # baseline: high # baseline_low_date: 2019-01-29 @@ -61,6 +53,40 @@ compat_features: - api.CountQueuingStrategy.highWaterMark - api.CountQueuingStrategy.size + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "43" + # chrome_android: "43" + # edge: "79" + # firefox: "65" + # firefox_android: "65" + # safari: "10" + # safari_ios: "10" + - api.ReadableStreamDefaultReader + - api.ReadableStreamDefaultReader.cancel + - api.ReadableStreamDefaultReader.closed + - api.ReadableStreamDefaultReader.read + - api.ReadableStreamDefaultReader.releaseLock + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "52" + # chrome_android: "52" + # edge: "79" + # firefox: "65" + # firefox_android: "65" + # safari: "10" + # safari_ios: "10" + - api.ReadableStreamDefaultController + - api.ReadableStreamDefaultController.close + - api.ReadableStreamDefaultController.desiredSize + - api.ReadableStreamDefaultController.enqueue + - api.ReadableStreamDefaultController.error + # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -115,6 +141,32 @@ compat_features: # safari_ios: "10.3" - api.ReadableStream.pipeTo + # baseline: high + # baseline_low_date: 2022-05-03 + # baseline_high_date: 2024-11-03 + # support: + # chrome: "78" + # chrome_android: "78" + # edge: "79" + # firefox: "100" + # firefox_android: "100" + # safari: "14.1" + # safari_ios: "14.5" + - api.WritableStreamDefaultWriter.WritableStreamDefaultWriter + + # baseline: high + # baseline_low_date: 2022-05-03 + # baseline_high_date: 2024-11-03 + # support: + # chrome: "81" + # chrome_android: "81" + # edge: "81" + # firefox: "100" + # firefox_android: "100" + # safari: "14.1" + # safari_ios: "14.5" + - api.WritableStream.close + # baseline: low # baseline_low_date: 2022-06-28 # support: @@ -126,3 +178,121 @@ compat_features: # safari: "10.1" # safari_ios: "10.3" - api.ReadableStream.pipeThrough + + # baseline: low + # baseline_low_date: 2022-06-28 + # support: + # chrome: "67" + # chrome_android: "67" + # edge: "79" + # firefox: "102" + # firefox_android: "102" + # safari: "14.1" + # safari_ios: "14.5" + - api.TransformStream + - api.TransformStream.TransformStream + - api.TransformStream.readable + - api.TransformStream.writable + - api.TransformStreamDefaultController + - api.TransformStreamDefaultController.desiredSize + - api.TransformStreamDefaultController.enqueue + - api.TransformStreamDefaultController.error + - api.TransformStreamDefaultController.terminate + + # baseline: low + # baseline_low_date: 2022-09-20 + # support: + # chrome: "71" + # chrome_android: "71" + # edge: "79" + # firefox: "105" + # firefox_android: "105" + # safari: "14.1" + # safari_ios: "14.5" + - api.TextDecoderStream.readable + - api.TextDecoderStream.writable + - api.TextEncoderStream.readable + - api.TextEncoderStream.writable + + # baseline: low + # baseline_low_date: 2023-03-27 + # support: + # chrome: "98" + # chrome_android: "98" + # edge: "98" + # firefox: "100" + # firefox_android: "100" + # safari: "16.4" + # safari_ios: "16.4" + - api.WritableStreamDefaultController.signal + + # baseline: false + # support: + # chrome: "78" + # chrome_android: "78" + # edge: "79" + # firefox: "100" + # firefox_android: "100" + - api.ReadableStreamDefaultReader.ReadableStreamDefaultReader + + # baseline: false + # support: + # chrome: "87" + # chrome_android: "87" + # edge: "87" + # firefox: "103" + # firefox_android: "103" + - api.ReadableStream.transferable + - api.TransformStream.transferable + - api.WritableStream.transferable + + # baseline: false + # support: + # chrome: "89" + # chrome_android: "89" + # edge: "89" + # firefox: "102" + # firefox_android: "102" + - api.ReadableByteStreamController + - api.ReadableByteStreamController.byobRequest + - api.ReadableByteStreamController.close + - api.ReadableByteStreamController.desiredSize + - api.ReadableByteStreamController.enqueue + - api.ReadableByteStreamController.error + - api.ReadableStreamBYOBReader + - api.ReadableStreamBYOBReader.ReadableStreamBYOBReader + - api.ReadableStreamBYOBReader.cancel + - api.ReadableStreamBYOBReader.closed + - api.ReadableStreamBYOBReader.read + - api.ReadableStreamBYOBReader.releaseLock + - api.ReadableStreamBYOBRequest + - api.ReadableStreamBYOBRequest.respond + - api.ReadableStreamBYOBRequest.respondWithNewView + - api.ReadableStreamBYOBRequest.view + + # baseline: false + # support: + # chrome: "124" + # chrome_android: "124" + # edge: "124" + # firefox: "110" + # firefox_android: "110" + - api.ReadableStream.values + + # baseline: false + # support: + # firefox: "102" + # firefox_android: "102" + - api.ReadableStreamBYOBReader.releaseLock.reject_pending_read_request + - api.ReadableStreamDefaultReader.releaseLock.reject_pending_read_request + + # baseline: false + # support: + # firefox: "117" + # firefox_android: "117" + - api.ReadableStream.from_static + + # ⬇️ Same status as overall feature ⬇️ + # baseline: false + # support: {} + - api.ReadableStreamBYOBReader.read.options_min_parameter From c5b309333530314af14dbe91e2fed62ba7ad39e1 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Fri, 29 Nov 2024 14:08:58 +0100 Subject: [PATCH 2/5] caniuse fix --- features/streams.yml | 6 +++++- features/streams.yml.dist | 9 +++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/features/streams.yml b/features/streams.yml index 8f7dea7d525..cb7f7521e78 100644 --- a/features/streams.yml +++ b/features/streams.yml @@ -3,6 +3,11 @@ description: The streams API creates, composes, and consumes continuously genera spec: https://streams.spec.whatwg.org/ caniuse: streams group: streams +# Computing status to match Caniuse, which considers support beginning +# at BYOB shipping. +status: + compute_from: + - api.ReadableByteStreamController compat_features: - api.ReadableByteStreamController - api.ReadableByteStreamController.byobRequest @@ -13,7 +18,6 @@ compat_features: - api.ReadableStream.from_static - api.ReadableStream.transferable - api.ReadableStream.values - # TODO: consider BYOB feature - api.ReadableStreamBYOBReader - api.ReadableStreamBYOBReader.ReadableStreamBYOBReader - api.ReadableStreamBYOBReader.cancel diff --git a/features/streams.yml.dist b/features/streams.yml.dist index 6acef8b2ecc..3558c4e6ce2 100644 --- a/features/streams.yml.dist +++ b/features/streams.yml.dist @@ -3,7 +3,12 @@ status: baseline: false - support: {} + support: + chrome: "89" + chrome_android: "89" + edge: "89" + firefox: "102" + firefox_android: "102" compat_features: # baseline: high # baseline_low_date: 2019-01-29 @@ -246,6 +251,7 @@ compat_features: - api.TransformStream.transferable - api.WritableStream.transferable + # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: # chrome: "89" @@ -292,7 +298,6 @@ compat_features: # firefox_android: "117" - api.ReadableStream.from_static - # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: {} - api.ReadableStreamBYOBReader.read.options_min_parameter From 086c3c65d87719ae263d8a2387e009a986aca174 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Fri, 29 Nov 2024 14:17:47 +0100 Subject: [PATCH 3/5] erp, the right key for caniuse --- features/streams.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/streams.yml b/features/streams.yml index cb7f7521e78..fb90d56ba38 100644 --- a/features/streams.yml +++ b/features/streams.yml @@ -7,7 +7,7 @@ group: streams # at BYOB shipping. status: compute_from: - - api.ReadableByteStreamController + - api.ReadableStreamBYOBReader compat_features: - api.ReadableByteStreamController - api.ReadableByteStreamController.byobRequest From bbe194008f6913f0800cfb53e1ccabaadaa306f0 Mon Sep 17 00:00:00 2001 From: Dietrich Ayala <50103+autonome@users.noreply.github.com> Date: Thu, 19 Dec 2024 16:27:07 +0700 Subject: [PATCH 4/5] Update features/streams.yml Co-authored-by: Daniel D. Beck --- features/streams.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/features/streams.yml b/features/streams.yml index fb90d56ba38..fcc9bdb2c78 100644 --- a/features/streams.yml +++ b/features/streams.yml @@ -58,7 +58,6 @@ compat_features: - api.TransformStreamDefaultController.terminate - api.WritableStream.close - api.WritableStream.transferable - # TODO: consider abortable stream feature - api.WritableStreamDefaultController.signal - api.WritableStreamDefaultWriter.WritableStreamDefaultWriter - api.ByteLengthQueuingStrategy From 72146bdb6b4972f1f33f102b63365c54cde74c40 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Thu, 19 Dec 2024 10:45:38 +0100 Subject: [PATCH 5/5] add status regression note --- features/streams.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/features/streams.yml b/features/streams.yml index fcc9bdb2c78..2a7759c7f03 100644 --- a/features/streams.yml +++ b/features/streams.yml @@ -3,8 +3,11 @@ description: The streams API creates, composes, and consumes continuously genera spec: https://streams.spec.whatwg.org/ caniuse: streams group: streams -# Computing status to match Caniuse, which considers support beginning -# at BYOB shipping. +# TODO: https://github.com/web-platform-dx/web-features/issues/1971 +# Status changed: https://github.com/web-platform-dx/web-features/pull/2358 +# 2024-12-19 — low → false — Regressed status to match Caniuse, which considers support beginning at BYOB shipping. +# References: +# - https://caniuse.com/streams status: compute_from: - api.ReadableStreamBYOBReader