diff --git a/features/audio.yml.dist b/features/audio.yml.dist index b0b62bcde6b..1f8ae48685d 100644 --- a/features/audio.yml.dist +++ b/features/audio.yml.dist @@ -72,12 +72,12 @@ compat_features: - api.HTMLAudioElement.Audio # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "15" # chrome_android: "18" - # edge: "18" + # edge: ≤18 # firefox: "11" # firefox_android: "14" # safari: "6" @@ -90,7 +90,7 @@ compat_features: # support: # chrome: "33" # chrome_android: "33" - # edge: "18" + # edge: ≤18 # firefox: "74" # firefox_android: "79" # safari: "10" diff --git a/features/br.yml.dist b/features/br.yml.dist index 9c3b5d03338..ca847dbc789 100644 --- a/features/br.yml.dist +++ b/features/br.yml.dist @@ -11,8 +11,8 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: # baseline: high # baseline_low_date: 2015-07-29 @@ -37,6 +37,6 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.br diff --git a/features/code.yml.dist b/features/code.yml.dist index 21500bbf05f..8b95cd4a1ea 100644 --- a/features/code.yml.dist +++ b/features/code.yml.dist @@ -11,7 +11,7 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: - html.elements.code diff --git a/features/draft/file-and-directory-entries.yml.dist b/features/draft/file-and-directory-entries.yml.dist index 0d80989567c..8fb78306aa1 100644 --- a/features/draft/file-and-directory-entries.yml.dist +++ b/features/draft/file-and-directory-entries.yml.dist @@ -12,12 +12,12 @@ status: safari_ios: "16.4" compat_features: # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "7" # chrome_android: "18" - # edge: "18" + # edge: ≤18 # firefox: "50" # firefox_android: "50" # safari: "11.1" @@ -27,12 +27,12 @@ compat_features: - api.FileSystem.root # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "8" # chrome_android: "18" - # edge: "18" + # edge: ≤18 # firefox: "50" # firefox_android: "50" # safari: "11.1" diff --git a/features/draft/html-elements/bdo.yml.dist b/features/draft/html-elements/bdo.yml.dist index 5bd1966f3ac..547f85f8d7d 100644 --- a/features/draft/html-elements/bdo.yml.dist +++ b/features/draft/html-elements/bdo.yml.dist @@ -6,12 +6,12 @@ status: baseline_low_date: 2015-07-29 baseline_high_date: 2018-01-29 support: - chrome: "15" + chrome: ≤15 chrome_android: "18" edge: "12" firefox: "10" firefox_android: "10" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: - html.elements.bdo diff --git a/features/draft/html-elements/blockquote.yml.dist b/features/draft/html-elements/blockquote.yml.dist index 4cbdd97b7ae..553cab102bc 100644 --- a/features/draft/html-elements/blockquote.yml.dist +++ b/features/draft/html-elements/blockquote.yml.dist @@ -11,8 +11,8 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: - html.elements.blockquote - html.elements.blockquote.cite diff --git a/features/draft/html-elements/button.yml.dist b/features/draft/html-elements/button.yml.dist index 9279f545c7f..e794d9807f5 100644 --- a/features/draft/html-elements/button.yml.dist +++ b/features/draft/html-elements/button.yml.dist @@ -41,8 +41,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.button - html.elements.button.disabled - html.elements.button.name diff --git a/features/draft/html-elements/cite.yml.dist b/features/draft/html-elements/cite.yml.dist index af86e059500..cac4b3a0e33 100644 --- a/features/draft/html-elements/cite.yml.dist +++ b/features/draft/html-elements/cite.yml.dist @@ -11,7 +11,7 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: - html.elements.cite diff --git a/features/draft/html-elements/data.yml.dist b/features/draft/html-elements/data.yml.dist index 03b0d6e6714..c0c71ebebbf 100644 --- a/features/draft/html-elements/data.yml.dist +++ b/features/draft/html-elements/data.yml.dist @@ -3,12 +3,12 @@ status: baseline: high - baseline_low_date: 2018-10-02 - baseline_high_date: 2021-04-02 + baseline_low_date: ≤2018-10-02 + baseline_high_date: ≤2021-04-02 support: chrome: "62" chrome_android: "62" - edge: "18" + edge: ≤18 firefox: "22" firefox_android: "22" safari: "10" @@ -30,12 +30,12 @@ compat_features: # ⬇️ Same status as overall feature ⬇️ # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "62" # chrome_android: "62" - # edge: "18" + # edge: ≤18 # firefox: "22" # firefox_android: "22" # safari: "10" diff --git a/features/draft/html-elements/dd.yml.dist b/features/draft/html-elements/dd.yml.dist index ca253a5a7df..58fc68ba13f 100644 --- a/features/draft/html-elements/dd.yml.dist +++ b/features/draft/html-elements/dd.yml.dist @@ -11,8 +11,8 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: # baseline: high # baseline_low_date: 2015-07-29 @@ -37,8 +37,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.dd - html.elements.dl - html.elements.dt diff --git a/features/draft/html-elements/del.yml.dist b/features/draft/html-elements/del.yml.dist index 034a217ff42..ed4922b7004 100644 --- a/features/draft/html-elements/del.yml.dist +++ b/features/draft/html-elements/del.yml.dist @@ -11,8 +11,8 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: # baseline: high # baseline_low_date: 2015-07-29 @@ -39,8 +39,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.del - html.elements.del.cite - html.elements.del.datetime diff --git a/features/draft/html-elements/em.yml.dist b/features/draft/html-elements/em.yml.dist index 342dde65bdf..ae8128635d3 100644 --- a/features/draft/html-elements/em.yml.dist +++ b/features/draft/html-elements/em.yml.dist @@ -11,7 +11,7 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: - html.elements.em diff --git a/features/draft/html-elements/embed.yml.dist b/features/draft/html-elements/embed.yml.dist index 7f93e108e67..bb89fded12e 100644 --- a/features/draft/html-elements/embed.yml.dist +++ b/features/draft/html-elements/embed.yml.dist @@ -11,8 +11,8 @@ status: edge: "79" firefox: "1.5" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: # baseline: high # baseline_low_date: 2015-07-29 @@ -39,8 +39,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.embed - html.elements.embed.height - html.elements.embed.src @@ -81,6 +81,6 @@ compat_features: # edge: "79" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.embed.type diff --git a/features/draft/html-elements/fieldset.yml.dist b/features/draft/html-elements/fieldset.yml.dist index 2fc8b6c41c9..26e439026a7 100644 --- a/features/draft/html-elements/fieldset.yml.dist +++ b/features/draft/html-elements/fieldset.yml.dist @@ -49,8 +49,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.fieldset - html.elements.fieldset.form @@ -125,7 +125,7 @@ compat_features: # support: # chrome: "57" # chrome_android: "57" - # edge: "18" + # edge: ≤18 # firefox: "4" # firefox_android: "4" # safari: "13" diff --git a/features/draft/html-elements/form.yml.dist b/features/draft/html-elements/form.yml.dist index cf3a67c3956..aacc06996e4 100644 --- a/features/draft/html-elements/form.yml.dist +++ b/features/draft/html-elements/form.yml.dist @@ -47,8 +47,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.form - html.elements.form.accept-charset - html.elements.form.action diff --git a/features/draft/html-elements/h1.yml.dist b/features/draft/html-elements/h1.yml.dist index 7a1b9e5fae6..7baffcef905 100644 --- a/features/draft/html-elements/h1.yml.dist +++ b/features/draft/html-elements/h1.yml.dist @@ -11,8 +11,8 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: # baseline: high # baseline_low_date: 2015-07-29 @@ -37,8 +37,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.h1 - html.elements.h2 - html.elements.h3 diff --git a/features/draft/html-elements/i.yml.dist b/features/draft/html-elements/i.yml.dist index 97092643743..f683f7e0778 100644 --- a/features/draft/html-elements/i.yml.dist +++ b/features/draft/html-elements/i.yml.dist @@ -11,7 +11,7 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: - html.elements.i diff --git a/features/draft/html-elements/iframe.yml.dist b/features/draft/html-elements/iframe.yml.dist index e5a7b0458d8..4bae0e141bd 100644 --- a/features/draft/html-elements/iframe.yml.dist +++ b/features/draft/html-elements/iframe.yml.dist @@ -35,8 +35,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.iframe - html.elements.iframe.height - html.elements.iframe.name @@ -83,16 +83,16 @@ compat_features: - api.HTMLIFrameElement.sandbox # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "4" # chrome_android: "18" - # edge: "18" + # edge: ≤18 # firefox: "28" # firefox_android: "27" - # safari: "10.1" - # safari_ios: "10.3" + # safari: ≤10.1 + # safari_ios: ≤10.3 - html.elements.iframe.sandbox.allow-popups # baseline: high @@ -126,13 +126,13 @@ compat_features: # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 # support: - # chrome: "49" + # chrome: ≤49 # chrome_android: "49" # edge: "79" - # firefox: "49" + # firefox: ≤49 # firefox_android: "49" - # safari: "10.1" - # safari_ios: "10.3" + # safari: ≤10.1 + # safari_ios: ≤10.3 - html.elements.iframe.sandbox.allow-forms - html.elements.iframe.sandbox.allow-pointer-lock - html.elements.iframe.sandbox.allow-same-origin @@ -180,7 +180,7 @@ compat_features: # chrome: "68" # chrome_android: "68" # edge: "79" - # firefox: "49" + # firefox: ≤49 # firefox_android: "49" - html.elements.iframe.sandbox.allow-orientation-lock diff --git a/features/draft/html-elements/img.yml.dist b/features/draft/html-elements/img.yml.dist index b61e780eb43..e247292bd8d 100644 --- a/features/draft/html-elements/img.yml.dist +++ b/features/draft/html-elements/img.yml.dist @@ -123,12 +123,12 @@ compat_features: - api.HTMLImageElement.sizes # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "34" # chrome_android: "34" - # edge: "18" + # edge: ≤18 # firefox: "38" # firefox_android: "38" # safari: "8" @@ -160,4 +160,16 @@ compat_features: # safari: "11.1" # safari_ios: "11.3" - api.HTMLImageElement.decoding + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "65" + # chrome_android: "65" + # edge: ≤79 + # firefox: "63" + # firefox_android: "63" + # safari: "11.1" + # safari_ios: "11.3" - html.elements.img.decoding diff --git a/features/draft/html-elements/kbd.yml.dist b/features/draft/html-elements/kbd.yml.dist index 389706b4210..5743b4b1476 100644 --- a/features/draft/html-elements/kbd.yml.dist +++ b/features/draft/html-elements/kbd.yml.dist @@ -11,7 +11,7 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: - html.elements.kbd diff --git a/features/draft/html-elements/label.yml.dist b/features/draft/html-elements/label.yml.dist index 97c1618f2a4..23a159ccdd0 100644 --- a/features/draft/html-elements/label.yml.dist +++ b/features/draft/html-elements/label.yml.dist @@ -38,8 +38,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.label - html.elements.label.for diff --git a/features/draft/html-elements/li.yml.dist b/features/draft/html-elements/li.yml.dist index b724cf8388b..808a73dd46d 100644 --- a/features/draft/html-elements/li.yml.dist +++ b/features/draft/html-elements/li.yml.dist @@ -54,8 +54,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.li.value - html.elements.ol - html.elements.ol.start @@ -75,4 +75,16 @@ compat_features: # safari: "6" # safari_ios: "6" - api.HTMLOListElement.reversed + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "18" + # chrome_android: "18" + # edge: ≤79 + # firefox: "18" + # firefox_android: "18" + # safari: "6" + # safari_ios: "6" - html.elements.ol.reversed diff --git a/features/draft/html-elements/link.yml.dist b/features/draft/html-elements/link.yml.dist index a93188f5460..d12add31072 100644 --- a/features/draft/html-elements/link.yml.dist +++ b/features/draft/html-elements/link.yml.dist @@ -6,10 +6,10 @@ status: baseline_low_date: 2020-07-28 baseline_high_date: 2023-01-28 support: - chrome: "80" + chrome: ≤80 chrome_android: "80" edge: "80" - firefox: "72" + firefox: ≤72 firefox_android: "79" safari: "11.1" safari_ios: "11.3" @@ -42,8 +42,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.link - html.elements.link.disabled - html.elements.link.href @@ -124,10 +124,10 @@ compat_features: # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 # support: - # chrome: "80" + # chrome: ≤80 # chrome_android: "80" # edge: "80" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" # safari: "6" # safari_ios: "6" diff --git a/features/draft/html-elements/meta.yml.dist b/features/draft/html-elements/meta.yml.dist index defd0fc716a..04ff08fcb05 100644 --- a/features/draft/html-elements/meta.yml.dist +++ b/features/draft/html-elements/meta.yml.dist @@ -47,8 +47,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.meta.content - html.elements.meta.http-equiv - html.elements.meta.http-equiv.refresh diff --git a/features/draft/html-elements/meter.yml.dist b/features/draft/html-elements/meter.yml.dist index ad38dfbc8f8..18214411240 100644 --- a/features/draft/html-elements/meter.yml.dist +++ b/features/draft/html-elements/meter.yml.dist @@ -52,6 +52,19 @@ compat_features: # chrome: "6" # chrome_android: "18" # edge: "18" + # firefox: "56" + # firefox_android: "56" + # safari: "6" + # safari_ios: "6" + - api.HTMLMeterElement.labels + + # baseline: high + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 + # support: + # chrome: "6" + # chrome_android: "18" + # edge: ≤18 # firefox: "16" # firefox_android: "16" # safari: "6" @@ -63,16 +76,3 @@ compat_features: - html.elements.meter.min - html.elements.meter.optimum - html.elements.meter.value - - # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 - # support: - # chrome: "6" - # chrome_android: "18" - # edge: "18" - # firefox: "56" - # firefox_android: "56" - # safari: "6" - # safari_ios: "6" - - api.HTMLMeterElement.labels diff --git a/features/draft/html-elements/output.yml.dist b/features/draft/html-elements/output.yml.dist index 75472df47d0..d2173b86143 100644 --- a/features/draft/html-elements/output.yml.dist +++ b/features/draft/html-elements/output.yml.dist @@ -40,12 +40,12 @@ compat_features: - api.HTMLOutputElement.labels # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "10" # chrome_android: "18" - # edge: "18" + # edge: ≤18 # firefox: "4" # firefox_android: "4" # safari: "7" diff --git a/features/draft/html-elements/pre.yml.dist b/features/draft/html-elements/pre.yml.dist index 401421c6f85..470b482c74b 100644 --- a/features/draft/html-elements/pre.yml.dist +++ b/features/draft/html-elements/pre.yml.dist @@ -11,8 +11,8 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: # baseline: high # baseline_low_date: 2015-07-29 @@ -37,6 +37,6 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.pre diff --git a/features/draft/html-elements/s.yml.dist b/features/draft/html-elements/s.yml.dist index 6f57d83e7ee..b27f2fe43e2 100644 --- a/features/draft/html-elements/s.yml.dist +++ b/features/draft/html-elements/s.yml.dist @@ -11,7 +11,7 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: - html.elements.s diff --git a/features/draft/html-elements/samp.yml.dist b/features/draft/html-elements/samp.yml.dist index 8ef0c0a3948..00ad578621b 100644 --- a/features/draft/html-elements/samp.yml.dist +++ b/features/draft/html-elements/samp.yml.dist @@ -11,7 +11,7 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: - html.elements.samp diff --git a/features/draft/html-elements/script.yml.dist b/features/draft/html-elements/script.yml.dist index 49efd193244..e77aee2d0cd 100644 --- a/features/draft/html-elements/script.yml.dist +++ b/features/draft/html-elements/script.yml.dist @@ -52,8 +52,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.script.src - html.elements.script.type @@ -92,8 +92,8 @@ compat_features: # edge: "12" # firefox: "3.6" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.script.async # baseline: high diff --git a/features/draft/html-elements/select.yml.dist b/features/draft/html-elements/select.yml.dist index 8347a0151e8..8fe7eb9bde1 100644 --- a/features/draft/html-elements/select.yml.dist +++ b/features/draft/html-elements/select.yml.dist @@ -94,8 +94,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.optgroup - html.elements.optgroup.disabled - html.elements.optgroup.label diff --git a/features/draft/html-elements/small.yml.dist b/features/draft/html-elements/small.yml.dist index 3d26d128bbe..5d8ab2440d6 100644 --- a/features/draft/html-elements/small.yml.dist +++ b/features/draft/html-elements/small.yml.dist @@ -11,7 +11,7 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: - html.elements.small diff --git a/features/draft/html-elements/strong.yml.dist b/features/draft/html-elements/strong.yml.dist index 8aafe6f675f..6623f082031 100644 --- a/features/draft/html-elements/strong.yml.dist +++ b/features/draft/html-elements/strong.yml.dist @@ -11,7 +11,7 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: - html.elements.strong diff --git a/features/draft/html-elements/textarea.yml.dist b/features/draft/html-elements/textarea.yml.dist index 2bb9b7759fa..38b40aa4cdb 100644 --- a/features/draft/html-elements/textarea.yml.dist +++ b/features/draft/html-elements/textarea.yml.dist @@ -55,8 +55,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3" + # safari: ≤4 + # safari_ios: ≤3 - html.elements.textarea # baseline: high @@ -68,8 +68,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.textarea.cols - html.elements.textarea.disabled - html.elements.textarea.form diff --git a/features/draft/html-elements/u.yml.dist b/features/draft/html-elements/u.yml.dist index 5f89a19d9f4..df0dcffd6cc 100644 --- a/features/draft/html-elements/u.yml.dist +++ b/features/draft/html-elements/u.yml.dist @@ -11,7 +11,7 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: - html.elements.u diff --git a/features/draft/html-elements/var.yml.dist b/features/draft/html-elements/var.yml.dist index 703014c2c9b..7e18463599d 100644 --- a/features/draft/html-elements/var.yml.dist +++ b/features/draft/html-elements/var.yml.dist @@ -11,7 +11,7 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: - html.elements.var diff --git a/features/draft/indexeddb.yml.dist b/features/draft/indexeddb.yml.dist index 4e5261769cb..158ed495c2e 100644 --- a/features/draft/indexeddb.yml.dist +++ b/features/draft/indexeddb.yml.dist @@ -146,12 +146,12 @@ compat_features: - api.IDBCursorWithValue.worker_support # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "55" # chrome_android: "55" - # edge: "18" + # edge: ≤18 # firefox: "49" # firefox_android: "49" # safari: "10.1" @@ -277,19 +277,6 @@ compat_features: # safari_ios: "10.3" - api.IDBKeyRange.includes - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "55" - # chrome_android: "55" - # edge: "79" - # firefox: "49" - # firefox_android: "49" - # safari: "10.1" - # safari_ios: "10.3" - - api.IDBIndex.name.renaming_through_name_setter - # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -303,14 +290,26 @@ compat_features: # safari_ios: "10.3" - api.IDBCursor.continuePrimaryKey - # ⬇️ Same status as overall feature ⬇️ # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "55" + # chrome_android: "55" + # edge: ≤79 + # firefox: "49" + # firefox_android: "49" + # safari: "10.1" + # safari_ios: "10.3" + - api.IDBIndex.name.renaming_through_name_setter + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 # support: # chrome: "58" # chrome_android: "58" - # edge: "79" + # edge: ≤79 # firefox: "51" # firefox_android: "51" # safari: "10.1" @@ -371,7 +370,7 @@ compat_features: # support: # chrome: "48" # chrome_android: "48" - # edge: "18" + # edge: ≤18 # firefox: "58" # firefox_android: "58" - api.IDBRequest.error.DOMException diff --git a/features/draft/spec/clear-site-data.yml.dist b/features/draft/spec/clear-site-data.yml.dist index 2c7aa661a7e..f40f2fd26df 100644 --- a/features/draft/spec/clear-site-data.yml.dist +++ b/features/draft/spec/clear-site-data.yml.dist @@ -10,7 +10,7 @@ compat_features: # support: # chrome: "61" # chrome_android: "61" - # edge: "79" + # edge: ≤79 # firefox: "63" # firefox_android: "63" # safari: "17" @@ -21,7 +21,7 @@ compat_features: # support: # chrome: "61" # chrome_android: "61" - # edge: "79" + # edge: ≤79 # firefox: "63" # firefox_android: "63" - http.headers.Clear-Site-Data.cookies @@ -31,7 +31,7 @@ compat_features: # support: # chrome: "61" # chrome_android: "61" - # edge: "79" + # edge: ≤79 - http.headers.Clear-Site-Data.cache # baseline: false diff --git a/features/draft/spec/compositing-1.yml.dist b/features/draft/spec/compositing-1.yml.dist index aca03cf95ed..b7b548aea12 100644 --- a/features/draft/spec/compositing-1.yml.dist +++ b/features/draft/spec/compositing-1.yml.dist @@ -4,8 +4,8 @@ status: baseline: false support: - safari: "13.1" - safari_ios: "13.4" + safari: ≤13.1 + safari_ios: ≤13.4 compat_features: # baseline: high # baseline_low_date: 2020-01-15 @@ -74,6 +74,6 @@ compat_features: # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.mix-blend-mode.plus-darker diff --git a/features/draft/spec/css-backgrounds-3.yml.dist b/features/draft/spec/css-backgrounds-3.yml.dist index f2967d2dd1b..7abd62494bb 100644 --- a/features/draft/spec/css-backgrounds-3.yml.dist +++ b/features/draft/spec/css-backgrounds-3.yml.dist @@ -5,10 +5,10 @@ status: baseline: low baseline_low_date: 2022-03-14 support: - chrome: "83" + chrome: ≤83 chrome_android: "83" edge: "83" - firefox: "72" + firefox: ≤72 firefox_android: "79" safari: "15.4" safari_ios: "15.4" @@ -233,7 +233,7 @@ compat_features: # chrome: "3" # chrome_android: "18" # edge: "12" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" # safari: "5" # safari_ios: "4.2" @@ -246,7 +246,7 @@ compat_features: # chrome: "15" # chrome_android: "18" # edge: "12" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" # safari: "6" # safari_ios: "9.3" @@ -257,26 +257,26 @@ compat_features: # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 # support: - # chrome: "83" + # chrome: ≤83 # chrome_android: "83" # edge: "12" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.border-image-width.auto # baseline: high # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 # support: - # chrome: "83" + # chrome: ≤83 # chrome_android: "83" # edge: "83" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.background-position.bottom - css.properties.background-position.center - css.properties.background-position.left diff --git a/features/draft/spec/css-flexbox-1.yml.dist b/features/draft/spec/css-flexbox-1.yml.dist index 013d2768cc3..188c3ece050 100644 --- a/features/draft/spec/css-flexbox-1.yml.dist +++ b/features/draft/spec/css-flexbox-1.yml.dist @@ -52,7 +52,7 @@ compat_features: # chrome: "29" # chrome_android: "29" # edge: "12" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" # safari: "9" # safari_ios: "9" diff --git a/features/draft/spec/css-fonts-5.yml.dist b/features/draft/spec/css-fonts-5.yml.dist index e614ad49613..3b5fee86426 100644 --- a/features/draft/spec/css-fonts-5.yml.dist +++ b/features/draft/spec/css-fonts-5.yml.dist @@ -265,10 +265,10 @@ compat_features: # chrome: "79" # chrome_android: "79" # edge: "79" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.font-optical-sizing.auto - css.properties.font-optical-sizing.none @@ -276,13 +276,13 @@ compat_features: # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 # support: - # chrome: "83" + # chrome: ≤83 # chrome_android: "83" # edge: "83" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.font-variant.none # baseline: low @@ -330,10 +330,10 @@ compat_features: # chrome: "111" # chrome_android: "111" # edge: "111" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.font-variant-alternates.historical-forms - css.properties.font-variant-alternates.normal @@ -355,10 +355,10 @@ compat_features: # chrome: "117" # chrome_android: "117" # edge: "117" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.font-variant-position.normal - css.properties.font-variant-position.sub - css.properties.font-variant-position.super diff --git a/features/draft/spec/css-grid-2.yml.dist b/features/draft/spec/css-grid-2.yml.dist index 962d75a29b2..a750f6e61d0 100644 --- a/features/draft/spec/css-grid-2.yml.dist +++ b/features/draft/spec/css-grid-2.yml.dist @@ -3,16 +3,16 @@ status: baseline: high - baseline_low_date: 2020-03-24 - baseline_high_date: 2022-09-24 + baseline_low_date: ≤2020-03-24 + baseline_high_date: ≤2022-09-24 support: chrome: "57" chrome_android: "57" edge: "79" firefox: "52" firefox_android: "52" - safari: "13.1" - safari_ios: "13.4" + safari: ≤13.1 + safari_ios: ≤13.4 compat_features: # baseline: high # baseline_low_date: 2015-07-29 @@ -64,16 +64,16 @@ compat_features: # ⬇️ Same status as overall feature ⬇️ # baseline: high - # baseline_low_date: 2020-03-24 - # baseline_high_date: 2022-09-24 + # baseline_low_date: ≤2020-03-24 + # baseline_high_date: ≤2022-09-24 # support: # chrome: "57" # chrome_android: "57" # edge: "79" # firefox: "52" # firefox_android: "52" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.grid-auto-flow.column - css.properties.grid-auto-flow.dense - css.properties.grid-auto-flow.row diff --git a/features/draft/spec/css-inline-3.yml.dist b/features/draft/spec/css-inline-3.yml.dist index 06e7e87c6b5..6aa162e3671 100644 --- a/features/draft/spec/css-inline-3.yml.dist +++ b/features/draft/spec/css-inline-3.yml.dist @@ -26,13 +26,13 @@ compat_features: # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 # support: - # chrome: "80" + # chrome: ≤80 # chrome_android: "80" # edge: "80" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.dominant-baseline - css.properties.dominant-baseline.alphabetic - css.properties.dominant-baseline.auto @@ -45,17 +45,25 @@ compat_features: # baseline: false # support: - # chrome: "80" + # chrome: ≤80 # chrome_android: "80" - # edge: "80" - # safari: "13.1" - # safari_ios: "13.4" + # edge: ≤80 + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.alignment-baseline + - svg.global_attributes.alignment-baseline + + # baseline: false + # support: + # chrome: ≤80 + # chrome_android: "80" + # edge: "80" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.baseline-shift - css.properties.baseline-shift.baseline - css.properties.baseline-shift.sub - css.properties.baseline-shift.super - - svg.global_attributes.alignment-baseline - svg.global_attributes.baseline-shift # ⬇️ Same status as overall feature ⬇️ diff --git a/features/draft/spec/css-lists-3.yml.dist b/features/draft/spec/css-lists-3.yml.dist index ca5eb8f3945..425878a9c5c 100644 --- a/features/draft/spec/css-lists-3.yml.dist +++ b/features/draft/spec/css-lists-3.yml.dist @@ -84,13 +84,13 @@ compat_features: # baseline_low_date: 2020-05-19 # baseline_high_date: 2022-11-19 # support: - # chrome: "83" + # chrome: ≤83 # chrome_android: "83" # edge: "12" # firefox: "1" # firefox_android: "25" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.counter-increment.list-item - css.properties.counter-reset.list-item @@ -101,7 +101,7 @@ compat_features: # chrome: "1" # chrome_android: "18" # edge: "12" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" # safari: "1" # safari_ios: "1" diff --git a/features/draft/spec/css-logical-1.yml.dist b/features/draft/spec/css-logical-1.yml.dist index e6ccb7d7501..f7a58764402 100644 --- a/features/draft/spec/css-logical-1.yml.dist +++ b/features/draft/spec/css-logical-1.yml.dist @@ -85,16 +85,16 @@ compat_features: - css.properties.padding-inline-start # baseline: high - # baseline_low_date: 2020-03-24 - # baseline_high_date: 2022-09-24 + # baseline_low_date: ≤2020-03-24 + # baseline_high_date: ≤2022-09-24 # support: # chrome: "2" # chrome_android: "18" # edge: "12" # firefox: "19" # firefox_android: "19" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.at-rules.page # baseline: high diff --git a/features/draft/spec/css-masking-1.yml.dist b/features/draft/spec/css-masking-1.yml.dist index 20882b4c7d6..e036d755d28 100644 --- a/features/draft/spec/css-masking-1.yml.dist +++ b/features/draft/spec/css-masking-1.yml.dist @@ -137,13 +137,13 @@ compat_features: # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 # support: - # chrome: "80" + # chrome: ≤80 # chrome_android: "80" - # edge: "80" - # firefox: "72" + # edge: ≤80 + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.clip-rule - svg.global_attributes.clip-rule @@ -151,13 +151,13 @@ compat_features: # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 # support: - # chrome: "83" + # chrome: ≤83 # chrome_android: "83" # edge: "83" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.clip-rule.evenodd - css.properties.clip-rule.nonzero @@ -180,10 +180,10 @@ compat_features: # chrome: "119" # chrome_android: "119" # edge: "119" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.clip-path.view-box # baseline: low diff --git a/features/draft/spec/css-multicol-1.yml.dist b/features/draft/spec/css-multicol-1.yml.dist index ee97a5950c1..f9a4ed4c819 100644 --- a/features/draft/spec/css-multicol-1.yml.dist +++ b/features/draft/spec/css-multicol-1.yml.dist @@ -96,7 +96,7 @@ compat_features: # chrome: "50" # chrome_android: "50" # edge: "12" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" # safari: "9" # safari_ios: "9" diff --git a/features/draft/spec/css-overflow-4.yml.dist b/features/draft/spec/css-overflow-4.yml.dist index e1261e51c41..be12f784bb4 100644 --- a/features/draft/spec/css-overflow-4.yml.dist +++ b/features/draft/spec/css-overflow-4.yml.dist @@ -5,6 +5,19 @@ status: baseline: false support: {} compat_features: + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "1" + # firefox_android: "4" + # safari: ≤3 + # safari_ios: ≤2 + - css.properties.overflow.auto + # baseline: high # baseline_low_date: 2015-07-29 # baseline_high_date: 2018-01-29 @@ -16,7 +29,6 @@ compat_features: # firefox_android: "4" # safari: "3" # safari_ios: "2" - - css.properties.overflow.auto - css.properties.overflow.hidden - css.properties.overflow.scroll - css.properties.overflow.visible @@ -31,12 +43,24 @@ compat_features: # firefox: "3.5" # firefox_android: "4" # safari: "3" - # safari_ios: "2" + # safari_ios: ≤2 - css.properties.overflow-x.auto + - css.properties.overflow-y.auto + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "3.5" + # firefox_android: "4" + # safari: "3" + # safari_ios: "2" - css.properties.overflow-x.hidden - css.properties.overflow-x.scroll - css.properties.overflow-x.visible - - css.properties.overflow-y.auto - css.properties.overflow-y.hidden - css.properties.overflow-y.scroll - css.properties.overflow-y.visible diff --git a/features/draft/spec/css-overscroll-1.yml.dist b/features/draft/spec/css-overscroll-1.yml.dist index 965cc81fae2..6a1e2e39de5 100644 --- a/features/draft/spec/css-overscroll-1.yml.dist +++ b/features/draft/spec/css-overscroll-1.yml.dist @@ -4,7 +4,7 @@ status: baseline: false support: - chrome: "83" + chrome: ≤83 chrome_android: "83" firefox: "73" firefox_android: "79" @@ -62,7 +62,7 @@ compat_features: # baseline: false # support: - # chrome: "83" + # chrome: ≤83 # chrome_android: "83" # firefox: "59" # firefox_android: "59" diff --git a/features/draft/spec/css-page-3.yml.dist b/features/draft/spec/css-page-3.yml.dist index c5d5b821546..eb99dbd9832 100644 --- a/features/draft/spec/css-page-3.yml.dist +++ b/features/draft/spec/css-page-3.yml.dist @@ -9,16 +9,16 @@ status: edge: "85" compat_features: # baseline: high - # baseline_low_date: 2020-03-24 - # baseline_high_date: 2022-09-24 + # baseline_low_date: ≤2020-03-24 + # baseline_high_date: ≤2022-09-24 # support: # chrome: "2" # chrome_android: "18" # edge: "12" # firefox: "19" # firefox_android: "19" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.at-rules.page # baseline: high @@ -30,8 +30,8 @@ compat_features: # edge: "79" # firefox: "95" # firefox_android: "95" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.at-rules.page.size # baseline: low @@ -42,8 +42,8 @@ compat_features: # edge: "85" # firefox: "110" # firefox_android: "110" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.page # baseline: low diff --git a/features/draft/spec/css-position-3.yml.dist b/features/draft/spec/css-position-3.yml.dist index 8f4629fd6b1..104e1578154 100644 --- a/features/draft/spec/css-position-3.yml.dist +++ b/features/draft/spec/css-position-3.yml.dist @@ -40,7 +40,7 @@ compat_features: # chrome: "87" # chrome_android: "87" # edge: "87" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" # safari: "14.1" # safari_ios: "14.5" diff --git a/features/draft/spec/css-scroll-snap-1.yml.dist b/features/draft/spec/css-scroll-snap-1.yml.dist index ebf710bca57..868535bfa06 100644 --- a/features/draft/spec/css-scroll-snap-1.yml.dist +++ b/features/draft/spec/css-scroll-snap-1.yml.dist @@ -68,8 +68,8 @@ compat_features: # edge: "79" # firefox: "99" # firefox_android: "39" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.scroll-snap-type.none # baseline: low @@ -80,8 +80,8 @@ compat_features: # edge: "79" # firefox: "99" # firefox_android: "68" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.scroll-snap-type.block - css.properties.scroll-snap-type.both - css.properties.scroll-snap-type.inline diff --git a/features/draft/spec/css-speech-1.yml.dist b/features/draft/spec/css-speech-1.yml.dist index 7f6da965f28..251bb89c70e 100644 --- a/features/draft/spec/css-speech-1.yml.dist +++ b/features/draft/spec/css-speech-1.yml.dist @@ -18,5 +18,5 @@ compat_features: # baseline: false # support: - # edge: "80" + # edge: ≤80 - css.properties.speak diff --git a/features/draft/spec/css-text-4.yml.dist b/features/draft/spec/css-text-4.yml.dist index 493fa67693c..033298d77b1 100644 --- a/features/draft/spec/css-text-4.yml.dist +++ b/features/draft/spec/css-text-4.yml.dist @@ -126,8 +126,8 @@ compat_features: # edge: "79" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - css.properties.text-align.center - css.properties.text-align.left - css.properties.text-align.right @@ -152,7 +152,7 @@ compat_features: # chrome: "58" # chrome_android: "58" # edge: "79" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" # safari: "11" # safari_ios: "11" @@ -175,26 +175,26 @@ compat_features: # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 # support: - # chrome: "80" + # chrome: ≤80 # chrome_android: "80" - # edge: "80" - # firefox: "72" + # edge: ≤80 + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.word-wrap # baseline: high # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 # support: - # chrome: "83" + # chrome: ≤83 # chrome_android: "83" # edge: "83" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.line-break.anywhere - css.properties.line-break.auto - css.properties.line-break.loose diff --git a/features/draft/spec/css-text-decor-4.yml.dist b/features/draft/spec/css-text-decor-4.yml.dist index 33b76947200..f4e70fe705b 100644 --- a/features/draft/spec/css-text-decor-4.yml.dist +++ b/features/draft/spec/css-text-decor-4.yml.dist @@ -64,13 +64,13 @@ compat_features: # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 # support: - # chrome: "83" + # chrome: ≤83 # chrome_android: "83" # edge: "83" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.text-decoration-line.line-through - css.properties.text-decoration-line.none - css.properties.text-decoration-line.overline @@ -126,10 +126,10 @@ compat_features: # chrome: "99" # chrome_android: "99" # edge: "99" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.text-emphasis-style.circle - css.properties.text-emphasis-style.dot - css.properties.text-emphasis-style.double-circle @@ -185,7 +185,7 @@ compat_features: # baseline: false # support: - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.text-decoration-skip.auto - css.properties.text-decoration-skip.none diff --git a/features/draft/spec/css-transforms-2.yml.dist b/features/draft/spec/css-transforms-2.yml.dist index ec21d4152ec..47cb2d235f6 100644 --- a/features/draft/spec/css-transforms-2.yml.dist +++ b/features/draft/spec/css-transforms-2.yml.dist @@ -17,7 +17,7 @@ compat_features: # chrome: "36" # chrome_android: "36" # edge: "12" - # firefox: "16" + # firefox: ≤16 # firefox_android: "16" # safari: "9" # safari_ios: "9" @@ -50,16 +50,16 @@ compat_features: - css.properties.transform-box # baseline: high - # baseline_low_date: 2020-03-24 - # baseline_high_date: 2022-09-24 + # baseline_low_date: ≤2020-03-24 + # baseline_high_date: ≤2022-09-24 # support: # chrome: "64" # chrome_android: "64" # edge: "79" # firefox: "55" # firefox_android: "55" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.transform-box.fill-box - css.properties.transform-box.view-box @@ -70,7 +70,7 @@ compat_features: # chrome: "36" # chrome_android: "36" # edge: "12" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" # safari: "9" # safari_ios: "9" @@ -121,7 +121,7 @@ compat_features: # baseline: false # support: - # chrome: "83" + # chrome: ≤83 # chrome_android: "83" # edge: "83" # firefox: "77" diff --git a/features/draft/spec/css-ui-4.yml.dist b/features/draft/spec/css-ui-4.yml.dist index c624e5a6ad8..ab3a2cbe733 100644 --- a/features/draft/spec/css-ui-4.yml.dist +++ b/features/draft/spec/css-ui-4.yml.dist @@ -167,13 +167,13 @@ compat_features: # baseline_low_date: 2021-12-07 # baseline_high_date: 2024-06-07 # support: - # chrome: "83" + # chrome: ≤83 # chrome_android: "83" # edge: "83" - # firefox: "72" + # firefox: ≤72 # firefox_android: "95" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.cursor.grabbing # baseline: low diff --git a/features/draft/spec/css-writing-modes-4.yml.dist b/features/draft/spec/css-writing-modes-4.yml.dist index 919198b4b9e..65d8686653d 100644 --- a/features/draft/spec/css-writing-modes-4.yml.dist +++ b/features/draft/spec/css-writing-modes-4.yml.dist @@ -5,10 +5,10 @@ status: baseline: low baseline_low_date: 2022-03-14 support: - chrome: "83" + chrome: ≤83 chrome_android: "83" edge: "83" - firefox: "72" + firefox: ≤72 firefox_android: "79" safari: "15.4" safari_ios: "15.4" @@ -95,7 +95,7 @@ compat_features: # chrome: "48" # chrome_android: "48" # edge: "79" - # firefox: "44" + # firefox: ≤44 # firefox_android: "44" # safari: "14" # safari_ios: "14" @@ -105,10 +105,10 @@ compat_features: # baseline_low_date: 2020-09-16 # baseline_high_date: 2023-03-16 # support: - # chrome: "83" + # chrome: ≤83 # chrome_android: "83" # edge: "83" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" # safari: "14" # safari_ios: "14" diff --git a/features/draft/spec/cssom-1.yml.dist b/features/draft/spec/cssom-1.yml.dist index a9224b10b93..fd64c6a2af6 100644 --- a/features/draft/spec/cssom-1.yml.dist +++ b/features/draft/spec/cssom-1.yml.dist @@ -87,7 +87,6 @@ compat_features: # safari: "4" # safari_ios: "3.2" - api.Document.styleSheets - - api.MediaList.toString # baseline: high # baseline_low_date: 2015-07-29 @@ -104,6 +103,19 @@ compat_features: - api.CSSStyleDeclaration.length - api.CSSStyleDeclaration.setProperty + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "1" + # firefox_android: "4" + # safari: ≤4 + # safari_ios: ≤3.2 + - api.MediaList.toString + # baseline: high # baseline_low_date: 2015-07-29 # baseline_high_date: 2018-01-29 diff --git a/features/draft/spec/device-memory-1.yml.dist b/features/draft/spec/device-memory-1.yml.dist index e539b107ed9..91c9d404973 100644 --- a/features/draft/spec/device-memory-1.yml.dist +++ b/features/draft/spec/device-memory-1.yml.dist @@ -12,7 +12,7 @@ compat_features: # support: # chrome: "61" # chrome_android: "61" - # edge: "79" + # edge: ≤79 - http.headers.Device-Memory # baseline: false diff --git a/features/draft/spec/dom.yml.dist b/features/draft/spec/dom.yml.dist index e20117fb1f9..b6dfcd74118 100644 --- a/features/draft/spec/dom.yml.dist +++ b/features/draft/spec/dom.yml.dist @@ -254,7 +254,7 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" + # safari: ≤4 # safari_ios: "1" - api.Node.baseURI @@ -999,9 +999,22 @@ compat_features: # baseline_low_date: 2018-10-02 # baseline_high_date: 2021-04-02 # support: + # chrome: "61" + # chrome_android: "61" + # edge: "18" + # firefox: "45" + # firefox_android: "45" + # safari: "10.1" + # safari_ios: "10.3" + - api.Element.getAttributeNames + + # baseline: high + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 + # support: # chrome: "51" # chrome_android: "51" - # edge: "18" + # edge: ≤18 # firefox: "49" # firefox_android: "49" # safari: "10" @@ -1009,12 +1022,12 @@ compat_features: - api.EventTarget.addEventListener.options_parameter.options_passive_parameter # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "52" # chrome_android: "52" - # edge: "18" + # edge: ≤18 # firefox: "49" # firefox_android: "49" # safari: "10" @@ -1022,31 +1035,18 @@ compat_features: - api.EventTarget.addEventListener.options_parameter.options_capture_parameter # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "55" # chrome_android: "55" - # edge: "18" + # edge: ≤18 # firefox: "50" # firefox_android: "50" # safari: "10" # safari_ios: "10" - api.EventTarget.addEventListener.options_parameter.options_once_parameter - # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 - # support: - # chrome: "61" - # chrome_android: "61" - # edge: "18" - # firefox: "45" - # firefox_android: "45" - # safari: "10.1" - # safari_ios: "10.3" - - api.Element.getAttributeNames - # baseline: high # baseline_low_date: 2018-10-23 # baseline_high_date: 2021-04-23 diff --git a/features/draft/spec/entries-api.yml.dist b/features/draft/spec/entries-api.yml.dist index c06b1ebac9e..c06eb5dd53d 100644 --- a/features/draft/spec/entries-api.yml.dist +++ b/features/draft/spec/entries-api.yml.dist @@ -12,12 +12,12 @@ status: safari_ios: "11.3" compat_features: # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "7" # chrome_android: "18" - # edge: "18" + # edge: ≤18 # firefox: "50" # firefox_android: "50" # safari: "11.1" @@ -27,12 +27,12 @@ compat_features: - api.FileSystem.root # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "8" # chrome_android: "18" - # edge: "18" + # edge: ≤18 # firefox: "50" # firefox_android: "50" # safari: "11.1" diff --git a/features/draft/spec/fill-stroke-3.yml.dist b/features/draft/spec/fill-stroke-3.yml.dist index 98858f38079..16041f14b6e 100644 --- a/features/draft/spec/fill-stroke-3.yml.dist +++ b/features/draft/spec/fill-stroke-3.yml.dist @@ -4,29 +4,44 @@ status: baseline: false support: - safari: "13.1" - safari_ios: "13.4" + safari: ≤13.1 + safari_ios: ≤13.4 compat_features: # baseline: high # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 # support: - # chrome: "80" + # chrome: ≤80 # chrome_android: "80" - # edge: "80" - # firefox: "72" + # edge: ≤80 + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.fill - css.properties.fill-opacity + - css.properties.stroke + - css.properties.stroke-dashoffset + - css.properties.stroke-miterlimit + - css.properties.stroke-opacity + - css.properties.stroke-width + + # baseline: high + # baseline_low_date: 2020-07-28 + # baseline_high_date: 2023-01-28 + # support: + # chrome: ≤80 + # chrome_android: "80" + # edge: "80" + # firefox: ≤72 + # firefox_android: "79" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.fill-rule - css.properties.fill-rule.evenodd - css.properties.fill-rule.nonzero - - css.properties.stroke - css.properties.stroke-dasharray - css.properties.stroke-dasharray.none - - css.properties.stroke-dashoffset - css.properties.stroke-linecap - css.properties.stroke-linecap.butt - css.properties.stroke-linecap.round @@ -35,13 +50,10 @@ compat_features: - css.properties.stroke-linejoin.bevel - css.properties.stroke-linejoin.miter - css.properties.stroke-linejoin.round - - css.properties.stroke-miterlimit - - css.properties.stroke-opacity - - css.properties.stroke-width # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.stroke-color diff --git a/features/draft/spec/filter-effects-1.yml.dist b/features/draft/spec/filter-effects-1.yml.dist index 1cb0179e68c..36296e9eb74 100644 --- a/features/draft/spec/filter-effects-1.yml.dist +++ b/features/draft/spec/filter-effects-1.yml.dist @@ -348,12 +348,12 @@ compat_features: - css.properties.filter # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "5" # chrome_android: "18" - # edge: "18" + # edge: ≤18 # firefox: "3" # firefox_android: "4" # safari: "6" @@ -374,10 +374,6 @@ compat_features: # firefox_android: "4" # safari: "6" # safari_ios: "6" - - svg.elements.feComposite.k1 - - svg.elements.feComposite.k2 - - svg.elements.feComposite.k3 - - svg.elements.feComposite.k4 - svg.elements.feDiffuseLighting.diffuseConstant - svg.elements.feDiffuseLighting.kernelUnitLength - svg.elements.feDiffuseLighting.surfaceScale @@ -444,26 +440,42 @@ compat_features: # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 # support: - # chrome: "53" + # chrome: ≤53 # chrome_android: "53" # edge: "79" # firefox: "35" # firefox_android: "35" - # safari: "10.1" - # safari_ios: "10.3" + # safari: ≤10.1 + # safari_ios: ≤10.3 - svg.global_attributes.filter + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "5" + # chrome_android: "18" + # edge: ≤79 + # firefox: "3" + # firefox_android: "4" + # safari: "6" + # safari_ios: "6" + - svg.elements.feComposite.k1 + - svg.elements.feComposite.k2 + - svg.elements.feComposite.k3 + - svg.elements.feComposite.k4 + # baseline: high # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 # support: - # chrome: "80" + # chrome: ≤80 # chrome_android: "80" # edge: "80" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.color-interpolation-filters - svg.global_attributes.color-interpolation-filters @@ -471,13 +483,13 @@ compat_features: # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 # support: - # chrome: "83" + # chrome: ≤83 # chrome_android: "83" # edge: "83" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - css.properties.color-interpolation-filters.auto - css.properties.color-interpolation-filters.linearRGB - css.properties.color-interpolation-filters.sRGB diff --git a/features/draft/spec/geolocation.yml.dist b/features/draft/spec/geolocation.yml.dist index a76d6019165..1a1f29c12d2 100644 --- a/features/draft/spec/geolocation.yml.dist +++ b/features/draft/spec/geolocation.yml.dist @@ -18,7 +18,7 @@ compat_features: # firefox: "3.5" # firefox_android: "4" # safari: "5" - # safari_ios: "3" + # safari_ios: ≤3 - api.Geolocation - api.Geolocation.clearWatch - api.Geolocation.getCurrentPosition diff --git a/features/draft/spec/html.yml.dist b/features/draft/spec/html.yml.dist index ab6e8173432..9030cfaf233 100644 --- a/features/draft/spec/html.yml.dist +++ b/features/draft/spec/html.yml.dist @@ -517,9 +517,36 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" + # safari: "5.1" + # safari_ios: "5" + - api.DOMStringList + - api.DOMStringList.item + - api.DOMStringList.length + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "1" + # firefox_android: "4" + # safari: ≤4 # safari_ios: "1" - api.HTMLFormControlsCollection + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "1" + # firefox_android: "4" + # safari: "4" + # safari_ios: "1" - api.clearTimeout # baseline: high @@ -534,6 +561,18 @@ compat_features: # safari: "4" # safari_ios: "3" - api.HTMLTableElement.insertRow + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "1" + # firefox_android: "4" + # safari: ≤4 + # safari_ios: ≤3 - html.elements.textarea # baseline: high @@ -545,8 +584,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.blockquote - html.elements.button - html.elements.button.disabled @@ -636,21 +675,6 @@ compat_features: - html.global_attributes.lang - html.global_attributes.title - # baseline: high - # baseline_low_date: 2015-07-29 - # baseline_high_date: 2018-01-29 - # support: - # chrome: "1" - # chrome_android: "18" - # edge: "12" - # firefox: "1" - # firefox_android: "4" - # safari: "5.1" - # safari_ios: "5" - - api.DOMStringList - - api.DOMStringList.item - - api.DOMStringList.length - # baseline: high # baseline_low_date: 2015-07-29 # baseline_high_date: 2018-01-29 @@ -787,8 +811,8 @@ compat_features: # edge: "12" # firefox: "3" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.global_attributes.contenteditable # baseline: high @@ -870,8 +894,8 @@ compat_features: # edge: "12" # firefox: "3.6" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.script.async # baseline: high @@ -1104,7 +1128,7 @@ compat_features: # edge: "12" # firefox: "33" # firefox_android: "33" - # safari: "4" + # safari: ≤4 # safari_ios: "1" - api.HTMLFormControlsCollection.namedItem @@ -2178,19 +2202,6 @@ compat_features: - api.HTMLUnknownElement - html.elements.dfn - # baseline: high - # baseline_low_date: 2015-07-29 - # baseline_high_date: 2018-01-29 - # support: - # chrome: "15" - # chrome_android: "18" - # edge: "12" - # firefox: "10" - # firefox_android: "10" - # safari: "4" - # safari_ios: "3.2" - - html.elements.bdo - # baseline: high # baseline_low_date: 2015-07-29 # baseline_high_date: 2018-01-29 @@ -2483,6 +2494,19 @@ compat_features: # safari_ios: "8" - api.HTMLImageElement.srcset + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: ≤15 + # chrome_android: "18" + # edge: "12" + # firefox: "10" + # firefox_android: "10" + # safari: ≤4 + # safari_ios: ≤3.2 + - html.elements.bdo + # baseline: high # baseline_low_date: 2015-09-22 # baseline_high_date: 2018-03-22 @@ -3062,13 +3086,13 @@ compat_features: # baseline_low_date: 2017-06-06 # baseline_high_date: 2019-12-06 # support: - # chrome: "59" + # chrome: ≤59 # chrome_android: "59" # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "10.1" - # safari_ios: "10.3" + # safari: ≤10.1 + # safari_ios: ≤10.3 - html.elements.meta.http-equiv.content-security-policy - html.elements.meta.http-equiv.content-type @@ -3464,19 +3488,6 @@ compat_features: # safari_ios: "3.2" - api.DataTransfer.setDragImage - # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 - # support: - # chrome: "4" - # chrome_android: "18" - # edge: "18" - # firefox: "28" - # firefox_android: "27" - # safari: "10.1" - # safari_ios: "10.3" - - html.elements.iframe.sandbox.allow-popups - # baseline: high # baseline_low_date: 2018-10-02 # baseline_high_date: 2021-04-02 @@ -3490,25 +3501,6 @@ compat_features: # safari_ios: "5" - api.HTMLLabelElement.control - # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 - # support: - # chrome: "6" - # chrome_android: "18" - # edge: "18" - # firefox: "16" - # firefox_android: "16" - # safari: "6" - # safari_ios: "10.3" - - html.elements.meter - - html.elements.meter.high - - html.elements.meter.low - - html.elements.meter.max - - html.elements.meter.min - - html.elements.meter.optimum - - html.elements.meter.value - # baseline: high # baseline_low_date: 2018-10-02 # baseline_high_date: 2021-04-02 @@ -3564,22 +3556,6 @@ compat_features: # safari_ios: "5" - api.HTMLOutputElement.labels - # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 - # support: - # chrome: "10" - # chrome_android: "18" - # edge: "18" - # firefox: "4" - # firefox_android: "4" - # safari: "7" - # safari_ios: "7" - - html.elements.output - - html.elements.output.for - - html.elements.output.form - - html.elements.output.name - # baseline: high # baseline_low_date: 2018-10-02 # baseline_high_date: 2021-04-02 @@ -3612,9 +3588,84 @@ compat_features: # baseline_low_date: 2018-10-02 # baseline_high_date: 2021-04-02 # support: + # chrome: "59" + # chrome_android: "59" + # edge: "18" + # firefox: "54" + # firefox_android: "54" + # safari: "11" + # safari_ios: "11" + - api.origin + + # baseline: high + # baseline_low_date: 2018-10-02 + # baseline_high_date: 2021-04-02 + # support: + # chrome: "65" + # chrome_android: "65" + # edge: "18" + # firefox: "30" + # firefox_android: "30" + # safari: "9" + # safari_ios: "9" + - api.HTMLAnchorElement.relList + - api.HTMLAreaElement.relList + + # baseline: high + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 + # support: + # chrome: "4" + # chrome_android: "18" + # edge: ≤18 + # firefox: "28" + # firefox_android: "27" + # safari: ≤10.1 + # safari_ios: ≤10.3 + - html.elements.iframe.sandbox.allow-popups + + # baseline: high + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 + # support: + # chrome: "6" + # chrome_android: "18" + # edge: ≤18 + # firefox: "16" + # firefox_android: "16" + # safari: "6" + # safari_ios: "10.3" + - html.elements.meter + - html.elements.meter.high + - html.elements.meter.low + - html.elements.meter.max + - html.elements.meter.min + - html.elements.meter.optimum + - html.elements.meter.value + + # baseline: high + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 + # support: + # chrome: "10" + # chrome_android: "18" + # edge: ≤18 + # firefox: "4" + # firefox_android: "4" + # safari: "7" + # safari_ios: "7" + - html.elements.output + - html.elements.output.for + - html.elements.output.form + - html.elements.output.name + + # baseline: high + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 + # support: # chrome: "34" # chrome_android: "34" - # edge: "18" + # edge: ≤18 # firefox: "38" # firefox_android: "38" # safari: "8" @@ -3622,12 +3673,12 @@ compat_features: - html.elements.img.srcset # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "34" # chrome_android: "34" - # edge: "18" + # edge: ≤18 # firefox: "38" # firefox_android: "38" # safari: "9.1" @@ -3636,25 +3687,12 @@ compat_features: - html.elements.source.srcset # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 - # support: - # chrome: "59" - # chrome_android: "59" - # edge: "18" - # firefox: "54" - # firefox_android: "54" - # safari: "11" - # safari_ios: "11" - - api.origin - - # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "62" # chrome_android: "62" - # edge: "18" + # edge: ≤18 # firefox: "22" # firefox_android: "22" # safari: "10" @@ -3662,20 +3700,6 @@ compat_features: - html.elements.data - html.elements.data.value - # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 - # support: - # chrome: "65" - # chrome_android: "65" - # edge: "18" - # firefox: "30" - # firefox_android: "30" - # safari: "9" - # safari_ios: "9" - - api.HTMLAnchorElement.relList - - api.HTMLAreaElement.relList - # baseline: high # baseline_low_date: 2018-10-23 # baseline_high_date: 2021-04-23 @@ -3781,6 +3805,20 @@ compat_features: # safari_ios: "1" - api.HTMLEmbedElement.type + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "79" + # firefox: "1" + # firefox_android: "4" + # safari: ≤4 + # safari_ios: ≤3.2 + - html.elements.embed.type + - html.global_attributes.dir + # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -3792,9 +3830,7 @@ compat_features: # firefox_android: "4" # safari: "4" # safari_ios: "3.2" - - html.elements.embed.type - html.elements.wbr - - html.global_attributes.dir # baseline: high # baseline_low_date: 2020-01-15 @@ -3932,7 +3968,6 @@ compat_features: # safari: "6" # safari_ios: "6" - api.HTMLOListElement.reversed - - html.elements.ol.reversed # baseline: high # baseline_low_date: 2020-01-15 @@ -4056,19 +4091,6 @@ compat_features: # safari_ios: "10.3" - api.Window.languagechange_event - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "46" - # chrome_android: "46" - # edge: "79" - # firefox: "3" - # firefox_android: "4" - # safari: "5" - # safari_ios: "4.2" - - html.elements.link.rel.dns-prefetch - # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -4109,23 +4131,6 @@ compat_features: - html.elements.iframe.sandbox.allow-modals - html.elements.iframe.sandbox.allow-popups-to-escape-sandbox - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "49" - # chrome_android: "49" - # edge: "79" - # firefox: "49" - # firefox_android: "49" - # safari: "10.1" - # safari_ios: "10.3" - - html.elements.iframe.sandbox.allow-forms - - html.elements.iframe.sandbox.allow-pointer-lock - - html.elements.iframe.sandbox.allow-same-origin - - html.elements.iframe.sandbox.allow-scripts - - html.elements.iframe.sandbox.allow-top-navigation - # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -4218,7 +4223,6 @@ compat_features: # safari: "11.1" # safari_ios: "11.3" - api.HTMLImageElement.decoding - - html.elements.img.decoding # baseline: high # baseline_low_date: 2020-01-15 @@ -4301,6 +4305,62 @@ compat_features: # safari_ios: "12.2" - api.CustomElementRegistry.upgrade + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: ≤49 + # chrome_android: "49" + # edge: "79" + # firefox: ≤49 + # firefox_android: "49" + # safari: ≤10.1 + # safari_ios: ≤10.3 + - html.elements.iframe.sandbox.allow-forms + - html.elements.iframe.sandbox.allow-pointer-lock + - html.elements.iframe.sandbox.allow-same-origin + - html.elements.iframe.sandbox.allow-scripts + - html.elements.iframe.sandbox.allow-top-navigation + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "18" + # chrome_android: "18" + # edge: ≤79 + # firefox: "18" + # firefox_android: "18" + # safari: "6" + # safari_ios: "6" + - html.elements.ol.reversed + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "46" + # chrome_android: "46" + # edge: ≤79 + # firefox: "3" + # firefox_android: "4" + # safari: "5" + # safari_ios: "4.2" + - html.elements.link.rel.dns-prefetch + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "65" + # chrome_android: "65" + # edge: ≤79 + # firefox: "63" + # firefox_android: "63" + # safari: "11.1" + # safari_ios: "11.3" + - html.elements.img.decoding + # baseline: high # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 @@ -4406,10 +4466,10 @@ compat_features: # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 # support: - # chrome: "80" + # chrome: ≤80 # chrome_android: "80" # edge: "80" - # firefox: "72" + # firefox: ≤72 # firefox_android: "79" # safari: "6" # safari_ios: "6" @@ -4436,7 +4496,7 @@ compat_features: # support: # chrome: "50" # chrome_android: "50" - # edge: "79" + # edge: ≤79 # firefox: "85" # firefox_android: "85" # safari: "11.1" @@ -5065,7 +5125,7 @@ compat_features: # chrome_android: "25" # edge: "12" # firefox_android: "18" - # safari_ios: "11.3" + # safari_ios: ≤11.3 - html.elements.input.type_month # baseline: false @@ -5081,7 +5141,7 @@ compat_features: # support: # chrome: "32" # chrome_android: "32" - # edge: "79" + # edge: ≤79 # firefox: "30" # firefox_android: "30" - api.HTMLCanvasElement.getContext.2d_context.options_alpha_parameter @@ -5183,7 +5243,7 @@ compat_features: # chrome: "68" # chrome_android: "68" # edge: "79" - # firefox: "49" + # firefox: ≤49 # firefox_android: "49" - html.elements.iframe.sandbox.allow-orientation-lock diff --git a/features/draft/spec/mediacapture-streams.yml.dist b/features/draft/spec/mediacapture-streams.yml.dist index 16b5d31dc17..e6353acbffe 100644 --- a/features/draft/spec/mediacapture-streams.yml.dist +++ b/features/draft/spec/mediacapture-streams.yml.dist @@ -248,12 +248,12 @@ compat_features: - api.InputDeviceInfo # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 # support: # chrome: "59" # chrome_android: "59" - # edge: "79" + # edge: ≤79 # firefox: "43" # firefox_android: "43" # safari: "11" @@ -261,12 +261,12 @@ compat_features: - api.MediaStreamTrack.applyConstraints.deviceId_constraint # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 # support: # chrome: "59" # chrome_android: "59" - # edge: "79" + # edge: ≤79 # firefox: "50" # firefox_android: "50" # safari: "11" @@ -297,7 +297,7 @@ compat_features: # support: # chrome: "59" # chrome_android: "59" - # edge: "79" + # edge: ≤79 # firefox: "70" # firefox_android: "79" # safari: "11" @@ -318,7 +318,7 @@ compat_features: # support: # chrome: "59" # chrome_android: "59" - # edge: "79" + # edge: ≤79 # firefox_android: "43" # safari: "11" # safari_ios: "11" @@ -346,7 +346,7 @@ compat_features: # support: # chrome: "59" # chrome_android: "59" - # edge: "79" + # edge: ≤79 # safari: "11" # safari_ios: "11" - api.MediaStreamTrack.applyConstraints.channelCount_constraint @@ -385,7 +385,7 @@ compat_features: # support: # chrome: "67" # chrome_android: "67" - # edge: "79" + # edge: ≤79 # firefox: "55" # firefox_android: "55" - api.MediaStreamTrack.applyConstraints.autoGainControl_constraint diff --git a/features/draft/spec/mixed-content.yml.dist b/features/draft/spec/mixed-content.yml.dist index 83227afc728..c228bb87d55 100644 --- a/features/draft/spec/mixed-content.yml.dist +++ b/features/draft/spec/mixed-content.yml.dist @@ -14,42 +14,27 @@ compat_features: # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 # support: - # chrome: "79" + # chrome: ≤79 # chrome_android: "79" # edge: "79" - # firefox: "23" + # firefox: ≤23 # firefox_android: "23" - # safari: "9.1" - # safari_ios: "9.3" + # safari: ≤9.1 + # safari_ios: ≤9.3 - http.mixed-content - - http.mixed-content.blockable_mixed_content - # baseline: false + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 # support: # chrome: "79" # chrome_android: "79" # edge: "79" # firefox: "23" # firefox_android: "23" - - http.mixed-content.allow_file_urls - - # baseline: false - # support: - # chrome: "79" - # chrome_android: "79" - # edge: "79" - # firefox: "55" - # firefox_android: "55" - - http.mixed-content.allow_loopback_url - - # baseline: false - # support: - # chrome: "79" - # chrome_android: "79" - # edge: "79" - # firefox: "84" - # firefox_android: "84" - - http.mixed-content.allow_localhost_url + # safari: ≤9.1 + # safari_ios: ≤9.3 + - http.mixed-content.blockable_mixed_content # baseline: false # support: @@ -77,3 +62,30 @@ compat_features: # firefox: "90" # firefox_android: "90" - http.mixed-content.block_mixed_downloads + + # baseline: false + # support: + # chrome: ≤79 + # chrome_android: "79" + # edge: "79" + # firefox: "55" + # firefox_android: "55" + - http.mixed-content.allow_loopback_url + + # baseline: false + # support: + # chrome: ≤79 + # chrome_android: "79" + # edge: "79" + # firefox: "84" + # firefox_android: "84" + - http.mixed-content.allow_localhost_url + + # baseline: false + # support: + # chrome: ≤79 + # chrome_android: "79" + # edge: "79" + # firefox: ≤23 + # firefox_android: "23" + - http.mixed-content.allow_file_urls diff --git a/features/draft/spec/referrer-policy.yml.dist b/features/draft/spec/referrer-policy.yml.dist index 7e6e4a43262..84d4701e01d 100644 --- a/features/draft/spec/referrer-policy.yml.dist +++ b/features/draft/spec/referrer-policy.yml.dist @@ -11,7 +11,7 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: - html.elements.meta.name diff --git a/features/draft/spec/rfc2397.yml.dist b/features/draft/spec/rfc2397.yml.dist index 0ef7976c1e9..554e6a1460f 100644 --- a/features/draft/spec/rfc2397.yml.dist +++ b/features/draft/spec/rfc2397.yml.dist @@ -6,12 +6,12 @@ status: baseline_low_date: 2015-07-29 baseline_high_date: 2018-01-29 support: - chrome: "4" + chrome: ≤4 chrome_android: "18" edge: "12" - firefox: "2" + firefox: ≤2 firefox_android: "4" - safari: "3.1" - safari_ios: "2" + safari: ≤3.1 + safari_ios: ≤2 compat_features: - http.data-url diff --git a/features/draft/spec/rfc8942.yml.dist b/features/draft/spec/rfc8942.yml.dist index 8c4c934a923..2bdb0eacad8 100644 --- a/features/draft/spec/rfc8942.yml.dist +++ b/features/draft/spec/rfc8942.yml.dist @@ -6,6 +6,6 @@ status: support: chrome: "46" chrome_android: "46" - edge: "79" + edge: ≤79 compat_features: - http.headers.Accept-CH diff --git a/features/draft/spec/rfc9163.yml.dist b/features/draft/spec/rfc9163.yml.dist index 205340aaaf9..bcccc1bed61 100644 --- a/features/draft/spec/rfc9163.yml.dist +++ b/features/draft/spec/rfc9163.yml.dist @@ -6,6 +6,6 @@ status: support: chrome: "61" chrome_android: "61" - edge: "79" + edge: ≤79 compat_features: - http.headers.Expect-CT diff --git a/features/draft/spec/savedata.yml.dist b/features/draft/spec/savedata.yml.dist index 850b6fc9744..4bb105a1c79 100644 --- a/features/draft/spec/savedata.yml.dist +++ b/features/draft/spec/savedata.yml.dist @@ -12,7 +12,7 @@ compat_features: # support: # chrome: "49" # chrome_android: "49" - # edge: "79" + # edge: ≤79 - http.headers.Save-Data # ⬇️ Same status as overall feature ⬇️ diff --git a/features/draft/spec/speech-api.yml.dist b/features/draft/spec/speech-api.yml.dist index 0201b12de32..7985bc164b8 100644 --- a/features/draft/spec/speech-api.yml.dist +++ b/features/draft/spec/speech-api.yml.dist @@ -6,12 +6,12 @@ status: support: {} compat_features: # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "33" # chrome_android: "33" - # edge: "18" + # edge: ≤18 # firefox: "49" # firefox_android: "62" # safari: "7" diff --git a/features/draft/spec/streams.yml.dist b/features/draft/spec/streams.yml.dist index 8078b2eaf96..c535003aa03 100644 --- a/features/draft/spec/streams.yml.dist +++ b/features/draft/spec/streams.yml.dist @@ -8,16 +8,16 @@ status: firefox_android: "117" compat_features: # baseline: high - # baseline_low_date: 2020-03-24 - # baseline_high_date: 2022-09-24 + # baseline_low_date: ≤2020-03-24 + # baseline_high_date: ≤2022-09-24 # support: # chrome: "78" # chrome_android: "78" # edge: "79" # firefox: "65" # firefox_android: "65" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - api.ReadableStreamDefaultReader - api.ReadableStreamDefaultReader.cancel - api.ReadableStreamDefaultReader.closed @@ -25,16 +25,16 @@ compat_features: - api.ReadableStreamDefaultReader.releaseLock # baseline: high - # baseline_low_date: 2020-03-24 - # baseline_high_date: 2022-09-24 + # baseline_low_date: ≤2020-03-24 + # baseline_high_date: ≤2022-09-24 # support: - # chrome: "80" + # chrome: ≤80 # chrome_android: "80" # edge: "80" # firefox: "65" # firefox_android: "65" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - api.ReadableStreamDefaultController - api.ReadableStreamDefaultController.close - api.ReadableStreamDefaultController.desiredSize diff --git a/features/draft/spec/touch-events.yml.dist b/features/draft/spec/touch-events.yml.dist index a287641815d..095d7c229ab 100644 --- a/features/draft/spec/touch-events.yml.dist +++ b/features/draft/spec/touch-events.yml.dist @@ -13,7 +13,7 @@ compat_features: # edge: "12" # firefox: "52" # firefox_android: "6" - # safari_ios: "3" + # safari_ios: ≤3 - api.Element.touchcancel_event - api.Element.touchend_event - api.Element.touchmove_event @@ -40,7 +40,7 @@ compat_features: # support: # chrome: "18" # chrome_android: "18" - # edge: "18" + # edge: ≤18 # firefox_android: "6" # safari_ios: "2" - api.TouchList @@ -51,16 +51,7 @@ compat_features: # support: # chrome: "22" # chrome_android: "25" - # edge: "18" - # firefox_android: "6" - # safari_ios: "3" - - api.Touch - - # baseline: false - # support: - # chrome: "22" - # chrome_android: "25" - # edge: "18" + # edge: ≤18 # firefox_android: "6" # safari_ios: "10" - api.Touch.clientX @@ -72,11 +63,20 @@ compat_features: - api.Touch.screenY - api.Touch.target + # baseline: false + # support: + # chrome: "22" + # chrome_android: "25" + # edge: ≤18 + # firefox_android: "6" + # safari_ios: ≤3 + - api.Touch + # baseline: false # support: # chrome: "38" # chrome_android: "38" - # edge: "79" + # edge: ≤79 # firefox_android: "6" # safari_ios: "10" - api.Touch.force @@ -87,7 +87,7 @@ compat_features: # support: # chrome: "43" # chrome_android: "43" - # edge: "79" + # edge: ≤79 # firefox_android: "6" # safari_ios: "10" - api.Touch.rotationAngle @@ -98,7 +98,7 @@ compat_features: # chrome_android: "48" # edge: "79" # firefox_android: "6" - # safari_ios: "3" + # safari_ios: ≤3 - api.Touch.Touch # baseline: false diff --git a/features/draft/spec/url.yml.dist b/features/draft/spec/url.yml.dist index 3c811525d86..ce8d0a70018 100644 --- a/features/draft/spec/url.yml.dist +++ b/features/draft/spec/url.yml.dist @@ -48,22 +48,10 @@ compat_features: # firefox_android: "26" # safari: "10" # safari_ios: "10" + - api.URL.origin - api.URL.password - api.URL.username - # baseline: high - # baseline_low_date: 2016-09-20 - # baseline_high_date: 2019-03-20 - # support: - # chrome: "32" - # chrome_android: "32" - # edge: "12" - # firefox: "48" - # firefox_android: "48" - # safari: "10" - # safari_ios: "10" - - api.URL.origin - # baseline: high # baseline_low_date: 2016-09-20 # baseline_high_date: 2019-03-20 diff --git a/features/draft/spec/webcryptoapi.yml.dist b/features/draft/spec/webcryptoapi.yml.dist index e816c0fa9a1..df9a44e8652 100644 --- a/features/draft/spec/webcryptoapi.yml.dist +++ b/features/draft/spec/webcryptoapi.yml.dist @@ -105,16 +105,16 @@ compat_features: - api.SubtleCrypto.deriveKey # baseline: high - # baseline_low_date: 2020-03-24 - # baseline_high_date: 2022-09-24 + # baseline_low_date: ≤2020-03-24 + # baseline_high_date: ≤2022-09-24 # support: # chrome: "41" # chrome_android: "41" # edge: "79" # firefox: "34" # firefox_android: "34" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - api.SubtleCrypto.deriveKey.derivedKeyAlgorithm_option_aes - api.SubtleCrypto.deriveKey.derivedKeyAlgorithm_option_hmac @@ -138,8 +138,8 @@ compat_features: # edge: "79" # firefox: "119" # firefox_android: "119" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - api.SubtleCrypto.deriveKey.derivedKeyAlgorithm_option_hkdf # baseline: false @@ -147,6 +147,6 @@ compat_features: # chrome: "41" # chrome_android: "41" # edge: "79" - # safari: "13.1" - # safari_ios: "13.4" + # safari: ≤13.1 + # safari_ios: ≤13.4 - api.SubtleCrypto.deriveKey.derivedKeyAlgorithm_option_pbkdf2 diff --git a/features/draft/spec/webrtc-priority.yml.dist b/features/draft/spec/webrtc-priority.yml.dist index 45f54e70f8e..abaa116ec19 100644 --- a/features/draft/spec/webrtc-priority.yml.dist +++ b/features/draft/spec/webrtc-priority.yml.dist @@ -8,12 +8,12 @@ status: safari_ios: "15" compat_features: # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 # support: # chrome: "69" # chrome_android: "69" - # edge: "79" + # edge: ≤79 # firefox: "64" # firefox_android: "64" # safari: "11" diff --git a/features/draft/spec/webrtc-stats.yml.dist b/features/draft/spec/webrtc-stats.yml.dist index c536921aa5d..fa0106477e6 100644 --- a/features/draft/spec/webrtc-stats.yml.dist +++ b/features/draft/spec/webrtc-stats.yml.dist @@ -558,17 +558,6 @@ compat_features: - api.RTCStatsReport.type_remote-inbound-rtp.jitter - api.RTCStatsReport.type_remote-inbound-rtp.packetsLost - # baseline: false - # support: - # chrome: "80" - # chrome_android: "80" - # edge: "80" - # firefox: "73" - # firefox_android: "79" - - api.RTCStatsReport.type_inbound-rtp.framesDecoded - - api.RTCStatsReport.type_outbound-rtp.framesEncoded - - api.RTCStatsReport.type_outbound-rtp.qpSum - # baseline: false # support: # chrome: "80" @@ -592,24 +581,21 @@ compat_features: # chrome: "80" # chrome_android: "80" # edge: "80" - # firefox: "106" - # firefox_android: "106" - - api.RTCStatsReport.type_inbound-rtp.lastPacketReceivedTimestamp - - api.RTCStatsReport.type_inbound-rtp.qpSum - - api.RTCStatsReport.type_inbound-rtp.totalDecodeTime - - api.RTCStatsReport.type_inbound-rtp.totalInterFrameDelay - - api.RTCStatsReport.type_inbound-rtp.totalSquaredInterFrameDelay + # firefox: "116" + # firefox_android: "116" + - api.RTCStatsReport.type_media-source.framesPerSecond + - api.RTCStatsReport.type_media-source.height + - api.RTCStatsReport.type_media-source.width # baseline: false # support: # chrome: "80" # chrome_android: "80" # edge: "80" - # firefox: "116" - # firefox_android: "116" - - api.RTCStatsReport.type_media-source.framesPerSecond - - api.RTCStatsReport.type_media-source.height - - api.RTCStatsReport.type_media-source.width + # firefox: ≤73 + # firefox_android: "79" + - api.RTCStatsReport.type_outbound-rtp.framesEncoded + - api.RTCStatsReport.type_outbound-rtp.qpSum # baseline: false # support: @@ -741,6 +727,34 @@ compat_features: # safari_ios: "16.4" - api.RTCStatsReport.type_outbound-rtp.targetBitrate + # baseline: false + # support: + # chrome: "109" + # chrome_android: "109" + # edge: "109" + # firefox: "56" + # firefox_android: "56" + - api.RTCStatsReport.type_candidate-pair.lastPacketReceivedTimestamp + - api.RTCStatsReport.type_candidate-pair.lastPacketSentTimestamp + + # baseline: false + # support: + # chrome: ≤80 + # chrome_android: "80" + # edge: "80" + # firefox: ≤73 + # firefox_android: "79" + - api.RTCStatsReport.type_inbound-rtp.framesDecoded + + # baseline: false + # support: + # chrome: "80" + # chrome_android: "80" + # edge: "80" + # firefox: "106" + # firefox_android: "106" + - api.RTCStatsReport.type_inbound-rtp.lastPacketReceivedTimestamp + # baseline: false # support: # chrome: "103" @@ -761,13 +775,15 @@ compat_features: # baseline: false # support: - # chrome: "109" - # chrome_android: "109" - # edge: "109" - # firefox: "56" - # firefox_android: "56" - - api.RTCStatsReport.type_candidate-pair.lastPacketReceivedTimestamp - - api.RTCStatsReport.type_candidate-pair.lastPacketSentTimestamp + # chrome: ≤80 + # chrome_android: "80" + # edge: "80" + # firefox: "106" + # firefox_android: "106" + - api.RTCStatsReport.type_inbound-rtp.qpSum + - api.RTCStatsReport.type_inbound-rtp.totalDecodeTime + - api.RTCStatsReport.type_inbound-rtp.totalInterFrameDelay + - api.RTCStatsReport.type_inbound-rtp.totalSquaredInterFrameDelay # baseline: false # support: @@ -813,7 +829,6 @@ compat_features: # chrome_android: "80" # edge: "80" - api.RTCStatsReport.type_candidate-pair.consentRequestsSent - - api.RTCStatsReport.type_inbound-rtp.keyFramesDecoded - api.RTCStatsReport.type_media-source.audioLevel - api.RTCStatsReport.type_media-source.totalAudioEnergy - api.RTCStatsReport.type_media-source.totalSamplesDuration @@ -916,6 +931,13 @@ compat_features: - api.RTCStatsReport.type_media-playout.totalSamplesDuration - api.RTCStatsReport.type_media-playout.type + # baseline: false + # support: + # chrome: ≤80 + # chrome_android: "80" + # edge: "80" + - api.RTCStatsReport.type_inbound-rtp.keyFramesDecoded + # baseline: false # support: # firefox: "72" diff --git a/features/draft/spec/webrtc.yml.dist b/features/draft/spec/webrtc.yml.dist index 724094de190..627b02b770e 100644 --- a/features/draft/spec/webrtc.yml.dist +++ b/features/draft/spec/webrtc.yml.dist @@ -125,12 +125,12 @@ compat_features: - api.RTCPeerConnectionIceEvent.candidate # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 + # baseline_low_date: ≤2018-10-02 + # baseline_high_date: ≤2021-04-02 # support: # chrome: "69" # chrome_android: "69" - # edge: "18" + # edge: ≤18 # firefox: "59" # firefox_android: "59" # safari: "11" @@ -309,7 +309,6 @@ compat_features: # firefox_android: "44" # safari: "11" # safari_ios: "11" - - api.RTCPeerConnection.RTCPeerConnection.configuration_bundlePolicy_parameter - api.RTCPeerConnection.createDataChannel - api.RTCPeerConnection.datachannel_event @@ -324,7 +323,6 @@ compat_features: # firefox_android: "44" # safari: "12.1" # safari_ios: "12.2" - - api.RTCPeerConnection.RTCPeerConnection.configuration_certificates_parameter - api.RTCPeerConnection.generateCertificate_static # baseline: high @@ -340,23 +338,6 @@ compat_features: # safari_ios: "11" - api.RTCDataChannel.maxPacketLifeTime - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "56" - # chrome_android: "57" - # edge: "79" - # firefox: "44" - # firefox_android: "44" - # safari: "11" - # safari_ios: "11" - - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter - - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.credential_parameter - - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.urls_parameter - - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.username_parameter - - api.RTCPeerConnection.RTCPeerConnection.configuration_iceTransportPolicy_parameter - # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -426,20 +407,6 @@ compat_features: # safari_ios: "11" - api.RTCStatsReport.size - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "59" - # chrome_android: "59" - # edge: "79" - # firefox: "59" - # firefox_android: "59" - # safari: "12.1" - # safari_ios: "12.2" - - api.RTCRtpReceiver.getContributingSources.source - - api.RTCRtpReceiver.getContributingSources.timestamp - # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -482,45 +449,6 @@ compat_features: # safari_ios: "11" - api.RTCRtpSender.replaceTrack - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "68" - # chrome_android: "68" - # edge: "79" - # firefox: "46" - # firefox_android: "46" - # safari: "11" - # safari_ios: "11" - - api.RTCRtpSender.getParameters - - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "68" - # chrome_android: "68" - # edge: "79" - # firefox: "64" - # firefox_android: "64" - # safari: "11" - # safari_ios: "11" - - api.RTCRtpSender.setParameters - - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "69" - # chrome_android: "69" - # edge: "79" - # firefox: "46" - # firefox_android: "46" - # safari: "12.1" - # safari_ios: "12.2" - - api.RTCRtpSender.getParameters.return_object_property_encodings - # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -553,20 +481,6 @@ compat_features: # safari_ios: "12.2" - api.RTCRtpTransceiver.currentDirection - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "69" - # chrome_android: "69" - # edge: "79" - # firefox: "64" - # firefox_android: "64" - # safari: "11" - # safari_ios: "11" - - api.RTCRtpSender.setParameters.parameters_encodings_parameter - - api.RTCRtpSender.setParameters.parameters_encodings_parameter.maxBitrate - # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -609,6 +523,116 @@ compat_features: - api.RTCRtpReceiver.getContributingSources.audioLevel - api.RTCRtpReceiver.getSynchronizationSources + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "56" + # chrome_android: "56" + # edge: ≤79 + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.RTCPeerConnection.configuration_bundlePolicy_parameter + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "56" + # chrome_android: "56" + # edge: ≤79 + # firefox: "44" + # firefox_android: "44" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCPeerConnection.RTCPeerConnection.configuration_certificates_parameter + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "56" + # chrome_android: "57" + # edge: ≤79 + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.credential_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.urls_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceServers_parameter.username_parameter + - api.RTCPeerConnection.RTCPeerConnection.configuration_iceTransportPolicy_parameter + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: ≤79 + # firefox: "59" + # firefox_android: "59" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCRtpReceiver.getContributingSources.source + - api.RTCRtpReceiver.getContributingSources.timestamp + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "68" + # chrome_android: "68" + # edge: ≤79 + # firefox: "46" + # firefox_android: "46" + # safari: "11" + # safari_ios: "11" + - api.RTCRtpSender.getParameters + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "68" + # chrome_android: "68" + # edge: ≤79 + # firefox: "64" + # firefox_android: "64" + # safari: "11" + # safari_ios: "11" + - api.RTCRtpSender.setParameters + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "69" + # chrome_android: "69" + # edge: ≤79 + # firefox: "46" + # firefox_android: "46" + # safari: "12.1" + # safari_ios: "12.2" + - api.RTCRtpSender.getParameters.return_object_property_encodings + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "69" + # chrome_android: "69" + # edge: ≤79 + # firefox: "64" + # firefox_android: "64" + # safari: "11" + # safari_ios: "11" + - api.RTCRtpSender.setParameters.parameters_encodings_parameter + - api.RTCRtpSender.setParameters.parameters_encodings_parameter.maxBitrate + # baseline: high # baseline_low_date: 2020-03-24 # baseline_high_date: 2022-09-24 @@ -890,7 +914,7 @@ compat_features: # support: # chrome: "59" # chrome_android: "59" - # edge: "79" + # edge: ≤79 # firefox: "128" # firefox_android: "128" # safari: "11" @@ -902,7 +926,7 @@ compat_features: # support: # chrome: "69" # chrome_android: "69" - # edge: "79" + # edge: ≤79 # firefox: "128" # firefox_android: "128" # safari: "11" @@ -915,7 +939,7 @@ compat_features: # support: # chrome: "69" # chrome_android: "69" - # edge: "79" + # edge: ≤79 # firefox: "128" # firefox_android: "128" # safari: "12.1" @@ -966,7 +990,7 @@ compat_features: # support: # chrome: "69" # chrome_android: "69" - # edge: "79" + # edge: ≤79 # safari: "11" # safari_ios: "11" - api.RTCRtpReceiver.getParameters.return_object_property_headerExtensions @@ -976,7 +1000,7 @@ compat_features: # support: # chrome: "69" # chrome_android: "69" - # edge: "79" + # edge: ≤79 # safari: "12.1" # safari_ios: "12.2" - api.RTCRtpSender.getParameters.return_object_property_transactionId @@ -987,7 +1011,7 @@ compat_features: # support: # chrome: "69" # chrome_android: "69" - # edge: "79" + # edge: ≤79 # safari: "15" # safari_ios: "15" - api.RTCRtpReceiver.getParameters.return_object_property_rtcp diff --git a/features/flexbox.yml.dist b/features/flexbox.yml.dist index a8e8bef2ece..c4dfedf1a32 100644 --- a/features/flexbox.yml.dist +++ b/features/flexbox.yml.dist @@ -78,32 +78,6 @@ compat_features: - css.properties.justify-content.flex_context - css.properties.justify-items.flex_context - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "36" - # chrome_android: "36" - # edge: "79" - # firefox: "28" - # firefox_android: "28" - # safari: "9" - # safari_ios: "9" - - css.properties.align-self.flex_context.baseline - - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "52" - # chrome_android: "52" - # edge: "79" - # firefox: "28" - # firefox_android: "28" - # safari: "9" - # safari_ios: "9" - - css.properties.align-items.flex_context.baseline - # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -145,3 +119,29 @@ compat_features: # safari_ios: "11" - css.properties.place-items.flex_context - css.properties.place-self.flex_context + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "36" + # chrome_android: "36" + # edge: ≤79 + # firefox: "28" + # firefox_android: "28" + # safari: "9" + # safari_ios: "9" + - css.properties.align-self.flex_context.baseline + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "52" + # chrome_android: "52" + # edge: ≤79 + # firefox: "28" + # firefox_android: "28" + # safari: "9" + # safari_ios: "9" + - css.properties.align-items.flex_context.baseline diff --git a/features/modulepreload.yml.dist b/features/modulepreload.yml.dist index 608be2e1973..bb857b13ca8 100644 --- a/features/modulepreload.yml.dist +++ b/features/modulepreload.yml.dist @@ -7,7 +7,7 @@ status: support: chrome: "66" chrome_android: "66" - edge: "79" + edge: ≤79 firefox: "115" firefox_android: "115" safari: "17" diff --git a/features/referrer-policy.yml.dist b/features/referrer-policy.yml.dist index 99504c050a9..62559330f9f 100644 --- a/features/referrer-policy.yml.dist +++ b/features/referrer-policy.yml.dist @@ -71,6 +71,18 @@ compat_features: # safari: "14" # safari_ios: "14" - api.HTMLScriptElement.referrerPolicy + + # baseline: high + # baseline_low_date: 2020-09-16 + # baseline_high_date: 2023-03-16 + # support: + # chrome: "70" + # chrome_android: "70" + # edge: ≤79 + # firefox: "65" + # firefox_android: "65" + # safari: "14" + # safari_ios: "14" - html.elements.script.referrerpolicy # baseline: high diff --git a/features/server-timing.yml.dist b/features/server-timing.yml.dist index 331be840bd3..afd8fbdca9c 100644 --- a/features/server-timing.yml.dist +++ b/features/server-timing.yml.dist @@ -13,10 +13,32 @@ status: safari: "16.4" safari_ios: "16.4" compat_features: + # ⬇️ Same status as overall feature ⬇️ + # baseline: low + # baseline_low_date: 2023-03-27 + # support: + # chrome: "65" + # chrome_android: "65" + # edge: "79" + # firefox: "61" + # firefox_android: "61" + # safari: "16.4" + # safari_ios: "16.4" - api.PerformanceResourceTiming.serverTiming - api.PerformanceServerTiming - api.PerformanceServerTiming.description - api.PerformanceServerTiming.duration - api.PerformanceServerTiming.name - api.PerformanceServerTiming.toJSON + + # baseline: low + # baseline_low_date: 2023-03-27 + # support: + # chrome: "65" + # chrome_android: "65" + # edge: ≤79 + # firefox: "61" + # firefox_android: "61" + # safari: "16.4" + # safari_ios: "16.4" - http.headers.Server-Timing diff --git a/features/slot.yml.dist b/features/slot.yml.dist index 65fa3125ec0..a9df54c11f4 100644 --- a/features/slot.yml.dist +++ b/features/slot.yml.dist @@ -47,7 +47,6 @@ compat_features: - api.Text.assignedSlot - html.elements.slot - html.elements.slot.name - - html.global_attributes.slot # baseline: high # baseline_low_date: 2020-01-15 @@ -74,3 +73,16 @@ compat_features: # safari: "12.1" # safari_ios: "12.2" - api.HTMLSlotElement.assignedElements + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "53" + # chrome_android: "53" + # edge: ≤79 + # firefox: "63" + # firefox_android: "63" + # safari: "10" + # safari_ios: "10" + - html.global_attributes.slot diff --git a/features/sub-sup.yml.dist b/features/sub-sup.yml.dist index 5269070a575..757979068af 100644 --- a/features/sub-sup.yml.dist +++ b/features/sub-sup.yml.dist @@ -11,8 +11,8 @@ status: edge: "12" firefox: "1" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: - html.elements.sub - html.elements.sup diff --git a/features/tabindex.yml.dist b/features/tabindex.yml.dist index 2cb8cf9597a..9d8f977aa7c 100644 --- a/features/tabindex.yml.dist +++ b/features/tabindex.yml.dist @@ -11,8 +11,8 @@ status: edge: "18" firefox: "1.5" firefox_android: "4" - safari: "4" - safari_ios: "3.2" + safari: ≤4 + safari_ios: ≤3.2 compat_features: # baseline: high # baseline_low_date: 2015-07-29 @@ -23,8 +23,8 @@ compat_features: # edge: "12" # firefox: "1.5" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.global_attributes.tabindex # baseline: high diff --git a/features/table.yml.dist b/features/table.yml.dist index 5e9f64e2803..edfd9c4667f 100644 --- a/features/table.yml.dist +++ b/features/table.yml.dist @@ -109,8 +109,8 @@ compat_features: # edge: "12" # firefox: "1" # firefox_android: "4" - # safari: "4" - # safari_ios: "3.2" + # safari: ≤4 + # safari_ios: ≤3.2 - html.elements.caption - html.elements.col - html.elements.col.span diff --git a/features/transforms2d.yml.dist b/features/transforms2d.yml.dist index e098d7528f6..25cc49d944c 100644 --- a/features/transforms2d.yml.dist +++ b/features/transforms2d.yml.dist @@ -38,6 +38,19 @@ compat_features: - css.types.transform-function.translateX - css.types.transform-function.translateY + # baseline: high + # baseline_low_date: 2015-09-30 + # baseline_high_date: 2018-03-30 + # support: + # chrome: "36" + # chrome_android: "36" + # edge: "12" + # firefox: ≤16 + # firefox_android: "16" + # safari: "9" + # safari_ios: "9" + - css.properties.transform + # ⬇️ Same status as overall feature ⬇️ # baseline: high # baseline_low_date: 2015-09-30 @@ -50,5 +63,4 @@ compat_features: # firefox_android: "16" # safari: "9" # safari_ios: "9" - - css.properties.transform - css.properties.transform-origin diff --git a/features/video.yml.dist b/features/video.yml.dist index 2f4576691b7..cebf5111591 100644 --- a/features/video.yml.dist +++ b/features/video.yml.dist @@ -315,7 +315,7 @@ compat_features: # support: # chrome: "33" # chrome_android: "33" - # edge: "18" + # edge: ≤18 # firefox: "74" # firefox_android: "79" # safari: "10" diff --git a/packages/compute-baseline/src/baseline/date-utils.test.ts b/packages/compute-baseline/src/baseline/date-utils.test.ts index df417eaebdc..0eaf6a6025d 100644 --- a/packages/compute-baseline/src/baseline/date-utils.test.ts +++ b/packages/compute-baseline/src/baseline/date-utils.test.ts @@ -1,6 +1,9 @@ import assert from "node:assert/strict"; -import { toHighDate, toDateString } from "./date-utils.js"; +import { Temporal } from "@js-temporal/polyfill"; +import { toHighDate } from "./date-utils.js"; + +const toDateString = (d: Temporal.PlainDate) => d.toString().slice(0, 10); describe("toHighDate", function () { it("Jan 1", function () { diff --git a/packages/compute-baseline/src/baseline/date-utils.ts b/packages/compute-baseline/src/baseline/date-utils.ts index f09e784e8b4..41da1a65a9c 100644 --- a/packages/compute-baseline/src/baseline/date-utils.ts +++ b/packages/compute-baseline/src/baseline/date-utils.ts @@ -8,6 +8,27 @@ export function toHighDate( return startDate.add(BASELINE_LOW_TO_HIGH_DURATION); } -export function toDateString(date: Temporal.PlainDate): string { - return date.toString().slice(0, 10); +/** + * Format a `Temporal.PlainDate` as a string, with a ≤ range specifier as + * needed. + */ +export function toRangedDateString( + date: Temporal.PlainDate, + ranged?: boolean, +): string { + return `${ranged ? "≤" : ""}${date.toString().slice(0, 10)}`; +} + +/** + * Parse a potentially ranged date string (e.g., "≤2024-01-01") to a + * `Temporal.PlainDate` and a boolean value for ranged or unranged. + */ +export function parseRangedDateString( + dateSpec: string, +): [date: Temporal.PlainDate, ranged: boolean] { + const ranged = dateSpec.startsWith("≤"); + return [ + Temporal.PlainDate.from(ranged ? dateSpec.slice(1) : dateSpec), + ranged, + ]; } diff --git a/packages/compute-baseline/src/baseline/index.test.ts b/packages/compute-baseline/src/baseline/index.test.ts index bb2a9433147..416bd204bef 100644 --- a/packages/compute-baseline/src/baseline/index.test.ts +++ b/packages/compute-baseline/src/baseline/index.test.ts @@ -4,6 +4,7 @@ import { Temporal } from "@js-temporal/polyfill"; import * as chai from "chai"; import chaiJestSnapshot from "chai-jest-snapshot"; +import { browser } from "../browser-compat-data/index.js"; import { computeBaseline, getStatus, keystoneDateToStatus } from "./index.js"; chai.use(chaiJestSnapshot); @@ -119,6 +120,38 @@ describe("computeBaseline", function () { chai.expect(resultWithAncestors).to.matchSnapshot(); }); + it("surfaces version ranges from the underlying compat data", function () { + const singleKey = computeBaseline({ + compatKeys: ["css.properties.align-self"], + }); + const singleKeySafari = singleKey.support.get(browser("safari")); + assert(singleKeySafari); + assert.equal(singleKeySafari.release.version, "9"); + assert.equal(singleKeySafari.text, "9"); + assert.equal(JSON.parse(singleKey.toJSON()).support.safari, "9"); + + const multiKey = computeBaseline({ + compatKeys: [ + "css.properties.align-self", + "css.properties.align-self.flex_context.baseline", + ], + checkAncestors: false, + }); + const multiKeySafari = multiKey.support.get(browser("safari")); + assert(multiKeySafari); + assert.equal(multiKeySafari.release.version, "9"); + assert.equal(multiKeySafari.text, "9"); + assert.equal(JSON.parse(multiKey.toJSON()).support.safari, "9"); + }); + + it("calculates ranged dates from underlying compat data ranged versions", function () { + const result = computeBaseline({ + compatKeys: ["api.FileSystem"], + }); + assert.equal(JSON.parse(result.toJSON()).support.edge, "≤18"); + assert(JSON.parse(result.toJSON()).baseline_low_date.startsWith("≤")); + }); + it("disregards support that's been removed", function () { const result = computeBaseline({ compatKeys: ["api.AudioTrack"], @@ -140,7 +173,7 @@ describe("computeBaseline", function () { describe("keystoneDateToStatus()", function () { it('returns "low" for date 1 year before cutoff date', function () { const status = keystoneDateToStatus( - Temporal.PlainDate.from("2020-01-01"), + "2020-01-01", Temporal.PlainDate.from("2021-01-01"), false, ); @@ -151,7 +184,7 @@ describe("keystoneDateToStatus()", function () { it('returns "high" for date 3 years before cutoff date', function () { const status = keystoneDateToStatus( - Temporal.PlainDate.from("2020-01-01"), + "2020-01-01", Temporal.PlainDate.from("2024-01-01"), false, ); @@ -173,7 +206,7 @@ describe("keystoneDateToStatus()", function () { it("returns false for discouraged (deprecated, obsolete, etc.) features", function () { const status = keystoneDateToStatus( - Temporal.PlainDate.from("2020-01-01"), + "2020-01-01", Temporal.PlainDate.from("2020-01-01"), true, ); @@ -181,4 +214,15 @@ describe("keystoneDateToStatus()", function () { assert.equal(status.baseline_low_date, null); assert.equal(status.baseline_high_date, null); }); + + it("preserves ranges where they exist", function () { + const status = keystoneDateToStatus( + "≤2020-01-01", + Temporal.PlainDate.from("2024-01-01"), + false, + ); + assert.equal(status.baseline, "high"); + assert.equal(status.baseline_low_date, "≤2020-01-01"); + assert.equal(status.baseline_high_date, "≤2022-07-01"); + }); }); diff --git a/packages/compute-baseline/src/baseline/index.ts b/packages/compute-baseline/src/baseline/index.ts index 98778de05a3..3bbe7d837a8 100644 --- a/packages/compute-baseline/src/baseline/index.ts +++ b/packages/compute-baseline/src/baseline/index.ts @@ -1,14 +1,22 @@ -import assert from "node:assert"; - import { Temporal } from "@js-temporal/polyfill"; - import { Browser } from "../browser-compat-data/browser.js"; import { Compat, defaultCompat } from "../browser-compat-data/compat.js"; import { feature } from "../browser-compat-data/feature.js"; -import { Release } from "../browser-compat-data/release.js"; import { browsers } from "./core-browser-set.js"; -import { toDateString, toHighDate } from "./date-utils.js"; -import { support } from "./support.js"; +import { + parseRangedDateString, + toHighDate, + toRangedDateString, +} from "./date-utils.js"; +import { + compareInitialSupport, + InitialSupport, + support, + SupportMap, +} from "./support.js"; + +// Include this in the public API +export { parseRangedDateString } from "./date-utils.js"; interface Logger { debug?: typeof console.debug; @@ -40,7 +48,7 @@ interface SupportDetails { baseline_low_date: BaselineDate; baseline_high_date: BaselineDate; discouraged: boolean; - support: Map; + support: Map; toJSON: () => string; } @@ -161,28 +169,27 @@ function withAncestors(compatKey: string, compat: Compat): string[] { } /** - * Collate several support summaries, taking the most-recent release for each browser across all of the summaries. + * Collate several support summaries, taking the most-recent release for each + * browser across all of the summaries. */ -function collateSupport( - supports: Map[], -): Map { - const collated = new Map(); +function collateSupport(supports: SupportMap[]): SupportMap { + const collated = new Map(); for (const support of supports) { - for (const [browser, release] of support) { - collated.set(browser, [...(collated.get(browser) ?? []), release]); + for (const [browser, initialSupport] of support) { + collated.set(browser, [...(collated.get(browser) ?? []), initialSupport]); } } - const support: Map = new Map(); - for (const [browser, releases] of collated) { - if (releases.includes(undefined)) { + const support: SupportMap = new Map(); + for (const [browser, initialSupports] of collated) { + if (initialSupports.includes(undefined)) { support.set(browser, undefined); } else { support.set( browser, - releases - .sort((r1, r2) => (r1 as Release).compare(r2 as Release)) + (initialSupports as InitialSupport[]) + .sort(compareInitialSupport) .at(-1), ); } @@ -195,7 +202,7 @@ function collateSupport( * corresponding Baseline status and high and low dates. */ export function keystoneDateToStatus( - date: Temporal.PlainDate | null, + dateSpec: string | null, cutoffDate: Temporal.PlainDate, discouraged: boolean, ): { @@ -203,7 +210,7 @@ export function keystoneDateToStatus( baseline_low_date: BaselineDate; baseline_high_date: BaselineDate; } { - if (date == null || discouraged) { + if (dateSpec == null || discouraged) { return { baseline: false, baseline_low_date: null, @@ -211,14 +218,16 @@ export function keystoneDateToStatus( }; } + const [date, ranged] = parseRangedDateString(dateSpec); + let baseline: BaselineStatus = "low"; - let baseline_low_date: BaselineDate = toDateString(date); + let baseline_low_date: BaselineDate = toRangedDateString(date, ranged); let baseline_high_date: BaselineDate = null; const possibleHighDate = toHighDate(date); if (Temporal.PlainDate.compare(possibleHighDate, cutoffDate) <= 0) { baseline = "high"; - baseline_high_date = toDateString(possibleHighDate); + baseline_high_date = toRangedDateString(possibleHighDate, ranged); } return { baseline, baseline_low_date, baseline_high_date }; @@ -230,30 +239,56 @@ export function keystoneDateToStatus( * feature is not Baseline and there is no keystone date. */ function findKeystoneDate( - releases: (Release | undefined)[], -): Temporal.PlainDate | null { - let latestDate = null; - for (const release of releases) { - if (!release?.date) { - return null; - } - if ( - !latestDate || - Temporal.PlainDate.compare(latestDate, release.date) < 0 - ) { - latestDate = release.date; - } + support: (InitialSupport | undefined)[], +): string | null { + if (support.includes(undefined) || support.length === 0) { + return null; + } + + const initialSupports = support as InitialSupport[]; + if (initialSupports.some((i) => i.release.date === null)) { + return null; + } + const keystone = initialSupports + .sort((i1, i2) => { + if ( + Temporal.PlainDate.compare( + i1.release.date as Temporal.PlainDate, + i2.release.date as Temporal.PlainDate, + ) === 0 + ) { + if (i1.ranged && !i2.ranged) { + return -1; + } + if (!i1.ranged && i2.ranged) { + return 1; + } + return 0; + } + return Temporal.PlainDate.compare( + i1.release.date as Temporal.PlainDate, + i2.release.date as Temporal.PlainDate, + ); + }) + .at(-1) as InitialSupport; + + if (!keystone.release.date) { + return null; + } + + if (keystone.ranged) { + return `≤${keystone.release.date}`; } - return latestDate; + return keystone.release.date.toString(); } function jsonify(status: SupportDetails): string { const { baseline_low_date, baseline_high_date } = status; const support: Record = {}; - for (const [browser, release] of status.support.entries()) { - if (release !== undefined) { - support[browser.id] = release.version; + for (const [browser, initialSupport] of status.support.entries()) { + if (initialSupport !== undefined) { + support[browser.id] = initialSupport.text; } } diff --git a/packages/compute-baseline/src/baseline/support.test.ts b/packages/compute-baseline/src/baseline/support.test.ts deleted file mode 100644 index 0ef2ba5e327..00000000000 --- a/packages/compute-baseline/src/baseline/support.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import assert from "assert/strict"; -import { Compat } from "../browser-compat-data/index.js"; -import { lastInitialRelease } from "./support.js"; - -describe("lastInitialRelease", function () { - it("returns undefined for no releases", function () { - assert.equal(lastInitialRelease([]), undefined); - }); - - it("returns a single release", function () { - const cr100 = new Compat().browser("chrome").version("100"); - - const result = lastInitialRelease([cr100]); - assert.equal(result, cr100, `${result} is not ${cr100}`); - }); - - it("returns the least-recent release in a consecutive series", function () { - const cr = new Compat().browser("chrome"); - const cr100 = cr.version("100"); - const cr99 = cr.version("99"); - - const result = lastInitialRelease([cr99, cr100]); - assert.equal(result, cr99, `${result} is not ${cr99}`); - }); - - it("returns the least-recent release of the most-recent consecutive series", function () { - const cr = new Compat().browser("chrome"); - const cr100 = cr.version("100"); - const cr99 = cr.version("99"); - const cr95 = cr.version("95"); - const cr94 = cr.version("94"); - - const result = lastInitialRelease([cr94, cr95, cr99, cr100]); - assert.equal(result, cr99, `${result} is not ${cr99}`); - }); -}); diff --git a/packages/compute-baseline/src/baseline/support.ts b/packages/compute-baseline/src/baseline/support.ts index 299ec9f3ba2..ca133d8ace5 100644 --- a/packages/compute-baseline/src/baseline/support.ts +++ b/packages/compute-baseline/src/baseline/support.ts @@ -1,107 +1,80 @@ +import assert from "assert"; import { Browser } from "../browser-compat-data/browser.js"; import { Feature } from "../browser-compat-data/feature.js"; import { Release } from "../browser-compat-data/release.js"; -import { Qualifications } from "../browser-compat-data/supportStatements.js"; -import { logger } from "./index.js"; -type Support = Map; +export interface InitialSupport { + release: Release; + ranged: boolean; + text: string; +} + +export type SupportMap = Map; /** * Map browsers to the release that most-recently introduced support for the feature. */ -export function support(feature: Feature, browsers: Browser[]): Support { - const support: Support = new Map(); +export function support(feature: Feature, browsers: Browser[]): SupportMap { + const support: SupportMap = new Map(); for (const b of browsers) { - const releases = feature.supportedBy({ only: [b] }); - // TODO: - // let lastInitial: Release | undefined; - // let lastInitialBoundary: "" | "≤" | undefined; - - // const reverseChronological = b.releases.slice().reverse(); - // let previousRelease: string | undefined; - // for (let index = b.releases.length - 1; index >= 0; index--) { - // const release = reverseChronological[index] as Release; - // const current = feature.flatSupportedIn(release); + let lastInitial: Release | undefined; + let lastInitialBoundary: "" | "≤" = ""; + for (let index = b.current().releaseIndex; index >= 0; index--) { + const release = b.releases[index]; + assert(release instanceof Release, `No index ${index} in ${b} releases`); // This shouldn't happen, but neither should off-by-one errors. 🫠 + const supported = feature.supportedIn(release); - // // Check if current has changed, etc. - // } + if (!lastInitial) { + if ([false, null].includes(supported)) { + // First-iteration only: bail when the latest release does not support + // the feature. + break; + } + lastInitial = release; + continue; + } - const unqualifiedReleases = []; - const qualifiedReleases = []; - for (const { release, qualifications } of releases) { - if (qualifications) { - qualifiedReleases.push({ release, qualifications }); - } else { - unqualifiedReleases.push(release); + if (supported === null) { + lastInitialBoundary = "≤"; + break; + } + if (supported === false) { + lastInitialBoundary = ""; + break; } + lastInitial = release; } - const currentlySupported = unqualifiedReleases.includes(b.current()); - if (currentlySupported) { - support.set(b, lastInitialRelease(unqualifiedReleases)); - } else { + if (!lastInitial) { support.set(b, undefined); + } else { + support.set(b, { + release: lastInitial, + ranged: lastInitialBoundary === "≤", + text: `${lastInitialBoundary}${lastInitial.version}`, + }); } - - logReleaseOmissions(feature, qualifiedReleases, unqualifiedReleases); } return support; } /** - * Find the most-recent first release of a consecutive series of releases. - * - * For example, given browser versions [50, 51, 52, 99, 100, 101], return release 99, since that was the most-recent release to start a consecutive series. + * Returns a number indicating whether an `InitialSupport` object comes before + * (negative), after (positive), in the same position (0) by sort order. */ -export function lastInitialRelease(releases: Release[]): Release | undefined { - let newestFirst = releases.sort((a, b) => b.compare(a)); - - let initial: Release | undefined = undefined; - for (const thisRelease of newestFirst) { - if (!initial || initial.releaseIndex - 1 === thisRelease.releaseIndex) { - initial = thisRelease; - } else { - break; +export function compareInitialSupport( + i1: InitialSupport, + i2: InitialSupport, +): number { + if (i1.release.compare(i2.release) === 0) { + if (i1.ranged && !i2.ranged) { + return -1; } - } - return initial; -} - -function logReleaseOmissions( - feature: Feature, - qualified: { release: Release; qualifications: Qualifications }[], - unqualified: Release[], -) { - if (!logger || !logger.debug) { - return; - } - - const unqual = new Set(unqualified); - const aggregated = new Map< - Browser, - { release: Release; qualifications: Qualifications }[] - >(); - - for (const { release, qualifications } of qualified) { - // Only aggregate browsers with no corresponding unqualified release (e.g., shipping both prefixed and unprefixed shouldn't make noise) - if (!unqual.has(release)) { - const agg = aggregated.get(release.browser) || []; - agg.push({ release, qualifications }); - aggregated.set(release.browser, agg); + if (!i1.ranged && i2.ranged) { + return 1; } + return 0; } - - for (const [browser, releases] of aggregated.entries()) { - const qualifications: string[] = Array.from( - new Set( - releases.flatMap(({ release, qualifications }) => - Object.keys(qualifications), - ), - ), - ); - logger.debug( - `${feature}: ${browser} has ${releases.length} releases deemed unsupported due to ${qualifications.join(", ")}. See underlying data for details.`, - ); - } + return i1.release.compare(i2.release); } diff --git a/scripts/dist.ts b/scripts/dist.ts index 78c36bc7dcc..17e11a32531 100644 --- a/scripts/dist.ts +++ b/scripts/dist.ts @@ -1,4 +1,10 @@ -import { computeBaseline, getStatus, setLogger } from "compute-baseline"; +import { Temporal } from "@js-temporal/polyfill"; +import { + computeBaseline, + getStatus, + parseRangedDateString, + setLogger, +} from "compute-baseline"; import { Compat, Feature } from "compute-baseline/browser-compat-data"; import { fdir } from "fdir"; import fs from "node:fs"; @@ -81,6 +87,7 @@ type SupportStatus = ReturnType; function compareStatus(a: SupportStatus, b: SupportStatus) { // First sort by Baseline status/date, oldest Base features first, and // non-Baseline features last. + if (a.baseline_low_date !== b.baseline_low_date) { if (!a.baseline_low_date) { return 1; @@ -88,8 +95,24 @@ function compareStatus(a: SupportStatus, b: SupportStatus) { if (!b.baseline_low_date) { return -1; } - return a.baseline_low_date.localeCompare(b.baseline_low_date); + + const [aLowDate, aLowRanged] = parseRangedDateString(a.baseline_low_date); + const [bLowDate, bLowRanged] = parseRangedDateString(b.baseline_low_date); + + // Older dates first + if (Temporal.PlainDate.compare(aLowDate, bLowDate) !== 0) { + return Temporal.PlainDate.compare(aLowDate, bLowDate); + } + + // If dates are equal, then unranged values go first + if (!aLowRanged && bLowRanged) { + return -1; + } + if (!bLowRanged && aLowRanged) { + return 1; + } } + // Next sort by number of supporting browsers. const aBrowsers = Object.keys(a.support).length; const bBrowsers = Object.keys(b.support).length; @@ -101,7 +124,23 @@ function compareStatus(a: SupportStatus, b: SupportStatus) { const bVersions = Object.values(b.support); for (let i = 0; i < aVersions.length; i++) { if (aVersions[i] !== bVersions[i]) { - return Number(aVersions[i]) - Number(bVersions[i]); + const [aRanged, aVersion] = aVersions[i].startsWith("≤") + ? [true, aVersions[i].slice(1)] + : [false, aVersions[i]]; + const [bRanged, bVersion] = bVersions[i].startsWith("≤") + ? [true, bVersions[i].slice(1)] + : [false, bVersions[i]]; + + if (aVersion !== bVersion) { + if (!aRanged && bRanged) { + return -1; + } + if (!bRanged && aRanged) { + return 1; + } + } + + return Number(aVersion) - Number(bVersion); } } return 0;