diff --git a/docs/baseline.md b/docs/baseline.md index d6f8e5777af..cca11ce293d 100644 --- a/docs/baseline.md +++ b/docs/baseline.md @@ -121,7 +121,7 @@ This is but one of several possible stories to help keep in mind the needs and c The WebDX community group, through the [web-platform-dx/web-features-set owners group](../GOVERNANCE.md), maintains this document. Based on WebDX community group research, the web-features owners group decides matters such as the core browser set, releases, editorial overrides, and so on. -The status definition is due for review by the governance group on 7 November 2024. +The status definition is due for review by the governance group on 1 June 2025. ## Status definition diff --git a/features/background-attachment.yml b/features/background-attachment.yml index 69fa6765f41..aeee666eb20 100644 --- a/features/background-attachment.yml +++ b/features/background-attachment.yml @@ -8,3 +8,4 @@ compat_features: - css.properties.background-attachment.fixed - css.properties.background-attachment.local - css.properties.background-attachment.scroll + - css.properties.background-attachment.multiple_backgrounds diff --git a/features/background-attachment.yml.dist b/features/background-attachment.yml.dist index aa9db2cb82d..d3083e1cc86 100644 --- a/features/background-attachment.yml.dist +++ b/features/background-attachment.yml.dist @@ -28,6 +28,19 @@ compat_features: - css.properties.background-attachment - css.properties.background-attachment.scroll + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "3.6" + # firefox_android: "4" + # safari: "1.3" + # safari_ios: "3.2" + - css.properties.background-attachment.multiple_backgrounds + # baseline: high # baseline_low_date: 2022-03-14 # baseline_high_date: 2024-09-14 diff --git a/features/background-clip.yml b/features/background-clip.yml index 04363b0b82a..9e67c43698b 100644 --- a/features/background-clip.yml +++ b/features/background-clip.yml @@ -4,3 +4,9 @@ name: background-clip description: "The `background-clip` CSS property sets the extent of the background: the padding box, the content box, or the default border box." spec: https://drafts.csswg.org/css-backgrounds-3/#background-clip group: background +compat_features: + - css.properties.background-clip + - css.properties.background-clip.border-box + - css.properties.background-clip.content-box + - css.properties.background-clip.padding-box + - css.properties.background.background-clip diff --git a/features/background-clip.yml.dist b/features/background-clip.yml.dist index be7b055f03d..5e2418f7a3b 100644 --- a/features/background-clip.yml.dist +++ b/features/background-clip.yml.dist @@ -6,15 +6,39 @@ status: baseline_low_date: 2015-07-29 baseline_high_date: 2018-01-29 support: - chrome: "1" - chrome_android: "18" + chrome: "21" + chrome_android: "25" edge: "12" - firefox: "4" - firefox_android: "4" - safari: "5" + firefox: "22" + firefox_android: "22" + safari: "5.1" safari_ios: "5" 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: "4" + # firefox_android: "4" + # safari: "5" + # safari_ios: "5" - css.properties.background-clip - css.properties.background-clip.border-box - css.properties.background-clip.content-box - css.properties.background-clip.padding-box + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "21" + # chrome_android: "25" + # edge: "12" + # firefox: "22" + # firefox_android: "22" + # safari: "5.1" + # safari_ios: "4" + - css.properties.background.background-clip diff --git a/features/background-image.yml b/features/background-image.yml new file mode 100644 index 00000000000..89e2812380e --- /dev/null +++ b/features/background-image.yml @@ -0,0 +1,8 @@ +name: background-image +description: The `background-image` CSS property sets the graphics to display behind the content of an element and in front of the background color. Graphics may be any combination of images or gradients. +spec: https://drafts.csswg.org/css-backgrounds-3/#background-image +group: background +compat_features: + - css.properties.background-image + - css.properties.background-image.multiple_backgrounds + - css.properties.background-image.none diff --git a/features/background-image.yml.dist b/features/background-image.yml.dist new file mode 100644 index 00000000000..d4e257720e5 --- /dev/null +++ b/features/background-image.yml.dist @@ -0,0 +1,43 @@ +# Generated from: background-image.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2015-07-29 + baseline_high_date: 2018-01-29 + support: + chrome: "1" + chrome_android: "18" + edge: "12" + firefox: "3.6" + firefox_android: "4" + safari: "1.3" + safari_ios: "1" +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: "1" + # safari_ios: "1" + - css.properties.background-image + - css.properties.background-image.none + + # ⬇️ Same status as overall feature ⬇️ + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "3.6" + # firefox_android: "4" + # safari: "1.3" + # safari_ios: "1" + - css.properties.background-image.multiple_backgrounds diff --git a/features/background-origin.yml b/features/background-origin.yml new file mode 100644 index 00000000000..57477b15b2d --- /dev/null +++ b/features/background-origin.yml @@ -0,0 +1,10 @@ +name: background-origin +description: The `background-origin` CSS property sets the background starting position relative to the border and padding of an element. +spec: https://drafts.csswg.org/css-backgrounds-3/#background-origin +group: background +compat_features: + - css.properties.background-origin + - css.properties.background-origin.border-box + - css.properties.background-origin.content-box + - css.properties.background-origin.padding-box + - css.properties.background.background-origin diff --git a/features/background-origin.yml.dist b/features/background-origin.yml.dist new file mode 100644 index 00000000000..07e6e76917c --- /dev/null +++ b/features/background-origin.yml.dist @@ -0,0 +1,57 @@ +# Generated from: background-origin.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2015-07-29 + baseline_high_date: 2018-01-29 + support: + chrome: "21" + chrome_android: "25" + edge: "12" + firefox: "22" + firefox_android: "22" + safari: "5.1" + safari_ios: "4" +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: "4" + # firefox_android: "4" + # safari: "3" + # safari_ios: "1" + - css.properties.background-origin + - css.properties.background-origin.content-box + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "4" + # firefox_android: "4" + # safari: "3" + # safari_ios: "2" + - css.properties.background-origin.border-box + - css.properties.background-origin.padding-box + + # ⬇️ Same status as overall feature ⬇️ + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "21" + # chrome_android: "25" + # edge: "12" + # firefox: "22" + # firefox_android: "22" + # safari: "5.1" + # safari_ios: "4" + - css.properties.background.background-origin diff --git a/features/background-position.yml b/features/background-position.yml new file mode 100644 index 00000000000..11be5dfec34 --- /dev/null +++ b/features/background-position.yml @@ -0,0 +1,22 @@ +name: background-position +description: The `background-position` CSS property offsets the initial position of background images relative to the background origin. +spec: https://drafts.csswg.org/css-backgrounds-3/#background-position +group: background +caniuse: + - css-background-offsets + - background-position-x-y +status: + compute_from: css.properties.background-position.side-relative_values +compat_features: + - css.properties.background-position + - css.properties.background-position-x + - css.properties.background-position-x.side-relative_values + - css.properties.background-position-y + - css.properties.background-position-y.side-relative_values + - css.properties.background-position.bottom + - css.properties.background-position.center + - css.properties.background-position.left + - css.properties.background-position.multiple_backgrounds + - css.properties.background-position.right + - css.properties.background-position.side-relative_values + - css.properties.background-position.top diff --git a/features/background-position.yml.dist b/features/background-position.yml.dist new file mode 100644 index 00000000000..39d5abcc336 --- /dev/null +++ b/features/background-position.yml.dist @@ -0,0 +1,95 @@ +# Generated from: background-position.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2015-07-29 + baseline_high_date: 2018-01-29 + support: + chrome: "25" + chrome_android: "25" + edge: "12" + firefox: "13" + firefox_android: "14" + safari: "7" + safari_ios: "7" +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: "1" + # safari_ios: "1" + - css.properties.background-position + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "3.6" + # firefox_android: "4" + # safari: "1.3" + # safari_ios: "1" + - css.properties.background-position.multiple_backgrounds + + # ⬇️ Same status as overall feature ⬇️ + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "25" + # chrome_android: "25" + # edge: "12" + # firefox: "13" + # firefox_android: "14" + # safari: "7" + # safari_ios: "7" + - css.properties.background-position.side-relative_values + + # baseline: high + # baseline_low_date: 2016-09-20 + # baseline_high_date: 2019-03-20 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "49" + # firefox_android: "49" + # safari: "1" + # safari_ios: "1" + - css.properties.background-position-x + - css.properties.background-position-y + + # baseline: high + # baseline_low_date: 2020-07-28 + # baseline_high_date: 2023-01-28 + # support: + # chrome: ≤83 + # chrome_android: "83" + # edge: "83" + # firefox: ≤72 + # firefox_android: "79" + # safari: ≤13.1 + # safari_ios: ≤13.4 + - css.properties.background-position.bottom + - css.properties.background-position.center + - css.properties.background-position.left + - css.properties.background-position.right + - css.properties.background-position.top + + # baseline: false + # support: + # firefox: "49" + # firefox_android: "49" + # safari: "15.4" + # safari_ios: "15.4" + - css.properties.background-position-x.side-relative_values + - css.properties.background-position-y.side-relative_values diff --git a/features/background.yml b/features/background.yml index be6a9fe9c17..56e56ba4567 100644 --- a/features/background.yml +++ b/features/background.yml @@ -4,3 +4,4 @@ spec: https://drafts.csswg.org/css-backgrounds-3/#background group: background compat_features: - css.properties.background + - css.properties.background.multiple_backgrounds diff --git a/features/background.yml.dist b/features/background.yml.dist index 849cb4dd74e..4069a0cb7fc 100644 --- a/features/background.yml.dist +++ b/features/background.yml.dist @@ -9,9 +9,34 @@ status: chrome: "1" chrome_android: "18" edge: "12" - firefox: "1" + firefox: "3.6" firefox_android: "4" - safari: "1" + safari: "1.3" safari_ios: "1" 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: "1" + # safari_ios: "1" - css.properties.background + + # ⬇️ Same status as overall feature ⬇️ + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "3.6" + # firefox_android: "4" + # safari: "1.3" + # safari_ios: "1" + - css.properties.background.multiple_backgrounds diff --git a/features/border-image.yml b/features/border-image.yml index 7f710810bf0..08aabd0f6d4 100644 --- a/features/border-image.yml +++ b/features/border-image.yml @@ -3,3 +3,20 @@ description: The `border-image` CSS property draws an image around an element. spec: https://drafts.csswg.org/css-backgrounds-3/#border-images caniuse: border-image group: borders-outlines +status: + compute_from: css.properties.border-image-repeat.space +compat_features: + - css.properties.border-image + - css.properties.border-image-outset + - css.properties.border-image-repeat + - css.properties.border-image-repeat.repeat + - css.properties.border-image-repeat.round + - css.properties.border-image-repeat.space + - css.properties.border-image-repeat.stretch + - css.properties.border-image-slice + - css.properties.border-image-source + - css.properties.border-image-width + - css.properties.border-image-width.auto + - css.properties.border-image.fill + - css.properties.border-image.gradient + - css.properties.border-image.optional_border_image_slice diff --git a/features/border-image.yml.dist b/features/border-image.yml.dist index ba3597806aa..a9a4dfdc701 100644 --- a/features/border-image.yml.dist +++ b/features/border-image.yml.dist @@ -109,3 +109,30 @@ compat_features: # safari: "9.1" # safari_ios: "9.3" - css.properties.border-image-repeat.space + + # baseline: high + # baseline_low_date: 2020-07-28 + # baseline_high_date: 2023-01-28 + # support: + # chrome: "15" + # chrome_android: "18" + # edge: "12" + # firefox: ≤72 + # firefox_android: "79" + # safari: "6" + # safari_ios: "9.3" + - css.properties.border-image-repeat.repeat + - css.properties.border-image-repeat.stretch + + # baseline: high + # baseline_low_date: 2020-07-28 + # baseline_high_date: 2023-01-28 + # support: + # chrome: ≤83 + # chrome_android: "83" + # edge: "12" + # firefox: ≤72 + # firefox_android: "79" + # safari: ≤13.1 + # safari_ios: ≤13.4 + - css.properties.border-image-width.auto diff --git a/features/borders.yml b/features/borders.yml index 52749c99a96..e8504002aca 100644 --- a/features/borders.yml +++ b/features/borders.yml @@ -33,3 +33,4 @@ compat_features: - css.properties.border-top-style - css.properties.border-top-width - css.properties.border-width + - css.types.line-style diff --git a/features/borders.yml.dist b/features/borders.yml.dist index 9d4efa2ca3d..11f53080a4f 100644 --- a/features/borders.yml.dist +++ b/features/borders.yml.dist @@ -64,6 +64,7 @@ compat_features: # safari: "1" # safari_ios: "3" - css.properties.border-width + - css.types.line-style # baseline: high # baseline_low_date: 2015-07-29 diff --git a/features/box-shadow.yml b/features/box-shadow.yml new file mode 100644 index 00000000000..f252137b232 --- /dev/null +++ b/features/box-shadow.yml @@ -0,0 +1,10 @@ +name: box-shadow +description: The `box-shadow` CSS property applies shadow effects around an element's frame. This can create drop shadow and inner shadow effects. +spec: https://drafts.csswg.org/css-backgrounds-3/#box-shadow +group: background +caniuse: css-boxshadow +compat_features: + - css.properties.box-shadow + - css.properties.box-shadow.inset + - css.properties.box-shadow.multiple_shadows + - css.properties.box-shadow.spread_radius diff --git a/features/box-shadow.yml.dist b/features/box-shadow.yml.dist new file mode 100644 index 00000000000..cb0a9840312 --- /dev/null +++ b/features/box-shadow.yml.dist @@ -0,0 +1,20 @@ +# Generated from: box-shadow.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2015-07-29 + baseline_high_date: 2018-01-29 + support: + chrome: "10" + chrome_android: "18" + edge: "12" + firefox: "4" + firefox_android: "4" + safari: "5.1" + safari_ios: "5" +compat_features: + - css.properties.box-shadow + - css.properties.box-shadow.inset + - css.properties.box-shadow.multiple_shadows + - css.properties.box-shadow.spread_radius diff --git a/features/draft/spec/css-align-3.yml b/features/draft/spec/css-align-3.yml index 6dd1da16468..3b7a3ec5a1c 100644 --- a/features/draft/spec/css-align-3.yml +++ b/features/draft/spec/css-align-3.yml @@ -1,19 +1,11 @@ -draft_date: 2024-11-09 +draft_date: 2024-11-13 name: CSS Box Alignment Module Level 3 description: TODO spec: https://drafts.csswg.org/css-align-3/ compat_features: - - css.properties.align-content.block_context - - css.properties.align-self.position_absolute_context - - css.properties.gap - - css.properties.gap.multicol_context - - css.properties.justify-self - - css.properties.justify-self.position_absolute_context - css.properties.place-content - css.properties.place-items - css.properties.place-self - - css.properties.place-self.position_absolute_context - - css.properties.row-gap # The following features in the spec are already part of web-features: # - Flexbox: @@ -53,21 +45,26 @@ compat_features: # - css.properties.place-content.flex_context # - css.properties.place-items.flex_context # - css.properties.place-self.flex_context +# - align-content in block layouts: +# - css.properties.align-content.block_context # - Grid: # - css.properties.align-content.grid_context # - css.properties.align-items.grid_context # - css.properties.align-items.grid_context.start_end # - css.properties.align-self.grid_context # - css.properties.column-gap.grid_context +# - css.properties.gap # - css.properties.gap.grid_context # - css.properties.gap.grid_context.calc_values # - css.properties.gap.grid_context.percentage_values # - css.properties.justify-content.grid_context # - css.properties.justify-items.grid_context +# - css.properties.justify-self # - css.properties.justify-self.grid_context # - css.properties.place-content.grid_context # - css.properties.place-items.grid_context # - css.properties.place-self.grid_context +# - css.properties.row-gap # - css.properties.row-gap.grid_context # - Multi-column layout: # - css.properties.align-content.multicol_context @@ -75,6 +72,11 @@ compat_features: # - css.properties.column-gap.multicol_context # - css.properties.column-gap.multicol_context.calc_values # - css.properties.column-gap.multicol_context.percentage_values +# - css.properties.gap.multicol_context +# - Absolute positioning: +# - css.properties.align-self.position_absolute_context +# - css.properties.justify-self.position_absolute_context +# - css.properties.place-self.position_absolute_context # - Flexbox gap: # - css.properties.column-gap.flex_context # - css.properties.gap.flex_context diff --git a/features/draft/spec/css-align-3.yml.dist b/features/draft/spec/css-align-3.yml.dist index 2b8f41f7610..468568c1868 100644 --- a/features/draft/spec/css-align-3.yml.dist +++ b/features/draft/spec/css-align-3.yml.dist @@ -2,51 +2,18 @@ # Do not edit this file by hand. Edit the source file instead! status: - baseline: false + baseline: high + baseline_low_date: 2020-01-15 + baseline_high_date: 2022-07-15 support: - chrome: "123" - chrome_android: "123" - edge: "123" + chrome: "59" + chrome_android: "59" + edge: "79" + firefox: "45" + firefox_android: "45" + safari: "11" + safari_ios: "11" compat_features: - # baseline: high - # baseline_low_date: 2017-10-17 - # baseline_high_date: 2020-04-17 - # support: - # chrome: "47" - # chrome_android: "47" - # edge: "16" - # firefox: "52" - # firefox_android: "52" - # safari: "10.1" - # safari_ios: "10.3" - - css.properties.row-gap - - # baseline: high - # baseline_low_date: 2017-10-17 - # baseline_high_date: 2020-04-17 - # support: - # chrome: "57" - # chrome_android: "57" - # edge: "16" - # firefox: "45" - # firefox_android: "45" - # safari: "10.1" - # safari_ios: "10.3" - - css.properties.justify-self - - # baseline: high - # baseline_low_date: 2017-10-17 - # baseline_high_date: 2020-04-17 - # support: - # chrome: "57" - # chrome_android: "57" - # edge: "16" - # firefox: "52" - # firefox_android: "52" - # safari: "10.1" - # safari_ios: "10.3" - - css.properties.gap - # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -60,6 +27,7 @@ compat_features: # safari_ios: "9" - css.properties.place-content + # ⬇️ Same status as overall feature ⬇️ # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -73,37 +41,3 @@ compat_features: # safari_ios: "11" - css.properties.place-items - css.properties.place-self - - # baseline: high - # baseline_low_date: 2021-04-26 - # baseline_high_date: 2023-10-26 - # support: - # chrome: "66" - # chrome_android: "66" - # edge: "16" - # firefox: "61" - # firefox_android: "61" - # safari: "14.1" - # safari_ios: "14.5" - - css.properties.gap.multicol_context - - # baseline: low - # baseline_low_date: 2024-04-16 - # support: - # chrome: "123" - # chrome_android: "123" - # edge: "123" - # firefox: "125" - # firefox_android: "125" - # safari: "17.4" - # safari_ios: "17.4" - - css.properties.align-content.block_context - - # baseline: false - # support: - # chrome: "122" - # chrome_android: "122" - # edge: "122" - - css.properties.align-self.position_absolute_context - - css.properties.justify-self.position_absolute_context - - css.properties.place-self.position_absolute_context diff --git a/features/draft/spec/css-backgrounds-3.yml b/features/draft/spec/css-backgrounds-3.yml deleted file mode 100644 index bd1a3244afa..00000000000 --- a/features/draft/spec/css-backgrounds-3.yml +++ /dev/null @@ -1,145 +0,0 @@ -draft_date: 2024-10-21 -name: CSS Backgrounds and Borders Module Level 3 -description: TODO -spec: https://drafts.csswg.org/css-backgrounds-3/ -compat_features: - - css.properties.background-attachment.multiple_backgrounds - - css.properties.background-image - - css.properties.background-image.multiple_backgrounds - - css.properties.background-image.none - - css.properties.background-origin - - css.properties.background-origin.border-box - - css.properties.background-origin.content-box - - css.properties.background-origin.padding-box - - css.properties.background-position - - css.properties.background-position-x - - css.properties.background-position-x.side-relative_values - - css.properties.background-position-y - - css.properties.background-position-y.side-relative_values - - css.properties.background-position.bottom - - css.properties.background-position.center - - css.properties.background-position.left - - css.properties.background-position.multiple_backgrounds - - css.properties.background-position.right - - css.properties.background-position.side-relative_values - - css.properties.background-position.top - - css.properties.background.background-clip - - css.properties.background.background-origin - - css.properties.background.multiple_backgrounds - - css.properties.border-image-repeat.repeat - - css.properties.border-image-repeat.stretch - - css.properties.border-image-width.auto - - css.properties.box-shadow - - css.properties.box-shadow.inset - - css.properties.box-shadow.multiple_shadows - - css.properties.box-shadow.spread_radius - - css.types.line-style - -# The following features in the spec are already part of web-features: -# - background: -# - css.properties.background -# - SVG: -# - css.properties.background.SVG_image_as_background -# - css.properties.background-image.svg_images -# - background-size: -# - css.properties.background.background-size -# - css.properties.background-size -# - css.properties.background-size.auto -# - css.properties.background-size.contain -# - css.properties.background-size.cover -# - background-attachment: -# - css.properties.background-attachment -# - css.properties.background-attachment.fixed -# - css.properties.background-attachment.local -# - css.properties.background-attachment.scroll -# - background-clip: -# - css.properties.background-clip -# - css.properties.background-clip.border-box -# - css.properties.background-clip.content-box -# - css.properties.background-clip.padding-box -# - background-clip: border-area: -# - css.properties.background-clip.border-area -# - background-clip: text: -# - css.properties.background-clip.text -# - background-color: -# - css.properties.background-color -# - background-repeat: -# - css.properties.background-repeat -# - css.properties.background-repeat.2-value -# - css.properties.background-repeat.multiple_backgrounds -# - css.properties.background-repeat.no-repeat -# - css.properties.background-repeat.repeat -# - css.properties.background-repeat.repeat-x -# - css.properties.background-repeat.repeat-y -# - css.properties.background-repeat.round -# - css.properties.background-repeat.space -# - Borders: -# - css.properties.border -# - css.properties.border-bottom -# - css.properties.border-bottom-color -# - css.properties.border-bottom-style -# - css.properties.border-bottom-width -# - css.properties.border-color -# - css.properties.border-left -# - css.properties.border-left-color -# - css.properties.border-left-style -# - css.properties.border-left-width -# - css.properties.border-right -# - css.properties.border-right-color -# - css.properties.border-right-style -# - css.properties.border-right-width -# - css.properties.border-style -# - css.properties.border-style.dashed -# - css.properties.border-style.dotted -# - css.properties.border-style.double -# - css.properties.border-style.groove -# - css.properties.border-style.hidden -# - css.properties.border-style.inset -# - css.properties.border-style.none -# - css.properties.border-style.outset -# - css.properties.border-style.ridge -# - css.properties.border-style.solid -# - css.properties.border-top -# - css.properties.border-top-color -# - css.properties.border-top-style -# - css.properties.border-top-width -# - css.properties.border-width -# - border-radius: -# - css.properties.border-bottom-left-radius -# - css.properties.border-bottom-left-radius.elliptical_corners -# - css.properties.border-bottom-left-radius.percentages -# - css.properties.border-bottom-right-radius -# - css.properties.border-bottom-right-radius.elliptical_corners -# - css.properties.border-bottom-right-radius.percentages -# - css.properties.border-radius -# - css.properties.border-radius.4_values_for_4_corners -# - css.properties.border-radius.elliptical_borders -# - css.properties.border-radius.percentages -# - css.properties.border-top-left-radius -# - css.properties.border-top-left-radius.elliptical_corners -# - css.properties.border-top-left-radius.percentages -# - css.properties.border-top-right-radius -# - css.properties.border-top-right-radius.elliptical_corners -# - css.properties.border-top-right-radius.percentages -# - Border images: -# - css.properties.border-image -# - css.properties.border-image.fill -# - css.properties.border-image.gradient -# - css.properties.border-image.optional_border_image_slice -# - css.properties.border-image-outset -# - css.properties.border-image-repeat -# - css.properties.border-image-repeat.round -# - css.properties.border-image-repeat.space -# - css.properties.border-image-slice -# - css.properties.border-image-source -# - css.properties.border-image-width -# - Outlines: -# - css.properties.outline-style.dashed -# - css.properties.outline-style.dotted -# - css.properties.outline-style.double -# - css.properties.outline-style.groove -# - css.properties.outline-style.inset -# - css.properties.outline-style.none -# - css.properties.outline-style.outset -# - css.properties.outline-style.ridge -# - css.properties.outline-style.solid diff --git a/features/draft/spec/css-backgrounds-3.yml.dist b/features/draft/spec/css-backgrounds-3.yml.dist deleted file mode 100644 index ce1feed0656..00000000000 --- a/features/draft/spec/css-backgrounds-3.yml.dist +++ /dev/null @@ -1,204 +0,0 @@ -# Generated from: css-backgrounds-3.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - baseline: false - support: - firefox: ≤72 - firefox_android: "79" - safari: "15.4" - safari_ios: "15.4" -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: "1" - # safari_ios: "1" - - css.properties.background-image - - css.properties.background-image.none - - css.properties.background-position - - # 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: "1" - # safari_ios: "3" - - css.types.line-style - - # baseline: high - # baseline_low_date: 2015-07-29 - # baseline_high_date: 2018-01-29 - # support: - # chrome: "1" - # chrome_android: "18" - # edge: "12" - # firefox: "3.6" - # firefox_android: "4" - # safari: "1.3" - # safari_ios: "1" - - css.properties.background-image.multiple_backgrounds - - css.properties.background-position.multiple_backgrounds - - css.properties.background.multiple_backgrounds - - # baseline: high - # baseline_low_date: 2015-07-29 - # baseline_high_date: 2018-01-29 - # support: - # chrome: "1" - # chrome_android: "18" - # edge: "12" - # firefox: "3.6" - # firefox_android: "4" - # safari: "1.3" - # safari_ios: "3.2" - - css.properties.background-attachment.multiple_backgrounds - - # baseline: high - # baseline_low_date: 2015-07-29 - # baseline_high_date: 2018-01-29 - # support: - # chrome: "1" - # chrome_android: "18" - # edge: "12" - # firefox: "4" - # firefox_android: "4" - # safari: "3" - # safari_ios: "1" - - css.properties.background-origin - - css.properties.background-origin.content-box - - # baseline: high - # baseline_low_date: 2015-07-29 - # baseline_high_date: 2018-01-29 - # support: - # chrome: "1" - # chrome_android: "18" - # edge: "12" - # firefox: "4" - # firefox_android: "4" - # safari: "3" - # safari_ios: "2" - - css.properties.background-origin.border-box - - css.properties.background-origin.padding-box - - # baseline: high - # baseline_low_date: 2015-07-29 - # baseline_high_date: 2018-01-29 - # support: - # chrome: "10" - # chrome_android: "18" - # edge: "12" - # firefox: "4" - # firefox_android: "4" - # safari: "5.1" - # safari_ios: "5" - - css.properties.box-shadow - - css.properties.box-shadow.inset - - css.properties.box-shadow.multiple_shadows - - css.properties.box-shadow.spread_radius - - # baseline: high - # baseline_low_date: 2015-07-29 - # baseline_high_date: 2018-01-29 - # support: - # chrome: "21" - # chrome_android: "25" - # edge: "12" - # firefox: "22" - # firefox_android: "22" - # safari: "5.1" - # safari_ios: "4" - - css.properties.background.background-clip - - css.properties.background.background-origin - - # baseline: high - # baseline_low_date: 2015-07-29 - # baseline_high_date: 2018-01-29 - # support: - # chrome: "25" - # chrome_android: "25" - # edge: "12" - # firefox: "13" - # firefox_android: "14" - # safari: "7" - # safari_ios: "7" - - css.properties.background-position.side-relative_values - - # baseline: high - # baseline_low_date: 2016-09-20 - # baseline_high_date: 2019-03-20 - # support: - # chrome: "1" - # chrome_android: "18" - # edge: "12" - # firefox: "49" - # firefox_android: "49" - # safari: "1" - # safari_ios: "1" - - css.properties.background-position-x - - css.properties.background-position-y - - # baseline: high - # baseline_low_date: 2020-07-28 - # baseline_high_date: 2023-01-28 - # support: - # chrome: "15" - # chrome_android: "18" - # edge: "12" - # firefox: ≤72 - # firefox_android: "79" - # safari: "6" - # safari_ios: "9.3" - - css.properties.border-image-repeat.repeat - - css.properties.border-image-repeat.stretch - - # baseline: high - # baseline_low_date: 2020-07-28 - # baseline_high_date: 2023-01-28 - # support: - # chrome: ≤83 - # chrome_android: "83" - # edge: "12" - # firefox: ≤72 - # firefox_android: "79" - # 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_android: "83" - # edge: "83" - # firefox: ≤72 - # firefox_android: "79" - # safari: ≤13.1 - # safari_ios: ≤13.4 - - css.properties.background-position.bottom - - css.properties.background-position.center - - css.properties.background-position.left - - css.properties.background-position.right - - css.properties.background-position.top - - # baseline: false - # support: - # firefox: "49" - # firefox_android: "49" - # safari: "15.4" - # safari_ios: "15.4" - - css.properties.background-position-x.side-relative_values - - css.properties.background-position-y.side-relative_values diff --git a/features/draft/spec/css-fonts-5.yml b/features/draft/spec/css-fonts-5.yml index 12450814452..6d9e2aed880 100644 --- a/features/draft/spec/css-fonts-5.yml +++ b/features/draft/spec/css-fonts-5.yml @@ -1,40 +1,25 @@ -draft_date: 2024-10-23 +draft_date: 2024-11-13 name: CSS Fonts Module Level 5 description: TODO spec: https://drafts.csswg.org/css-fonts-5/ compat_features: - - css.at-rules.font-face.OpenType_CBDT_CBLC - - css.at-rules.font-face.OpenType_COLRv0 - - css.at-rules.font-face.OpenType_SBIX - - css.at-rules.font-face.src.drop_invalid_item - - css.at-rules.font-face.src.format_keyword - - css.at-rules.font-face.src.tech_keyword - - css.properties.font-synthesis.position - - css.properties.font-synthesis.small-caps - - css.properties.font-synthesis.style - - css.properties.font-synthesis.weight - css.properties.font-variant-emoji.emoji - css.properties.font-variant-emoji.normal - css.properties.font-variant-emoji.text - css.properties.font-variant-emoji.unicode - - css.properties.font-variant.css_fonts_shorthand - - css.properties.font-variant.greek_accented_characters - - css.properties.font-variant.uppercase_eszett - - css.properties.font.caption - - css.properties.font.font_stretch_support - - css.properties.font.icon - - css.properties.font.menu - - css.properties.font.message-box - - css.properties.font.small-caption - - css.properties.font.status-bar # The following features in the spec are already part of web-features: # - @font-face: # - api.CSSFontFaceRule # - api.CSSFontFaceRule.style # - css.at-rules.font-face +# - css.at-rules.font-face.OpenType_CBDT_CBLC +# - css.at-rules.font-face.OpenType_SBIX # - css.at-rules.font-face.font-family # - css.at-rules.font-face.src +# - css.at-rules.font-face.src.drop_invalid_item +# - css.at-rules.font-face.src.format_keyword +# - css.at-rules.font-face.src.tech_keyword # - css.at-rules.font-face.unicode-range # - font-variant-alternates: # - api.CSSFontFeatureValuesMap @@ -88,6 +73,8 @@ compat_features: # - css.properties.font-palette.dark # - css.properties.font-palette.light # - css.properties.font-palette.normal +# - COLRv0: +# - css.at-rules.font-face.OpenType_COLRv0 # - COLRv1: # - css.at-rules.font-face.OpenType_COLRv1 # - SVG: @@ -104,6 +91,7 @@ compat_features: # - css.properties.font-feature-settings.normal # - font-stretch: # - css.at-rules.font-face.font-stretch +# - css.properties.font.font_stretch_support # - css.properties.font-stretch # - css.properties.font-stretch.percentage # - svg.global_attributes.font-stretch @@ -117,12 +105,15 @@ compat_features: # - font-variant: # - css.at-rules.font-face.font-variant # - css.properties.font-variant +# - css.properties.font-variant.css_fonts_shorthand +# - css.properties.font-variant.greek_accented_characters # - css.properties.font-variant.historical-forms # - css.properties.font-variant.none # - css.properties.font-variant.normal # - css.properties.font-variant.sub # - css.properties.font-variant.super # - css.properties.font-variant.turkic_is +# - css.properties.font-variant.uppercase_eszett # - svg.global_attributes.font-variant # - font-variation-settings: # - css.at-rules.font-face.font-variation-settings @@ -145,6 +136,12 @@ compat_features: # - svg.global_attributes.font-size-adjust # - Font shorthand: # - css.properties.font +# - css.properties.font.caption +# - css.properties.font.icon +# - css.properties.font.menu +# - css.properties.font.message-box +# - css.properties.font.small-caption +# - css.properties.font.status-bar # - font-family: # - css.properties.font-family # - svg.global_attributes.font-family @@ -172,6 +169,10 @@ compat_features: # - css.properties.font-size.math # - font-synthesis: # - css.properties.font-synthesis +# - css.properties.font-synthesis.position +# - css.properties.font-synthesis.small-caps +# - css.properties.font-synthesis.style +# - css.properties.font-synthesis.weight # - font-synthesis-position: # - css.properties.font-synthesis-position # - css.properties.font-synthesis-position.auto diff --git a/features/draft/spec/css-fonts-5.yml.dist b/features/draft/spec/css-fonts-5.yml.dist index b1e453edfe9..9ada2ce6672 100644 --- a/features/draft/spec/css-fonts-5.yml.dist +++ b/features/draft/spec/css-fonts-5.yml.dist @@ -3,151 +3,10 @@ status: baseline: false - support: {} + support: + chrome: "131" 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: "1" - # safari_ios: "1" - - css.properties.font.caption - - css.properties.font.icon - - css.properties.font.menu - - css.properties.font.message-box - - css.properties.font.small-caption - - css.properties.font.status-bar - - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "52" - # chrome_android: "52" - # edge: "79" - # firefox: "34" - # firefox_android: "34" - # safari: "9.1" - # safari_ios: "9.3" - - css.properties.font-variant.css_fonts_shorthand - - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "53" - # chrome_android: "53" - # edge: "79" - # firefox: "31" - # firefox_android: "31" - # safari: "11.1" - # safari_ios: "11.3" - - css.at-rules.font-face.OpenType_COLRv0 - - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "60" - # chrome_android: "60" - # edge: "79" - # firefox: "43" - # firefox_android: "43" - # safari: "11" - # safari_ios: "11" - - css.properties.font.font_stretch_support - - # baseline: high - # baseline_low_date: 2022-01-06 - # baseline_high_date: 2024-07-06 - # support: - # chrome: "97" - # chrome_android: "97" - # edge: "97" - # firefox: "93" - # firefox_android: "93" - # safari: "10.1" - # safari_ios: "10.3" - - css.properties.font-synthesis.small-caps - - # baseline: high - # baseline_low_date: 2022-01-06 - # baseline_high_date: 2024-07-06 - # support: - # chrome: "97" - # chrome_android: "97" - # edge: "97" - # firefox: ≤72 - # firefox_android: "79" - # safari: "10.1" - # safari_ios: "10.3" - - css.properties.font-synthesis.style - - css.properties.font-synthesis.weight - - # baseline: low - # baseline_low_date: 2023-09-18 - # support: - # chrome: "108" - # chrome_android: "108" - # edge: "108" - # firefox: "107" - # firefox_android: "107" - # safari: "17" - # safari_ios: "17" - - css.at-rules.font-face.src.tech_keyword - - # baseline: false - # support: - # chrome: "66" - # chrome_android: "66" - # edge: "79" - # safari: "9.1" - # safari_ios: "9.3" - - css.at-rules.font-face.OpenType_SBIX - - # baseline: false - # support: - # chrome: "108" - # chrome_android: "108" - # edge: "108" - # safari: "4" - # safari_ios: "5" - - css.at-rules.font-face.src.format_keyword - - # baseline: false - # support: - # chrome: "66" - # chrome_android: "66" - # edge: "79" - - css.at-rules.font-face.OpenType_CBDT_CBLC - - # baseline: false - # support: - # firefox: "109" - # firefox_android: "109" - - css.at-rules.font-face.src.drop_invalid_item - - # baseline: false - # support: - # firefox: "118" - # firefox_android: "118" - - css.properties.font-synthesis.position - - # baseline: false - # support: - # chrome: "131" - css.properties.font-variant-emoji.emoji - css.properties.font-variant-emoji.normal - css.properties.font-variant-emoji.text - css.properties.font-variant-emoji.unicode - - # ⬇️ Same status as overall feature ⬇️ - # baseline: false - # support: {} - - css.properties.font-variant.greek_accented_characters - - css.properties.font-variant.uppercase_eszett diff --git a/features/draft/spec/css-grid-2.yml b/features/draft/spec/css-grid-2.yml deleted file mode 100644 index be99a69d7c7..00000000000 --- a/features/draft/spec/css-grid-2.yml +++ /dev/null @@ -1,53 +0,0 @@ -draft_date: 2024-10-07 -name: CSS Grid Layout Module Level 2 -description: TODO -spec: https://drafts.csswg.org/css-grid-2/ -compat_features: - - css.properties.column-gap - - css.properties.column-gap.multicol_context - -# The following features in the spec are already part of web-features: -# - Grid: -# - css.properties.align-content.grid_context -# - css.properties.column-gap.grid_context -# - css.properties.grid -# - css.properties.grid-area -# - css.properties.grid-auto-columns -# - css.properties.grid-auto-flow -# - css.properties.grid-auto-flow.column -# - css.properties.grid-auto-flow.dense -# - css.properties.grid-auto-flow.row -# - css.properties.grid-auto-rows -# - css.properties.grid-column -# - css.properties.grid-column-end -# - css.properties.grid-column-start -# - css.properties.grid-row -# - css.properties.grid-row-end -# - css.properties.grid-row-start -# - css.properties.grid-template -# - css.properties.grid-template.none -# - css.properties.grid-template-areas -# - css.properties.grid-template-areas.none -# - css.properties.grid-template-columns -# - css.properties.grid-template-columns.auto -# - css.properties.grid-template-columns.max-content -# - css.properties.grid-template-columns.min-content -# - css.properties.grid-template-columns.minmax -# - css.properties.grid-template-columns.none -# - css.properties.grid-template-columns.repeat -# - css.properties.grid-template-rows -# - css.properties.grid-template-rows.auto -# - css.properties.grid-template-rows.max-content -# - css.properties.grid-template-rows.min-content -# - css.properties.grid-template-rows.minmax -# - css.properties.grid-template-rows.none -# - css.properties.grid-template-rows.repeat -# - css.types.flex -# - Flexbox gap: -# - css.properties.column-gap.flex_context -# - Masonry: -# - css.properties.grid-template-columns.masonry -# - css.properties.grid-template-rows.masonry -# - Subgrid: -# - css.properties.grid-template-columns.subgrid -# - css.properties.grid-template-rows.subgrid diff --git a/features/draft/spec/css-grid-2.yml.dist b/features/draft/spec/css-grid-2.yml.dist deleted file mode 100644 index 988761c3b66..00000000000 --- a/features/draft/spec/css-grid-2.yml.dist +++ /dev/null @@ -1,42 +0,0 @@ -# Generated from: css-grid-2.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - baseline: high - baseline_low_date: 2017-03-07 - baseline_high_date: 2019-09-07 - support: - chrome: "50" - chrome_android: "50" - edge: "12" - firefox: "52" - firefox_android: "52" - safari: "10" - safari_ios: "10" -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.5" - # firefox_android: "4" - # safari: "3" - # safari_ios: "2" - - css.properties.column-gap - - # ⬇️ Same status as overall feature ⬇️ - # baseline: high - # baseline_low_date: 2017-03-07 - # baseline_high_date: 2019-09-07 - # support: - # chrome: "50" - # chrome_android: "50" - # edge: "12" - # firefox: "52" - # firefox_android: "52" - # safari: "10" - # safari_ios: "10" - - css.properties.column-gap.multicol_context diff --git a/features/draft/spec/css-sizing-4.yml b/features/draft/spec/css-sizing-4.yml deleted file mode 100644 index 264b8ffac5d..00000000000 --- a/features/draft/spec/css-sizing-4.yml +++ /dev/null @@ -1,111 +0,0 @@ -draft_date: 2024-10-30 -name: CSS Box Sizing Module Level 4 -description: TODO -spec: https://drafts.csswg.org/css-sizing-4/ -compat_features: - - css.properties.height.stretch - - css.properties.max-height.stretch - - css.properties.max-width.stretch - - css.properties.min-height.stretch - - css.properties.min-width.stretch - - css.properties.width.stretch - -# The following features in the spec are already part of web-features: -# - aspect-ratio: -# - css.properties.aspect-ratio -# - css.properties.aspect-ratio.auto -# - Logical properties: -# - css.properties.block-size -# - css.properties.block-size.fit-content -# - css.properties.block-size.max-content -# - css.properties.block-size.min-content -# - css.properties.inline-size -# - css.properties.inline-size.fit-content -# - css.properties.inline-size.max-content -# - css.properties.inline-size.min-content -# - css.properties.max-block-size -# - css.properties.max-block-size.fit-content -# - css.properties.max-block-size.max-content -# - css.properties.max-block-size.min-content -# - css.properties.max-inline-size -# - css.properties.max-inline-size.fit-content -# - css.properties.max-inline-size.max-content -# - css.properties.max-inline-size.min-content -# - css.properties.min-block-size -# - css.properties.min-block-size.fit-content -# - css.properties.min-block-size.max-content -# - css.properties.min-block-size.min-content -# - css.properties.min-inline-size -# - css.properties.min-inline-size.fit-content -# - css.properties.min-inline-size.max-content -# - css.properties.min-inline-size.min-content -# - fit-content(): -# - css.properties.block-size.fit-content_function -# - css.properties.height.fit-content_function -# - css.properties.inline-size.fit-content_function -# - css.properties.max-block-size.fit-content_function -# - css.properties.max-height.fit-content_function -# - css.properties.max-inline-size.fit-content_function -# - css.properties.max-width.fit-content_function -# - css.properties.min-block-size.fit-content_function -# - css.properties.min-height.fit-content_function -# - css.properties.min-inline-size.fit-content_function -# - css.properties.min-width.fit-content_function -# - css.properties.width.fit-content_function -# - box-sizing: -# - css.properties.box-sizing -# - css.properties.box-sizing.border-box -# - css.properties.box-sizing.content-box -# - Multi-column layout: -# - css.properties.column-width -# - css.properties.column-width.auto -# - contain-intrinsic-size: -# - css.properties.contain-intrinsic-block-size -# - css.properties.contain-intrinsic-block-size.none -# - css.properties.contain-intrinsic-height -# - css.properties.contain-intrinsic-height.none -# - css.properties.contain-intrinsic-inline-size -# - css.properties.contain-intrinsic-inline-size.none -# - css.properties.contain-intrinsic-size -# - css.properties.contain-intrinsic-size.auto_none -# - css.properties.contain-intrinsic-size.none -# - css.properties.contain-intrinsic-width -# - css.properties.contain-intrinsic-width.none -# - Grid: -# - css.properties.grid-template-columns.fit-content -# - css.properties.grid-template-rows.fit-content -# - Width and height: -# - css.properties.height -# - css.properties.height.auto -# - css.properties.width -# - css.properties.width.auto -# - css.properties.width.is_animatable -# - fit-content: -# - css.properties.height.fit-content -# - css.properties.max-height.fit-content -# - css.properties.max-width.fit-content -# - css.properties.min-height.fit-content -# - css.properties.min-width.fit-content -# - css.properties.width.fit-content -# - min-content and max-content: -# - css.properties.height.max-content -# - css.properties.height.min-content -# - css.properties.max-height.max-content -# - css.properties.max-height.min-content -# - css.properties.max-width.max-content -# - css.properties.max-width.min-content -# - css.properties.min-height.max-content -# - css.properties.min-height.min-content -# - css.properties.min-width.max-content -# - css.properties.min-width.min-content -# - css.properties.width.max-content -# - css.properties.width.min-content -# - Min and max width and height: -# - css.properties.max-height -# - css.properties.max-height.none -# - css.properties.max-width -# - css.properties.max-width.none -# - css.properties.min-height -# - css.properties.min-height.auto -# - css.properties.min-width -# - css.properties.min-width.auto diff --git a/features/draft/spec/css-sizing-4.yml.dist b/features/draft/spec/css-sizing-4.yml.dist deleted file mode 100644 index e120350d1a5..00000000000 --- a/features/draft/spec/css-sizing-4.yml.dist +++ /dev/null @@ -1,13 +0,0 @@ -# Generated from: css-sizing-4.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - baseline: false - support: {} -compat_features: - - css.properties.height.stretch - - css.properties.max-height.stretch - - css.properties.max-width.stretch - - css.properties.min-height.stretch - - css.properties.min-width.stretch - - css.properties.width.stretch diff --git a/features/draft/spec/css-viewport-1.yml b/features/draft/spec/css-viewport-1.yml deleted file mode 100644 index 6b65de6293a..00000000000 --- a/features/draft/spec/css-viewport-1.yml +++ /dev/null @@ -1,10 +0,0 @@ -draft_date: 2024-10-17 -name: CSS Viewport Module Level 1 -description: TODO -spec: https://drafts.csswg.org/css-viewport/ -compat_features: - - css.properties.zoom.reset - -# The following features in the spec are already part of web-features: -# - zoom: -# - css.properties.zoom diff --git a/features/draft/spec/css-viewport-1.yml.dist b/features/draft/spec/css-viewport-1.yml.dist deleted file mode 100644 index d096a1a8911..00000000000 --- a/features/draft/spec/css-viewport-1.yml.dist +++ /dev/null @@ -1,10 +0,0 @@ -# Generated from: css-viewport-1.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - baseline: false - support: - safari: "3.1" - safari_ios: "3" -compat_features: - - css.properties.zoom.reset diff --git a/features/draft/spec/fetch.yml b/features/draft/spec/fetch.yml index 3604d8e5f75..c6e56cd6457 100644 --- a/features/draft/spec/fetch.yml +++ b/features/draft/spec/fetch.yml @@ -1,4 +1,4 @@ -draft_date: 2024-10-28 +draft_date: 2024-11-13 name: Fetch Standard description: TODO spec: https://fetch.spec.whatwg.org/ @@ -21,7 +21,6 @@ compat_features: - http.headers.Access-Control-Request-Method - http.headers.Authorization.authorization_removed_cross_origin - http.headers.Cross-Origin-Resource-Policy - - http.headers.Origin - http.headers.Sec-Purpose - http.headers.Sec-Purpose.prefetch - http.headers.Sec-Purpose.speculationrules @@ -109,3 +108,5 @@ compat_features: # - Abortable fetch: # - api.Request.signal # - api.fetch.init_signal_parameter +# - HTTP/1.1: +# - http.headers.Origin diff --git a/features/draft/spec/fetch.yml.dist b/features/draft/spec/fetch.yml.dist index b5962150050..9431f5bdb05 100644 --- a/features/draft/spec/fetch.yml.dist +++ b/features/draft/spec/fetch.yml.dist @@ -51,19 +51,6 @@ compat_features: # safari_ios: "11" - http.headers.X-Content-Type-Options - # baseline: high - # baseline_low_date: 2020-07-28 - # baseline_high_date: 2023-01-28 - # support: - # chrome: "1" - # chrome_android: "18" - # edge: "12" - # firefox: "70" - # firefox_android: "79" - # safari: "1" - # safari_ios: "1" - - http.headers.Origin - # baseline: high # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 diff --git a/features/draft/spec/filter-effects-1.yml b/features/draft/spec/filter-effects-1.yml deleted file mode 100644 index 0ff8bcfebc7..00000000000 --- a/features/draft/spec/filter-effects-1.yml +++ /dev/null @@ -1,353 +0,0 @@ -draft_date: 2024-10-21 -name: Filter Effects Module Level 1 -description: TODO -spec: https://drafts.fxtf.org/filter-effects-1/ -compat_features: - - css.properties.color-interpolation-filters - - css.properties.color-interpolation-filters.auto - - css.properties.color-interpolation-filters.linearRGB - - css.properties.color-interpolation-filters.sRGB - - css.properties.filter - - css.properties.flood-color - - css.properties.flood-opacity - - css.properties.lighting-color - - css.types.filter-function - - css.types.filter-function.blur - - css.types.filter-function.brightness - - css.types.filter-function.contrast - - css.types.filter-function.drop-shadow - - css.types.filter-function.grayscale - - css.types.filter-function.hue-rotate - - css.types.filter-function.invert - - css.types.filter-function.opacity - - css.types.filter-function.saturate - - css.types.filter-function.sepia - -# The following features in the spec are already part of web-features: -# - SVG: -# - api.SVGComponentTransferFunctionElement -# - api.SVGComponentTransferFunctionElement.amplitude -# - api.SVGComponentTransferFunctionElement.exponent -# - api.SVGComponentTransferFunctionElement.intercept -# - api.SVGComponentTransferFunctionElement.offset -# - api.SVGComponentTransferFunctionElement.slope -# - api.SVGComponentTransferFunctionElement.tableValues -# - api.SVGComponentTransferFunctionElement.type -# - svg.global_attributes.color-interpolation-filters -# - svg.global_attributes.lighting-color -# - SVG filters: -# - api.SVGFEBlendElement -# - api.SVGFEBlendElement.height -# - api.SVGFEBlendElement.in1 -# - api.SVGFEBlendElement.in2 -# - api.SVGFEBlendElement.mode -# - api.SVGFEBlendElement.result -# - api.SVGFEBlendElement.width -# - api.SVGFEBlendElement.x -# - api.SVGFEBlendElement.y -# - api.SVGFEColorMatrixElement -# - api.SVGFEColorMatrixElement.height -# - api.SVGFEColorMatrixElement.in1 -# - api.SVGFEColorMatrixElement.result -# - api.SVGFEColorMatrixElement.type -# - api.SVGFEColorMatrixElement.values -# - api.SVGFEColorMatrixElement.width -# - api.SVGFEColorMatrixElement.x -# - api.SVGFEColorMatrixElement.y -# - api.SVGFEComponentTransferElement -# - api.SVGFEComponentTransferElement.height -# - api.SVGFEComponentTransferElement.in1 -# - api.SVGFEComponentTransferElement.result -# - api.SVGFEComponentTransferElement.width -# - api.SVGFEComponentTransferElement.x -# - api.SVGFEComponentTransferElement.y -# - api.SVGFECompositeElement -# - api.SVGFECompositeElement.height -# - api.SVGFECompositeElement.in1 -# - api.SVGFECompositeElement.in2 -# - api.SVGFECompositeElement.k1 -# - api.SVGFECompositeElement.k2 -# - api.SVGFECompositeElement.k3 -# - api.SVGFECompositeElement.k4 -# - api.SVGFECompositeElement.operator -# - api.SVGFECompositeElement.result -# - api.SVGFECompositeElement.width -# - api.SVGFECompositeElement.x -# - api.SVGFECompositeElement.y -# - api.SVGFEConvolveMatrixElement -# - api.SVGFEConvolveMatrixElement.bias -# - api.SVGFEConvolveMatrixElement.divisor -# - api.SVGFEConvolveMatrixElement.edgeMode -# - api.SVGFEConvolveMatrixElement.height -# - api.SVGFEConvolveMatrixElement.in1 -# - api.SVGFEConvolveMatrixElement.kernelMatrix -# - api.SVGFEConvolveMatrixElement.kernelUnitLengthX -# - api.SVGFEConvolveMatrixElement.kernelUnitLengthY -# - api.SVGFEConvolveMatrixElement.orderX -# - api.SVGFEConvolveMatrixElement.orderY -# - api.SVGFEConvolveMatrixElement.preserveAlpha -# - api.SVGFEConvolveMatrixElement.result -# - api.SVGFEConvolveMatrixElement.targetX -# - api.SVGFEConvolveMatrixElement.targetY -# - api.SVGFEConvolveMatrixElement.width -# - api.SVGFEConvolveMatrixElement.x -# - api.SVGFEConvolveMatrixElement.y -# - api.SVGFEDiffuseLightingElement -# - api.SVGFEDiffuseLightingElement.diffuseConstant -# - api.SVGFEDiffuseLightingElement.height -# - api.SVGFEDiffuseLightingElement.in1 -# - api.SVGFEDiffuseLightingElement.kernelUnitLengthX -# - api.SVGFEDiffuseLightingElement.kernelUnitLengthY -# - api.SVGFEDiffuseLightingElement.result -# - api.SVGFEDiffuseLightingElement.surfaceScale -# - api.SVGFEDiffuseLightingElement.width -# - api.SVGFEDiffuseLightingElement.x -# - api.SVGFEDiffuseLightingElement.y -# - api.SVGFEDisplacementMapElement -# - api.SVGFEDisplacementMapElement.height -# - api.SVGFEDisplacementMapElement.in1 -# - api.SVGFEDisplacementMapElement.in2 -# - api.SVGFEDisplacementMapElement.result -# - api.SVGFEDisplacementMapElement.scale -# - api.SVGFEDisplacementMapElement.width -# - api.SVGFEDisplacementMapElement.x -# - api.SVGFEDisplacementMapElement.xChannelSelector -# - api.SVGFEDisplacementMapElement.y -# - api.SVGFEDisplacementMapElement.yChannelSelector -# - api.SVGFEDistantLightElement -# - api.SVGFEDistantLightElement.azimuth -# - api.SVGFEDistantLightElement.elevation -# - api.SVGFEDropShadowElement -# - api.SVGFEDropShadowElement.dx -# - api.SVGFEDropShadowElement.dy -# - api.SVGFEDropShadowElement.height -# - api.SVGFEDropShadowElement.in1 -# - api.SVGFEDropShadowElement.result -# - api.SVGFEDropShadowElement.setStdDeviation -# - api.SVGFEDropShadowElement.stdDeviationX -# - api.SVGFEDropShadowElement.stdDeviationY -# - api.SVGFEDropShadowElement.width -# - api.SVGFEDropShadowElement.x -# - api.SVGFEDropShadowElement.y -# - api.SVGFEFloodElement -# - api.SVGFEFloodElement.height -# - api.SVGFEFloodElement.result -# - api.SVGFEFloodElement.width -# - api.SVGFEFloodElement.x -# - api.SVGFEFloodElement.y -# - api.SVGFEFuncAElement -# - api.SVGFEFuncBElement -# - api.SVGFEFuncGElement -# - api.SVGFEFuncRElement -# - api.SVGFEGaussianBlurElement -# - api.SVGFEGaussianBlurElement.edgeMode -# - api.SVGFEGaussianBlurElement.height -# - api.SVGFEGaussianBlurElement.in1 -# - api.SVGFEGaussianBlurElement.result -# - api.SVGFEGaussianBlurElement.setStdDeviation -# - api.SVGFEGaussianBlurElement.stdDeviationX -# - api.SVGFEGaussianBlurElement.stdDeviationY -# - api.SVGFEGaussianBlurElement.width -# - api.SVGFEGaussianBlurElement.x -# - api.SVGFEGaussianBlurElement.y -# - api.SVGFEImageElement -# - api.SVGFEImageElement.crossOrigin -# - api.SVGFEImageElement.height -# - api.SVGFEImageElement.preserveAspectRatio -# - api.SVGFEImageElement.result -# - api.SVGFEImageElement.width -# - api.SVGFEImageElement.x -# - api.SVGFEImageElement.y -# - api.SVGFEMergeElement -# - api.SVGFEMergeElement.height -# - api.SVGFEMergeElement.result -# - api.SVGFEMergeElement.width -# - api.SVGFEMergeElement.x -# - api.SVGFEMergeElement.y -# - api.SVGFEMergeNodeElement -# - api.SVGFEMergeNodeElement.in1 -# - api.SVGFEMorphologyElement -# - api.SVGFEMorphologyElement.height -# - api.SVGFEMorphologyElement.in1 -# - api.SVGFEMorphologyElement.operator -# - api.SVGFEMorphologyElement.radiusX -# - api.SVGFEMorphologyElement.radiusY -# - api.SVGFEMorphologyElement.result -# - api.SVGFEMorphologyElement.width -# - api.SVGFEMorphologyElement.x -# - api.SVGFEMorphologyElement.y -# - api.SVGFEOffsetElement -# - api.SVGFEOffsetElement.dx -# - api.SVGFEOffsetElement.dy -# - api.SVGFEOffsetElement.height -# - api.SVGFEOffsetElement.in1 -# - api.SVGFEOffsetElement.result -# - api.SVGFEOffsetElement.width -# - api.SVGFEOffsetElement.x -# - api.SVGFEOffsetElement.y -# - api.SVGFEPointLightElement -# - api.SVGFEPointLightElement.x -# - api.SVGFEPointLightElement.y -# - api.SVGFEPointLightElement.z -# - api.SVGFESpecularLightingElement -# - api.SVGFESpecularLightingElement.height -# - api.SVGFESpecularLightingElement.in1 -# - api.SVGFESpecularLightingElement.kernelUnitLengthX -# - api.SVGFESpecularLightingElement.kernelUnitLengthY -# - api.SVGFESpecularLightingElement.result -# - api.SVGFESpecularLightingElement.specularConstant -# - api.SVGFESpecularLightingElement.specularExponent -# - api.SVGFESpecularLightingElement.surfaceScale -# - api.SVGFESpecularLightingElement.width -# - api.SVGFESpecularLightingElement.x -# - api.SVGFESpecularLightingElement.y -# - api.SVGFESpotLightElement -# - api.SVGFESpotLightElement.limitingConeAngle -# - api.SVGFESpotLightElement.pointsAtX -# - api.SVGFESpotLightElement.pointsAtY -# - api.SVGFESpotLightElement.pointsAtZ -# - api.SVGFESpotLightElement.specularExponent -# - api.SVGFESpotLightElement.x -# - api.SVGFESpotLightElement.y -# - api.SVGFESpotLightElement.z -# - api.SVGFETileElement -# - api.SVGFETileElement.height -# - api.SVGFETileElement.in1 -# - api.SVGFETileElement.result -# - api.SVGFETileElement.width -# - api.SVGFETileElement.x -# - api.SVGFETileElement.y -# - api.SVGFETurbulenceElement -# - api.SVGFETurbulenceElement.baseFrequencyX -# - api.SVGFETurbulenceElement.baseFrequencyY -# - api.SVGFETurbulenceElement.height -# - api.SVGFETurbulenceElement.numOctaves -# - api.SVGFETurbulenceElement.result -# - api.SVGFETurbulenceElement.seed -# - api.SVGFETurbulenceElement.stitchTiles -# - api.SVGFETurbulenceElement.type -# - api.SVGFETurbulenceElement.width -# - api.SVGFETurbulenceElement.x -# - api.SVGFETurbulenceElement.y -# - api.SVGFilterElement -# - api.SVGFilterElement.filterUnits -# - api.SVGFilterElement.height -# - api.SVGFilterElement.primitiveUnits -# - api.SVGFilterElement.width -# - api.SVGFilterElement.x -# - api.SVGFilterElement.y -# - css.properties.filter.svg_elements -# - svg.elements.feBlend -# - svg.elements.feBlend.in -# - svg.elements.feBlend.in2 -# - svg.elements.feBlend.mode -# - svg.elements.feColorMatrix -# - svg.elements.feColorMatrix.in -# - svg.elements.feColorMatrix.type -# - svg.elements.feColorMatrix.values -# - svg.elements.feComponentTransfer -# - svg.elements.feComponentTransfer.in -# - svg.elements.feComposite -# - svg.elements.feComposite.in -# - svg.elements.feComposite.in2 -# - svg.elements.feComposite.k1 -# - svg.elements.feComposite.k2 -# - svg.elements.feComposite.k3 -# - svg.elements.feComposite.k4 -# - svg.elements.feComposite.operator -# - svg.elements.feComposite.operator.lighter_value -# - svg.elements.feConvolveMatrix -# - svg.elements.feConvolveMatrix.bias -# - svg.elements.feConvolveMatrix.divisor -# - svg.elements.feConvolveMatrix.edgeMode -# - svg.elements.feConvolveMatrix.in -# - svg.elements.feConvolveMatrix.kernelMatrix -# - svg.elements.feConvolveMatrix.kernelUnitLength -# - svg.elements.feConvolveMatrix.order -# - svg.elements.feConvolveMatrix.preserveAlpha -# - svg.elements.feConvolveMatrix.targetX -# - svg.elements.feConvolveMatrix.targetY -# - svg.elements.feDiffuseLighting -# - svg.elements.feDiffuseLighting.diffuseConstant -# - svg.elements.feDiffuseLighting.in -# - svg.elements.feDiffuseLighting.kernelUnitLength -# - svg.elements.feDiffuseLighting.surfaceScale -# - svg.elements.feDisplacementMap -# - svg.elements.feDisplacementMap.in -# - svg.elements.feDisplacementMap.in2 -# - svg.elements.feDisplacementMap.scale -# - svg.elements.feDisplacementMap.xChannelSelector -# - svg.elements.feDisplacementMap.yChannelSelector -# - svg.elements.feDistantLight -# - svg.elements.feDistantLight.azimuth -# - svg.elements.feDistantLight.elevation -# - svg.elements.feDropShadow -# - svg.elements.feDropShadow.dx -# - svg.elements.feDropShadow.dy -# - svg.elements.feDropShadow.in -# - svg.elements.feDropShadow.stdDeviation -# - svg.elements.feFlood -# - svg.elements.feFlood.flood-color -# - svg.elements.feFlood.flood-opacity -# - svg.elements.feFuncA -# - svg.elements.feFuncB -# - svg.elements.feFuncG -# - svg.elements.feFuncR -# - svg.elements.feGaussianBlur -# - svg.elements.feGaussianBlur.edgeMode -# - svg.elements.feGaussianBlur.in -# - svg.elements.feGaussianBlur.stdDeviation -# - svg.elements.feImage -# - svg.elements.feImage.crossorigin -# - svg.elements.feImage.href -# - svg.elements.feImage.preserveAspectRatio -# - svg.elements.feMerge -# - svg.elements.feMergeNode -# - svg.elements.feMergeNode.in -# - svg.elements.feMorphology -# - svg.elements.feMorphology.in -# - svg.elements.feMorphology.operator -# - svg.elements.feMorphology.radius -# - svg.elements.feOffset -# - svg.elements.feOffset.dx -# - svg.elements.feOffset.dy -# - svg.elements.feOffset.in -# - svg.elements.fePointLight -# - svg.elements.fePointLight.x -# - svg.elements.fePointLight.y -# - svg.elements.fePointLight.z -# - svg.elements.feSpecularLighting -# - svg.elements.feSpecularLighting.in -# - svg.elements.feSpecularLighting.kernelUnitLength -# - svg.elements.feSpecularLighting.specularConstant -# - svg.elements.feSpecularLighting.specularExponent -# - svg.elements.feSpecularLighting.surfaceScale -# - svg.elements.feSpotLight -# - svg.elements.feSpotLight.limitingConeAngle -# - svg.elements.feSpotLight.pointsAtX -# - svg.elements.feSpotLight.pointsAtY -# - svg.elements.feSpotLight.pointsAtZ -# - svg.elements.feSpotLight.specularExponent -# - svg.elements.feSpotLight.x -# - svg.elements.feSpotLight.y -# - svg.elements.feSpotLight.z -# - svg.elements.feTile -# - svg.elements.feTile.in -# - svg.elements.feTurbulence -# - svg.elements.feTurbulence.baseFrequency -# - svg.elements.feTurbulence.numOctaves -# - svg.elements.feTurbulence.seed -# - svg.elements.feTurbulence.stitchTiles -# - svg.elements.feTurbulence.type -# - svg.elements.filter -# - svg.elements.filter.filterUnits -# - svg.elements.filter.height -# - svg.elements.filter.primitiveUnits -# - svg.elements.filter.width -# - svg.elements.filter.x -# - svg.elements.filter.y -# - svg.global_attributes.filter -# - svg.global_attributes.flood-color -# - svg.global_attributes.flood-opacity -# - backdrop-filter: -# - css.properties.backdrop-filter diff --git a/features/draft/spec/filter-effects-1.yml.dist b/features/draft/spec/filter-effects-1.yml.dist deleted file mode 100644 index 0be1abe1629..00000000000 --- a/features/draft/spec/filter-effects-1.yml.dist +++ /dev/null @@ -1,95 +0,0 @@ -# Generated from: filter-effects-1.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - baseline: high - baseline_low_date: 2020-07-28 - baseline_high_date: 2023-01-28 - support: - chrome: ≤83 - chrome_android: "83" - edge: "83" - firefox: ≤72 - firefox_android: "79" - safari: ≤13.1 - safari_ios: ≤13.4 -compat_features: - # baseline: high - # baseline_low_date: 2015-07-29 - # baseline_high_date: 2018-01-29 - # support: - # chrome: "5" - # chrome_android: "18" - # edge: "12" - # firefox: "3" - # firefox_android: "4" - # safari: "6" - # safari_ios: "6" - - css.properties.flood-color - - css.properties.flood-opacity - - css.properties.lighting-color - - # baseline: high - # baseline_low_date: 2016-09-07 - # baseline_high_date: 2019-03-07 - # support: - # chrome: "18" - # chrome_android: "53" - # edge: "12" - # firefox: "35" - # firefox_android: "35" - # safari: "6" - # safari_ios: "6" - - css.types.filter-function - - css.types.filter-function.blur - - css.types.filter-function.brightness - - css.types.filter-function.contrast - - css.types.filter-function.drop-shadow - - css.types.filter-function.grayscale - - css.types.filter-function.hue-rotate - - css.types.filter-function.invert - - css.types.filter-function.opacity - - css.types.filter-function.saturate - - css.types.filter-function.sepia - - # baseline: high - # baseline_low_date: 2016-09-07 - # baseline_high_date: 2019-03-07 - # support: - # chrome: "53" - # chrome_android: "53" - # edge: "12" - # firefox: "35" - # firefox_android: "35" - # safari: "9.1" - # safari_ios: "9.3" - - css.properties.filter - - # 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.color-interpolation-filters - - # ⬇️ Same status as overall feature ⬇️ - # baseline: high - # baseline_low_date: 2020-07-28 - # baseline_high_date: 2023-01-28 - # support: - # chrome: ≤83 - # chrome_android: "83" - # edge: "83" - # firefox: ≤72 - # firefox_android: "79" - # 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/mediaqueries-5.yml b/features/draft/spec/mediaqueries-5.yml index ba1479f0fa4..404ec187afa 100644 --- a/features/draft/spec/mediaqueries-5.yml +++ b/features/draft/spec/mediaqueries-5.yml @@ -1,10 +1,9 @@ -draft_date: 2024-10-21 +draft_date: 2024-11-13 name: Media Queries Level 5 description: TODO spec: https://drafts.csswg.org/mediaqueries-5/ compat_features: - css.at-rules.custom-media - - css.types.ratio.number_value # The following features in the spec are already part of web-features: # - Media queries: @@ -22,6 +21,7 @@ compat_features: # - css.at-rules.media.orientation # - css.at-rules.media.width # - css.types.ratio +# - css.types.ratio.number_value # - Interaction media queries: # - css.at-rules.media.any-hover # - css.at-rules.media.any-pointer diff --git a/features/draft/spec/mediaqueries-5.yml.dist b/features/draft/spec/mediaqueries-5.yml.dist index 39e38d279a3..6a2245d6510 100644 --- a/features/draft/spec/mediaqueries-5.yml.dist +++ b/features/draft/spec/mediaqueries-5.yml.dist @@ -6,4 +6,3 @@ status: support: {} compat_features: - css.at-rules.custom-media - - css.types.ratio.number_value diff --git a/features/draft/spec/prerendering-revamped.yml b/features/draft/spec/prerendering-revamped.yml deleted file mode 100644 index 0acc71a7114..00000000000 --- a/features/draft/spec/prerendering-revamped.yml +++ /dev/null @@ -1,11 +0,0 @@ -draft_date: 2024-10-21 -name: Prerendering Revamped -description: TODO -spec: https://wicg.github.io/nav-speculation/prerendering.html -compat_features: - - api.Document.prerendering - - api.Document.prerenderingchange_event - - api.PerformanceNavigationTiming.activationStart - - http.headers.Supports-Loading-Mode - - http.headers.Supports-Loading-Mode.credentialed-prerender - - http.headers.Supports-Loading-Mode.fenced-frames diff --git a/features/draft/spec/prerendering-revamped.yml.dist b/features/draft/spec/prerendering-revamped.yml.dist deleted file mode 100644 index 7ef8637c233..00000000000 --- a/features/draft/spec/prerendering-revamped.yml.dist +++ /dev/null @@ -1,40 +0,0 @@ -# Generated from: prerendering-revamped.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - baseline: false - support: - chrome: "117" - chrome_android: "117" - edge: "117" -compat_features: - # baseline: false - # support: - # chrome: "108" - # chrome_android: "57" - # edge: "108" - - api.PerformanceNavigationTiming.activationStart - - # baseline: false - # support: - # chrome: "108" - # chrome_android: "108" - # edge: "108" - - api.Document.prerendering - - api.Document.prerenderingchange_event - - # baseline: false - # support: - # chrome: "109" - # chrome_android: "109" - # edge: "109" - - http.headers.Supports-Loading-Mode - - http.headers.Supports-Loading-Mode.credentialed-prerender - - # ⬇️ Same status as overall feature ⬇️ - # baseline: false - # support: - # chrome: "117" - # chrome_android: "117" - # edge: "117" - - http.headers.Supports-Loading-Mode.fenced-frames diff --git a/features/draft/spec/rfc6266.yml b/features/draft/spec/rfc6266.yml deleted file mode 100644 index 70f74845171..00000000000 --- a/features/draft/spec/rfc6266.yml +++ /dev/null @@ -1,7 +0,0 @@ -draft_date: 2024-09-09 -name: Use of the Content-Disposition Header Field in the Hypertext Transfer - Protocol (HTTP) -description: TODO -spec: https://httpwg.org/specs/rfc6266.html -compat_features: - - http.headers.Content-Disposition diff --git a/features/draft/spec/rfc6266.yml.dist b/features/draft/spec/rfc6266.yml.dist deleted file mode 100644 index fa06483680f..00000000000 --- a/features/draft/spec/rfc6266.yml.dist +++ /dev/null @@ -1,17 +0,0 @@ -# Generated from: rfc6266.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - 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: "1" - safari_ios: "1" -compat_features: - - http.headers.Content-Disposition diff --git a/features/draft/spec/rfc6454.yml b/features/draft/spec/rfc6454.yml deleted file mode 100644 index 87b64226783..00000000000 --- a/features/draft/spec/rfc6454.yml +++ /dev/null @@ -1,6 +0,0 @@ -draft_date: 2024-09-09 -name: The Web Origin Concept -description: TODO -spec: https://www.rfc-editor.org/rfc/rfc6454 -compat_features: - - http.headers.Origin diff --git a/features/draft/spec/rfc6454.yml.dist b/features/draft/spec/rfc6454.yml.dist deleted file mode 100644 index 374876555dc..00000000000 --- a/features/draft/spec/rfc6454.yml.dist +++ /dev/null @@ -1,17 +0,0 @@ -# Generated from: rfc6454.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - baseline: high - baseline_low_date: 2020-07-28 - baseline_high_date: 2023-01-28 - support: - chrome: "1" - chrome_android: "18" - edge: "12" - firefox: "70" - firefox_android: "79" - safari: "1" - safari_ios: "1" -compat_features: - - http.headers.Origin diff --git a/features/draft/spec/rfc7578.yml b/features/draft/spec/rfc7578.yml deleted file mode 100644 index a2894bf3cf4..00000000000 --- a/features/draft/spec/rfc7578.yml +++ /dev/null @@ -1,6 +0,0 @@ -draft_date: 2024-09-09 -name: "Returning Values from Forms: multipart/form-data" -description: TODO -spec: https://www.rfc-editor.org/rfc/rfc7578 -compat_features: - - http.headers.Content-Disposition diff --git a/features/draft/spec/rfc7578.yml.dist b/features/draft/spec/rfc7578.yml.dist deleted file mode 100644 index 1d92846ec63..00000000000 --- a/features/draft/spec/rfc7578.yml.dist +++ /dev/null @@ -1,17 +0,0 @@ -# Generated from: rfc7578.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - 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: "1" - safari_ios: "1" -compat_features: - - http.headers.Content-Disposition diff --git a/features/draft/spec/rfc7617.yml b/features/draft/spec/rfc7617.yml deleted file mode 100644 index 268f92346d6..00000000000 --- a/features/draft/spec/rfc7617.yml +++ /dev/null @@ -1,7 +0,0 @@ -draft_date: 2024-09-09 -name: The 'Basic' HTTP Authentication Scheme -description: TODO -spec: https://httpwg.org/specs/rfc7617.html -compat_features: - - http.headers.Authorization.Basic - - http.headers.WWW-Authenticate.Basic diff --git a/features/draft/spec/rfc7617.yml.dist b/features/draft/spec/rfc7617.yml.dist deleted file mode 100644 index ed00169feb4..00000000000 --- a/features/draft/spec/rfc7617.yml.dist +++ /dev/null @@ -1,18 +0,0 @@ -# Generated from: rfc7617.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - 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: "1" - safari_ios: "1" -compat_features: - - http.headers.Authorization.Basic - - http.headers.WWW-Authenticate.Basic diff --git a/features/draft/spec/rfc8246.yml b/features/draft/spec/rfc8246.yml index e10a7249928..81507fdcc46 100644 --- a/features/draft/spec/rfc8246.yml +++ b/features/draft/spec/rfc8246.yml @@ -1,7 +1,10 @@ -draft_date: 2024-10-21 +draft_date: 2024-11-13 name: HTTP Immutable Responses description: TODO spec: https://httpwg.org/specs/rfc8246.html compat_features: - - http.headers.Cache-Control - http.headers.Cache-Control.immutable + +# The following features in the spec are already part of web-features: +# - HTTP/1.1: +# - http.headers.Cache-Control diff --git a/features/draft/spec/rfc8246.yml.dist b/features/draft/spec/rfc8246.yml.dist index b1bad8ca901..b81bbb98a91 100644 --- a/features/draft/spec/rfc8246.yml.dist +++ b/features/draft/spec/rfc8246.yml.dist @@ -8,23 +8,4 @@ status: safari: "11" safari_ios: "11" 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: "1" - # safari_ios: "1" - - http.headers.Cache-Control - - # ⬇️ Same status as overall feature ⬇️ - # baseline: false - # support: - # firefox: "49" - # safari: "11" - # safari_ios: "11" - http.headers.Cache-Control.immutable diff --git a/features/draft/spec/rfc9110.yml b/features/draft/spec/rfc9110.yml index 240a4d53402..3fad5b2bd25 100644 --- a/features/draft/spec/rfc9110.yml +++ b/features/draft/spec/rfc9110.yml @@ -1,56 +1,56 @@ -draft_date: 2024-10-21 +draft_date: 2024-11-13 name: HTTP Semantics description: TODO spec: https://httpwg.org/specs/rfc9110.html compat_features: - - http.headers.Accept - - http.headers.Accept-Encoding - - http.headers.Accept-Language - - http.headers.Accept-Ranges - - http.headers.Authorization - http.headers.Authorization.NTLM - - http.headers.Connection - - http.headers.Content-Encoding - - http.headers.Content-Language - - http.headers.Content-Length - http.headers.Content-Length.cors_response_safelist - - http.headers.Content-Location - - http.headers.Content-Range - - http.headers.Content-Type - - http.headers.Date - - http.headers.ETag - - http.headers.From - - http.headers.Host - - http.headers.If-Match - - http.headers.If-Modified-Since - - http.headers.If-None-Match - - http.headers.If-Range - - http.headers.If-Unmodified-Since - - http.headers.Last-Modified - - http.headers.Location - - http.headers.Proxy-Authenticate - - http.headers.Range - http.headers.Range.cors_safe - - http.headers.Referer - http.headers.Referer.length_limit_4096B - http.headers.Retry-After - - http.headers.Server - - http.headers.TE - - http.headers.Trailer - http.headers.Upgrade - - http.headers.User-Agent - - http.headers.Vary - - http.headers.Via - - http.headers.WWW-Authenticate - http.headers.WWW-Authenticate.NTLM - - http.methods.CONNECT - - http.methods.DELETE - - http.methods.HEAD - - http.methods.OPTIONS - - http.methods.POST - - http.methods.PUT - http.status.308 # The following features in the spec are already part of web-features: # - HTTP/1.1: +# - http.headers.Accept +# - http.headers.Accept-Encoding +# - http.headers.Accept-Language +# - http.headers.Accept-Ranges +# - http.headers.Authorization +# - http.headers.Connection +# - http.headers.Content-Encoding +# - http.headers.Content-Language +# - http.headers.Content-Length +# - http.headers.Content-Location +# - http.headers.Content-Range +# - http.headers.Content-Type +# - http.headers.Date +# - http.headers.ETag +# - http.headers.From +# - http.headers.Host +# - http.headers.If-Match +# - http.headers.If-Modified-Since +# - http.headers.If-None-Match +# - http.headers.If-Range +# - http.headers.If-Unmodified-Since +# - http.headers.Last-Modified +# - http.headers.Location +# - http.headers.Proxy-Authenticate +# - http.headers.Range +# - http.headers.Referer +# - http.headers.Server +# - http.headers.TE +# - http.headers.Trailer +# - http.headers.User-Agent +# - http.headers.Vary +# - http.headers.Via +# - http.headers.WWW-Authenticate +# - http.methods.CONNECT +# - http.methods.DELETE # - http.methods.GET +# - http.methods.HEAD +# - http.methods.OPTIONS +# - http.methods.POST +# - http.methods.PUT diff --git a/features/draft/spec/rfc9110.yml.dist b/features/draft/spec/rfc9110.yml.dist index 3c3c7c787c8..efa64933729 100644 --- a/features/draft/spec/rfc9110.yml.dist +++ b/features/draft/spec/rfc9110.yml.dist @@ -19,46 +19,7 @@ compat_features: # firefox_android: "4" # safari: "1" # safari_ios: "1" - - http.headers.Accept - - http.headers.Accept-Encoding - - http.headers.Accept-Language - - http.headers.Accept-Ranges - - http.headers.Authorization - - http.headers.Connection - - http.headers.Content-Encoding - - http.headers.Content-Language - - http.headers.Content-Length - - http.headers.Content-Location - - http.headers.Content-Range - - http.headers.Content-Type - - http.headers.Date - - http.headers.ETag - - http.headers.From - - http.headers.Host - - http.headers.If-Match - - http.headers.If-Modified-Since - - http.headers.If-None-Match - - http.headers.If-Range - - http.headers.If-Unmodified-Since - - http.headers.Last-Modified - - http.headers.Location - - http.headers.Proxy-Authenticate - - http.headers.Range - - http.headers.Referer - - http.headers.Server - - http.headers.TE - - http.headers.Trailer - http.headers.Upgrade - - http.headers.User-Agent - - http.headers.Vary - - http.headers.Via - - http.headers.WWW-Authenticate - - http.methods.CONNECT - - http.methods.DELETE - - http.methods.HEAD - - http.methods.OPTIONS - - http.methods.POST - - http.methods.PUT # baseline: high # baseline_low_date: 2015-07-29 diff --git a/features/draft/spec/rfc9111.yml b/features/draft/spec/rfc9111.yml index f9caddb75ee..ebc3c1d4932 100644 --- a/features/draft/spec/rfc9111.yml +++ b/features/draft/spec/rfc9111.yml @@ -1,9 +1,12 @@ -draft_date: 2024-10-21 +draft_date: 2024-11-13 name: HTTP Caching description: TODO spec: https://httpwg.org/specs/rfc9111.html compat_features: - - http.headers.Age - - http.headers.Cache-Control - http.headers.Cache-Control.immutable - - http.headers.Expires + +# The following features in the spec are already part of web-features: +# - HTTP/1.1: +# - http.headers.Age +# - http.headers.Cache-Control +# - http.headers.Expires diff --git a/features/draft/spec/rfc9111.yml.dist b/features/draft/spec/rfc9111.yml.dist index 25e5fa37f90..fdeb9c60a2c 100644 --- a/features/draft/spec/rfc9111.yml.dist +++ b/features/draft/spec/rfc9111.yml.dist @@ -8,25 +8,4 @@ status: safari: "11" safari_ios: "11" 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: "1" - # safari_ios: "1" - - http.headers.Age - - http.headers.Cache-Control - - http.headers.Expires - - # ⬇️ Same status as overall feature ⬇️ - # baseline: false - # support: - # firefox: "49" - # safari: "11" - # safari_ios: "11" - http.headers.Cache-Control.immutable diff --git a/features/draft/spec/rfc9112.yml b/features/draft/spec/rfc9112.yml deleted file mode 100644 index 97c427b9137..00000000000 --- a/features/draft/spec/rfc9112.yml +++ /dev/null @@ -1,8 +0,0 @@ -draft_date: 2024-09-09 -name: HTTP/1.1 -description: TODO -spec: https://httpwg.org/specs/rfc9112.html -compat_features: - - http.headers.Keep-Alive - - http.headers.Trailer - - http.headers.Transfer-Encoding diff --git a/features/draft/spec/rfc9112.yml.dist b/features/draft/spec/rfc9112.yml.dist deleted file mode 100644 index 1442b5a93e8..00000000000 --- a/features/draft/spec/rfc9112.yml.dist +++ /dev/null @@ -1,19 +0,0 @@ -# Generated from: rfc9112.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - 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: "1" - safari_ios: "1" -compat_features: - - http.headers.Keep-Alive - - http.headers.Trailer - - http.headers.Transfer-Encoding diff --git a/features/draft/spec/rfc9163.yml b/features/draft/spec/rfc9163.yml deleted file mode 100644 index d54210d3f36..00000000000 --- a/features/draft/spec/rfc9163.yml +++ /dev/null @@ -1,6 +0,0 @@ -draft_date: 2024-09-09 -name: Expect-CT Extension for HTTP -description: TODO -spec: https://www.rfc-editor.org/rfc/rfc9163 -compat_features: - - http.headers.Expect-CT diff --git a/features/draft/spec/rfc9163.yml.dist b/features/draft/spec/rfc9163.yml.dist deleted file mode 100644 index bcccc1bed61..00000000000 --- a/features/draft/spec/rfc9163.yml.dist +++ /dev/null @@ -1,11 +0,0 @@ -# Generated from: rfc9163.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - baseline: false - support: - chrome: "61" - chrome_android: "61" - edge: ≤79 -compat_features: - - http.headers.Expect-CT diff --git a/features/draft/spec/selectors-4.yml b/features/draft/spec/selectors-4.yml index 7b86ad2cc8c..b495318987b 100644 --- a/features/draft/spec/selectors-4.yml +++ b/features/draft/spec/selectors-4.yml @@ -10,12 +10,10 @@ compat_features: - css.selectors.attribute - css.selectors.attribute.case_insensitive_modifier - css.selectors.attribute.case_sensitive_modifier - - css.selectors.blank - css.selectors.checked - css.selectors.child - css.selectors.class - css.selectors.closed - - css.selectors.column - css.selectors.descendant - css.selectors.disabled - css.selectors.empty diff --git a/features/draft/spec/selectors-4.yml.dist b/features/draft/spec/selectors-4.yml.dist index 5f5d739a9a8..48f9401776d 100644 --- a/features/draft/spec/selectors-4.yml.dist +++ b/features/draft/spec/selectors-4.yml.dist @@ -362,9 +362,7 @@ compat_features: # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: {} - - css.selectors.blank - css.selectors.closed - - css.selectors.column - css.selectors.empty.matches_whitespace - css.selectors.open - css.selectors.target-within diff --git a/features/draft/spec/service-workers.yml b/features/draft/spec/service-workers.yml index 9a89c8c2bc3..ece6236c8f7 100644 --- a/features/draft/spec/service-workers.yml +++ b/features/draft/spec/service-workers.yml @@ -1,4 +1,4 @@ -draft_date: 2024-10-21 +draft_date: 2024-11-13 name: Service Workers description: TODO spec: https://w3c.github.io/ServiceWorker/ @@ -76,6 +76,7 @@ compat_features: - api.ServiceWorkerContainer.ready - api.ServiceWorkerContainer.register - api.ServiceWorkerContainer.startMessages + - api.ServiceWorkerContainer.worker_support - api.ServiceWorkerGlobalScope - api.ServiceWorkerGlobalScope.activate_event - api.ServiceWorkerGlobalScope.clients diff --git a/features/draft/spec/service-workers.yml.dist b/features/draft/spec/service-workers.yml.dist index 86a9bff03fa..200141ecdfc 100644 --- a/features/draft/spec/service-workers.yml.dist +++ b/features/draft/spec/service-workers.yml.dist @@ -498,6 +498,7 @@ compat_features: # support: # safari: "11.1" # safari_ios: "11.3" + - api.ServiceWorkerContainer.worker_support - api.WorkerNavigator.serviceWorker # baseline: false diff --git a/features/draft/spec/sourcemap.yml b/features/draft/spec/sourcemap.yml deleted file mode 100644 index 8b6e0fbf959..00000000000 --- a/features/draft/spec/sourcemap.yml +++ /dev/null @@ -1,6 +0,0 @@ -draft_date: 2024-09-09 -name: Source Map -description: TODO -spec: https://tc39.es/source-map/ -compat_features: - - http.headers.SourceMap diff --git a/features/draft/spec/wai-aria-1-3.yml b/features/draft/spec/wai-aria-1-3.yml deleted file mode 100644 index 709c506f1e4..00000000000 --- a/features/draft/spec/wai-aria-1-3.yml +++ /dev/null @@ -1,110 +0,0 @@ -draft_date: 2024-09-09 -name: Accessible Rich Internet Applications (WAI-ARIA) -description: TODO -spec: https://w3c.github.io/aria/ -compat_features: - - api.Element.ariaActiveDescendantElement - - api.Element.ariaBrailleLabel - - api.Element.ariaBrailleRoleDescription - - api.Element.ariaColIndexText - - api.Element.ariaControlsElements - - api.Element.ariaDescribedByElements - - api.Element.ariaDescription - - api.Element.ariaDetailsElements - - api.Element.ariaErrorMessageElements - - api.Element.ariaFlowToElements - - api.Element.ariaLabelledByElements - - api.Element.ariaOwnsElements - - api.Element.ariaRowIndexText - - api.ElementInternals.ariaActiveDescendantElement - - api.ElementInternals.ariaAtomic - - api.ElementInternals.ariaAutoComplete - - api.ElementInternals.ariaBrailleLabel - - api.ElementInternals.ariaBrailleRoleDescription - - api.ElementInternals.ariaBusy - - api.ElementInternals.ariaChecked - - api.ElementInternals.ariaColCount - - api.ElementInternals.ariaColIndex - - api.ElementInternals.ariaColIndexText - - api.ElementInternals.ariaColSpan - - api.ElementInternals.ariaControlsElements - - api.ElementInternals.ariaCurrent - - api.ElementInternals.ariaDescribedByElements - - api.ElementInternals.ariaDescription - - api.ElementInternals.ariaDetailsElements - - api.ElementInternals.ariaDisabled - - api.ElementInternals.ariaErrorMessageElements - - api.ElementInternals.ariaExpanded - - api.ElementInternals.ariaFlowToElements - - api.ElementInternals.ariaHasPopup - - api.ElementInternals.ariaHidden - - api.ElementInternals.ariaInvalid - - api.ElementInternals.ariaKeyShortcuts - - api.ElementInternals.ariaLabel - - api.ElementInternals.ariaLabelledByElements - - api.ElementInternals.ariaLevel - - api.ElementInternals.ariaLive - - api.ElementInternals.ariaModal - - api.ElementInternals.ariaMultiLine - - api.ElementInternals.ariaMultiSelectable - - api.ElementInternals.ariaOrientation - - api.ElementInternals.ariaOwnsElements - - api.ElementInternals.ariaPlaceholder - - api.ElementInternals.ariaPosInSet - - api.ElementInternals.ariaPressed - - api.ElementInternals.ariaReadOnly - - api.ElementInternals.ariaRequired - - api.ElementInternals.ariaRoleDescription - - api.ElementInternals.ariaRowCount - - api.ElementInternals.ariaRowIndex - - api.ElementInternals.ariaRowIndexText - - api.ElementInternals.ariaRowSpan - - api.ElementInternals.ariaSelected - - api.ElementInternals.ariaSetSize - - api.ElementInternals.ariaSort - - api.ElementInternals.ariaValueMax - - api.ElementInternals.ariaValueMin - - api.ElementInternals.ariaValueNow - - api.ElementInternals.ariaValueText - - api.ElementInternals.role - -# The following features in the spec are already part of web-features: -# - ARIA attribute reflection: -# - api.Element.ariaAtomic -# - api.Element.ariaAutoComplete -# - api.Element.ariaBusy -# - api.Element.ariaChecked -# - api.Element.ariaColCount -# - api.Element.ariaColIndex -# - api.Element.ariaColSpan -# - api.Element.ariaCurrent -# - api.Element.ariaDisabled -# - api.Element.ariaExpanded -# - api.Element.ariaHasPopup -# - api.Element.ariaHidden -# - api.Element.ariaInvalid -# - api.Element.ariaKeyShortcuts -# - api.Element.ariaLabel -# - api.Element.ariaLevel -# - api.Element.ariaLive -# - api.Element.ariaModal -# - api.Element.ariaMultiLine -# - api.Element.ariaMultiSelectable -# - api.Element.ariaOrientation -# - api.Element.ariaPlaceholder -# - api.Element.ariaPosInSet -# - api.Element.ariaPressed -# - api.Element.ariaReadOnly -# - api.Element.ariaRequired -# - api.Element.ariaRoleDescription -# - api.Element.ariaRowCount -# - api.Element.ariaRowIndex -# - api.Element.ariaRowSpan -# - api.Element.ariaSelected -# - api.Element.ariaSetSize -# - api.Element.ariaSort -# - api.Element.ariaValueMax -# - api.Element.ariaValueMin -# - api.Element.ariaValueNow -# - api.Element.ariaValueText -# - api.Element.role diff --git a/features/draft/spec/wai-aria-1-3.yml.dist b/features/draft/spec/wai-aria-1-3.yml.dist deleted file mode 100644 index aac2d233303..00000000000 --- a/features/draft/spec/wai-aria-1-3.yml.dist +++ /dev/null @@ -1,157 +0,0 @@ -# Generated from: wai-aria-1-3.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - baseline: false - support: {} -compat_features: - # baseline: low - # baseline_low_date: 2023-10-24 - # support: - # chrome: "81" - # chrome_android: "81" - # edge: "81" - # firefox: "119" - # firefox_android: "119" - # safari: "16.4" - # safari_ios: "16.4" - - api.ElementInternals.ariaAtomic - - api.ElementInternals.ariaAutoComplete - - api.ElementInternals.ariaBusy - - api.ElementInternals.ariaChecked - - api.ElementInternals.ariaColCount - - api.ElementInternals.ariaColIndex - - api.ElementInternals.ariaColSpan - - api.ElementInternals.ariaCurrent - - api.ElementInternals.ariaDisabled - - api.ElementInternals.ariaExpanded - - api.ElementInternals.ariaHasPopup - - api.ElementInternals.ariaHidden - - api.ElementInternals.ariaKeyShortcuts - - api.ElementInternals.ariaLabel - - api.ElementInternals.ariaLevel - - api.ElementInternals.ariaLive - - api.ElementInternals.ariaModal - - api.ElementInternals.ariaMultiLine - - api.ElementInternals.ariaMultiSelectable - - api.ElementInternals.ariaOrientation - - api.ElementInternals.ariaPlaceholder - - api.ElementInternals.ariaPosInSet - - api.ElementInternals.ariaPressed - - api.ElementInternals.ariaReadOnly - - api.ElementInternals.ariaRequired - - api.ElementInternals.ariaRoleDescription - - api.ElementInternals.ariaRowCount - - api.ElementInternals.ariaRowIndex - - api.ElementInternals.ariaRowSpan - - api.ElementInternals.ariaSelected - - api.ElementInternals.ariaSort - - api.ElementInternals.ariaValueMax - - api.ElementInternals.ariaValueMin - - api.ElementInternals.ariaValueNow - - api.ElementInternals.ariaValueText - - # baseline: low - # baseline_low_date: 2023-10-24 - # support: - # chrome: "84" - # chrome_android: "84" - # edge: "84" - # firefox: "119" - # firefox_android: "119" - # safari: "16.4" - # safari_ios: "16.4" - - api.ElementInternals.ariaSetSize - - # baseline: low - # baseline_low_date: 2023-10-24 - # support: - # chrome: "102" - # chrome_android: "102" - # edge: "102" - # firefox: "119" - # firefox_android: "119" - # safari: "16.4" - # safari_ios: "16.4" - - api.ElementInternals.ariaInvalid - - # baseline: low - # baseline_low_date: 2023-10-24 - # support: - # chrome: "103" - # chrome_android: "103" - # edge: "103" - # firefox: "119" - # firefox_android: "119" - # safari: "16.4" - # safari_ios: "16.4" - - api.ElementInternals.role - - # baseline: low - # baseline_low_date: 2024-03-05 - # support: - # chrome: "83" - # chrome_android: "83" - # edge: "83" - # firefox: "119" - # firefox_android: "119" - # safari: "17.4" - # safari_ios: "17.4" - - api.Element.ariaDescription - - # baseline: low - # baseline_low_date: 2024-09-16 - # support: - # chrome: "107" - # chrome_android: "107" - # edge: "107" - # firefox: "125" - # firefox_android: "125" - # safari: "18" - # safari_ios: "18" - - api.Element.ariaBrailleLabel - - api.Element.ariaBrailleRoleDescription - - api.ElementInternals.ariaBrailleLabel - - api.ElementInternals.ariaBrailleRoleDescription - - # baseline: false - # support: - # chrome: "83" - # chrome_android: "83" - # edge: "83" - # firefox: "119" - # firefox_android: "119" - - api.ElementInternals.ariaDescription - - # baseline: false - # support: - # chrome: "128" - # chrome_android: "128" - # edge: "128" - # firefox: "119" - # firefox_android: "119" - - api.Element.ariaColIndexText - - api.Element.ariaRowIndexText - - api.ElementInternals.ariaColIndexText - - api.ElementInternals.ariaRowIndexText - - # baseline: false - # support: - # safari: "16.4" - # safari_ios: "16.4" - - api.Element.ariaActiveDescendantElement - - api.Element.ariaControlsElements - - api.Element.ariaDescribedByElements - - api.Element.ariaDetailsElements - - api.Element.ariaErrorMessageElements - - api.Element.ariaFlowToElements - - api.Element.ariaLabelledByElements - - api.Element.ariaOwnsElements - - api.ElementInternals.ariaActiveDescendantElement - - api.ElementInternals.ariaControlsElements - - api.ElementInternals.ariaDescribedByElements - - api.ElementInternals.ariaDetailsElements - - api.ElementInternals.ariaErrorMessageElements - - api.ElementInternals.ariaFlowToElements - - api.ElementInternals.ariaLabelledByElements - - api.ElementInternals.ariaOwnsElements diff --git a/features/flexbox.yml b/features/flexbox.yml index b937a75ff51..45c3acef4e9 100644 --- a/features/flexbox.yml +++ b/features/flexbox.yml @@ -46,6 +46,7 @@ compat_features: - css.properties.flex-direction.row-reverse - css.properties.flex-flow - css.properties.flex-grow + - css.properties.flex-grow.less_than_zero_animate - css.properties.flex-shrink - css.properties.flex-wrap - css.properties.flex-wrap.nowrap diff --git a/features/flexbox.yml.dist b/features/flexbox.yml.dist index d64d0096612..71befb508ae 100644 --- a/features/flexbox.yml.dist +++ b/features/flexbox.yml.dist @@ -357,6 +357,15 @@ compat_features: - css.properties.align-self.flex_context.safe_unsafe - css.properties.justify-content.flex_context.safe_unsafe + # baseline: false + # support: + # chrome: "49" + # chrome_android: "49" + # edge: "79" + # firefox: "32" + # firefox_android: "32" + - css.properties.flex-grow.less_than_zero_animate + # baseline: false # support: # firefox: "52" diff --git a/features/font-face.yml b/features/font-face.yml index ee8aea9225a..e439eeec452 100644 --- a/features/font-face.yml +++ b/features/font-face.yml @@ -17,6 +17,7 @@ compat_features: - css.at-rules.font-face.src - css.at-rules.font-face.src.drop_invalid_item - css.at-rules.font-face.src.format_keyword + - css.at-rules.font-face.src.format_variations - css.at-rules.font-face.src.tech_keyword - css.at-rules.font-face.unicode-range - css.at-rules.font-face.WOFF diff --git a/features/font-face.yml.dist b/features/font-face.yml.dist index ed549927d34..efd42aad350 100644 --- a/features/font-face.yml.dist +++ b/features/font-face.yml.dist @@ -96,6 +96,19 @@ compat_features: # safari_ios: "10" - css.at-rules.font-face.WOFF_2 + # baseline: high + # baseline_low_date: 2018-09-05 + # baseline_high_date: 2021-03-05 + # support: + # chrome: "66" + # chrome_android: "66" + # edge: "17" + # firefox: "62" + # firefox_android: "62" + # safari: "11" + # safari_ios: "11" + - css.at-rules.font-face.src.format_variations + # baseline: low # baseline_low_date: 2023-09-18 # support: diff --git a/features/ink.yml b/features/ink.yml index c9842f8c570..c7661599645 100644 --- a/features/ink.yml +++ b/features/ink.yml @@ -5,7 +5,6 @@ compat_features: - api.Ink - api.Ink.requestPresenter - api.DelegatedInkTrailPresenter - - api.DelegatedInkTrailPresenter.expectedImprovement - api.DelegatedInkTrailPresenter.presentationArea - api.DelegatedInkTrailPresenter.updateInkTrailStartPoint - api.Navigator.ink diff --git a/features/ink.yml.dist b/features/ink.yml.dist index ffbb3c6f852..5bbb1a98afe 100644 --- a/features/ink.yml.dist +++ b/features/ink.yml.dist @@ -3,21 +3,14 @@ status: baseline: false - support: {} + support: + chrome: "94" + chrome_android: "94" + edge: "93" compat_features: - # baseline: false - # support: - # chrome: "94" - # chrome_android: "94" - # edge: "93" - api.DelegatedInkTrailPresenter - api.DelegatedInkTrailPresenter.presentationArea - api.DelegatedInkTrailPresenter.updateInkTrailStartPoint - api.Ink - api.Ink.requestPresenter - api.Navigator.ink - - # ⬇️ Same status as overall feature ⬇️ - # baseline: false - # support: {} - - api.DelegatedInkTrailPresenter.expectedImprovement diff --git a/features/masks.yml b/features/masks.yml index 461808732f7..0c087890260 100644 --- a/features/masks.yml +++ b/features/masks.yml @@ -8,6 +8,10 @@ status: compat_features: - css.properties.mask - css.properties.mask-clip + - css.properties.mask-clip.border + - css.properties.mask-clip.content + - css.properties.mask-clip.padding + - css.properties.mask-clip.text - css.properties.mask-composite - css.properties.mask-composite.add - css.properties.mask-composite.exclude @@ -24,6 +28,9 @@ compat_features: - css.properties.mask-origin.fill-box - css.properties.mask-origin.stroke-box - css.properties.mask-origin.view-box + - css.properties.mask-origin.border + - css.properties.mask-origin.content + - css.properties.mask-origin.padding - css.properties.mask-position - css.properties.mask-repeat - css.properties.mask-size diff --git a/features/masks.yml.dist b/features/masks.yml.dist index 1d67f3eb4a8..7be8ea67b42 100644 --- a/features/masks.yml.dist +++ b/features/masks.yml.dist @@ -43,6 +43,18 @@ compat_features: - css.properties.mask-repeat - css.properties.mask-size + # baseline: false + # support: + # chrome: "120" + # chrome_android: "120" + # edge: "120" + # safari: "15.4" + # safari_ios: "15.4" + - css.properties.mask-clip.border + - css.properties.mask-clip.content + - css.properties.mask-clip.padding + - css.properties.mask-clip.text + # baseline: false # support: # chrome: "120" @@ -53,3 +65,11 @@ compat_features: - css.properties.mask-origin.fill-box - css.properties.mask-origin.stroke-box - css.properties.mask-origin.view-box + + # baseline: false + # support: + # safari: "15.4" + # safari_ios: "15.4" + - css.properties.mask-origin.border + - css.properties.mask-origin.content + - css.properties.mask-origin.padding diff --git a/features/meta.yml b/features/meta.yml index 064659ad4c4..c512bd7201d 100644 --- a/features/meta.yml +++ b/features/meta.yml @@ -14,8 +14,7 @@ compat_features: - html.elements.meta.charset - html.elements.meta.content - html.elements.meta.http-equiv - # Excluded because of a non-real value - # - html.elements.meta.http-equiv.content-type + - html.elements.meta.http-equiv.content-type - html.elements.meta.http-equiv.refresh - html.elements.meta.name - html.elements.meta.name.referrer diff --git a/features/meta.yml.dist b/features/meta.yml.dist index 0910a75ef31..3be005b2804 100644 --- a/features/meta.yml.dist +++ b/features/meta.yml.dist @@ -61,6 +61,19 @@ compat_features: - html.elements.meta.http-equiv.refresh - html.elements.meta.name + # baseline: high + # baseline_low_date: 2017-06-06 + # baseline_high_date: 2019-12-06 + # support: + # chrome: ≤59 + # chrome_android: "59" + # edge: "12" + # firefox: "1" + # firefox_android: "4" + # safari: ≤10.1 + # safari_ios: ≤10.3 + - html.elements.meta.http-equiv.content-type + # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 diff --git a/features/referrer-policy.yml b/features/referrer-policy.yml index 38943cdc7ac..4a25b1f462f 100644 --- a/features/referrer-policy.yml +++ b/features/referrer-policy.yml @@ -14,17 +14,53 @@ status: - http.headers.Referrer-Policy.default_strict-origin-when-cross-origin compat_features: - api.HTMLAnchorElement.referrerPolicy + - api.HTMLAnchorElement.referrerPolicy.no-referrer-when-downgrade + - api.HTMLAnchorElement.referrerPolicy.origin-when-cross-origin + - api.HTMLAnchorElement.referrerPolicy.unsafe-url - api.HTMLAreaElement.referrerPolicy + - api.HTMLAreaElement.referrerPolicy.no-referrer-when-downgrade + - api.HTMLAreaElement.referrerPolicy.origin-when-cross-origin + - api.HTMLAreaElement.referrerPolicy.unsafe-url - api.HTMLIFrameElement.referrerPolicy + - api.HTMLIFrameElement.referrerPolicy.no-referrer-when-downgrade + - api.HTMLIFrameElement.referrerPolicy.origin-when-cross-origin + - api.HTMLIFrameElement.referrerPolicy.unsafe-url - api.HTMLImageElement.referrerPolicy + - api.HTMLImageElement.referrerPolicy.no-referrer-when-downgrade + - api.HTMLImageElement.referrerPolicy.origin-when-cross-origin + - api.HTMLImageElement.referrerPolicy.unsafe-url - api.HTMLLinkElement.referrerPolicy + - api.HTMLLinkElement.referrerPolicy.no-referrer-when-downgrade + - api.HTMLLinkElement.referrerPolicy.origin-when-cross-origin + - api.HTMLLinkElement.referrerPolicy.unsafe-url - api.HTMLScriptElement.referrerPolicy + - api.HTMLScriptElement.referrerPolicy.no-referrer-when-downgrade + - api.HTMLScriptElement.referrerPolicy.origin-when-cross-origin + - api.HTMLScriptElement.referrerPolicy.unsafe-url - html.elements.a.referrerpolicy + - html.elements.a.referrerpolicy.no-referrer-when-downgrade + - html.elements.a.referrerpolicy.origin-when-cross-origin + - html.elements.a.referrerpolicy.unsafe-url - html.elements.area.referrerpolicy + - html.elements.area.referrerpolicy.no-referrer-when-downgrade + - html.elements.area.referrerpolicy.origin-when-cross-origin + - html.elements.area.referrerpolicy.unsafe-url - html.elements.iframe.referrerpolicy + - html.elements.iframe.referrerpolicy.no-referrer-when-downgrade + - html.elements.iframe.referrerpolicy.origin-when-cross-origin + - html.elements.iframe.referrerpolicy.unsafe-url - html.elements.img.referrerpolicy + - html.elements.img.referrerpolicy.no-referrer-when-downgrade + - html.elements.img.referrerpolicy.origin-when-cross-origin + - html.elements.img.referrerpolicy.unsafe-url - html.elements.link.referrerpolicy + - html.elements.link.referrerpolicy.no-referrer-when-downgrade + - html.elements.link.referrerpolicy.origin-when-cross-origin + - html.elements.link.referrerpolicy.unsafe-url - html.elements.script.referrerpolicy + - html.elements.script.referrerpolicy.no-referrer-when-downgrade + - html.elements.script.referrerpolicy.origin-when-cross-origin + - html.elements.script.referrerpolicy.unsafe-url - http.headers.Referrer-Policy - http.headers.Referrer-Policy.default_strict-origin-when-cross-origin - http.headers.Referrer-Policy.no-referrer-when-downgrade diff --git a/features/referrer-policy.yml.dist b/features/referrer-policy.yml.dist index 7f3631a446d..c476cc319a0 100644 --- a/features/referrer-policy.yml.dist +++ b/features/referrer-policy.yml.dist @@ -140,6 +140,77 @@ compat_features: # safari_ios: "15" - http.headers.Referrer-Policy.default_strict-origin-when-cross-origin + # baseline: false + # support: + # chrome: "52" + # chrome_android: "52" + # edge: "79" + # safari: "14" + # safari_ios: "14" + - api.HTMLAnchorElement.referrerPolicy.no-referrer-when-downgrade + - api.HTMLAnchorElement.referrerPolicy.origin-when-cross-origin + - api.HTMLAnchorElement.referrerPolicy.unsafe-url + - api.HTMLIFrameElement.referrerPolicy.no-referrer-when-downgrade + - api.HTMLIFrameElement.referrerPolicy.origin-when-cross-origin + - api.HTMLIFrameElement.referrerPolicy.unsafe-url + - api.HTMLImageElement.referrerPolicy.no-referrer-when-downgrade + - api.HTMLImageElement.referrerPolicy.origin-when-cross-origin + - api.HTMLImageElement.referrerPolicy.unsafe-url + + # baseline: false + # support: + # chrome: "52" + # chrome_android: "52" + # edge: "79" + # safari: "14.1" + # safari_ios: "14.5" + - api.HTMLAreaElement.referrerPolicy.no-referrer-when-downgrade + - api.HTMLAreaElement.referrerPolicy.origin-when-cross-origin + - api.HTMLAreaElement.referrerPolicy.unsafe-url + + # baseline: false + # support: + # chrome: "58" + # chrome_android: "58" + # edge: "79" + # safari: "14.1" + # safari_ios: "14.5" + - api.HTMLLinkElement.referrerPolicy.no-referrer-when-downgrade + - api.HTMLLinkElement.referrerPolicy.origin-when-cross-origin + - api.HTMLLinkElement.referrerPolicy.unsafe-url + + # baseline: false + # support: + # chrome: "70" + # chrome_android: "70" + # edge: "79" + # safari: "14" + # safari_ios: "14" + - api.HTMLScriptElement.referrerPolicy.no-referrer-when-downgrade + - api.HTMLScriptElement.referrerPolicy.origin-when-cross-origin + - api.HTMLScriptElement.referrerPolicy.unsafe-url + + # baseline: false + # support: + # chrome: "51" + # chrome_android: "51" + # edge: "79" + - html.elements.a.referrerpolicy.no-referrer-when-downgrade + - html.elements.a.referrerpolicy.origin-when-cross-origin + - html.elements.a.referrerpolicy.unsafe-url + - html.elements.area.referrerpolicy.no-referrer-when-downgrade + - html.elements.area.referrerpolicy.origin-when-cross-origin + - html.elements.area.referrerpolicy.unsafe-url + - html.elements.iframe.referrerpolicy.no-referrer-when-downgrade + - html.elements.iframe.referrerpolicy.origin-when-cross-origin + - html.elements.iframe.referrerpolicy.unsafe-url + - html.elements.img.referrerpolicy.no-referrer-when-downgrade + - html.elements.img.referrerpolicy.origin-when-cross-origin + - html.elements.img.referrerpolicy.unsafe-url + - html.elements.link.referrerpolicy.no-referrer-when-downgrade + - html.elements.link.referrerpolicy.origin-when-cross-origin + - html.elements.link.referrerpolicy.unsafe-url + # baseline: false # support: # chrome: "56" @@ -148,3 +219,12 @@ compat_features: - http.headers.Referrer-Policy.no-referrer-when-downgrade - http.headers.Referrer-Policy.origin-when-cross-origin - http.headers.Referrer-Policy.unsafe-url + + # baseline: false + # support: + # chrome: "70" + # chrome_android: "70" + # edge: ≤79 + - html.elements.script.referrerpolicy.no-referrer-when-downgrade + - html.elements.script.referrerpolicy.origin-when-cross-origin + - html.elements.script.referrerpolicy.unsafe-url diff --git a/features/draft/spec/screen-capture.yml b/features/screen-capture.yml similarity index 78% rename from features/draft/spec/screen-capture.yml rename to features/screen-capture.yml index 03963ae7c69..d6b4cd84620 100644 --- a/features/draft/spec/screen-capture.yml +++ b/features/screen-capture.yml @@ -1,7 +1,8 @@ -draft_date: 2024-10-28 -name: Screen Capture -description: TODO +name: Screen capture +description: The `navigator.mediaDevices.getDisplayMedia()` method asks the user to choose a screen or portion of a screen (such as a window) to capture as a media stream. spec: https://w3c.github.io/mediacapture-screen-share/ +status: + compute_from: api.MediaDevices.getDisplayMedia compat_features: - api.CaptureController - api.CaptureController.CaptureController diff --git a/features/draft/spec/screen-capture.yml.dist b/features/screen-capture.yml.dist similarity index 94% rename from features/draft/spec/screen-capture.yml.dist rename to features/screen-capture.yml.dist index f79913d28f0..975a5e6cfd3 100644 --- a/features/draft/spec/screen-capture.yml.dist +++ b/features/screen-capture.yml.dist @@ -3,7 +3,11 @@ status: baseline: false - support: {} + support: + chrome: "72" + edge: "79" + firefox: "33" + safari: "13" compat_features: # baseline: false # support: @@ -23,6 +27,7 @@ compat_features: # safari_ios: "11.3" - api.MediaStreamTrack.applyConstraints.displaySurface_constraint + # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: # chrome: "72" diff --git a/features/sourcemap-header.yml b/features/sourcemap-header.yml new file mode 100644 index 00000000000..6f4775c1684 --- /dev/null +++ b/features/sourcemap-header.yml @@ -0,0 +1,5 @@ +name: Sourcemap header +description: The `Sourcemap` HTTP response header links generated code to a source map, so the browser shows the original source in a debugger. This makes it easier to work with minified or transpiled code. +spec: https://tc39.es/source-map/ +compat_features: + - http.headers.SourceMap diff --git a/features/draft/spec/sourcemap.yml.dist b/features/sourcemap-header.yml.dist similarity index 90% rename from features/draft/spec/sourcemap.yml.dist rename to features/sourcemap-header.yml.dist index 453af36d5d8..97781df0de3 100644 --- a/features/draft/spec/sourcemap.yml.dist +++ b/features/sourcemap-header.yml.dist @@ -1,4 +1,4 @@ -# Generated from: sourcemap.yml +# Generated from: sourcemap-header.yml # Do not edit this file by hand. Edit the source file instead! status: diff --git a/features/draft/spec/speculation-rules.yml b/features/speculation-rules.yml similarity index 58% rename from features/draft/spec/speculation-rules.yml rename to features/speculation-rules.yml index 09eb7cbcc4b..2e5534bc736 100644 --- a/features/draft/spec/speculation-rules.yml +++ b/features/speculation-rules.yml @@ -1,8 +1,12 @@ -draft_date: 2024-10-21 -name: Speculation Rules -description: TODO -spec: https://wicg.github.io/nav-speculation/speculation-rules.html +name: Speculation rules +description: Speculation rules are hints to the browser to proactively download pages in the background so they appear instantly when the user navigates to them. +spec: + - https://wicg.github.io/nav-speculation/speculation-rules.html + - https://wicg.github.io/nav-speculation/prerendering.html compat_features: + - api.Document.prerendering + - api.Document.prerenderingchange_event + - api.PerformanceNavigationTiming.activationStart - html.elements.script.type.speculationrules - html.elements.script.type.speculationrules.eagerness - html.elements.script.type.speculationrules.expects_no_vary_search @@ -17,3 +21,6 @@ compat_features: - html.elements.script.type.speculationrules.where - http.headers.Content-Security-Policy.script-src.inline-speculation-rules - http.headers.Speculation-Rules + - http.headers.Supports-Loading-Mode + - http.headers.Supports-Loading-Mode.credentialed-prerender + - http.headers.Supports-Loading-Mode.fenced-frames diff --git a/features/draft/spec/speculation-rules.yml.dist b/features/speculation-rules.yml.dist similarity index 75% rename from features/draft/spec/speculation-rules.yml.dist rename to features/speculation-rules.yml.dist index ac5d21d20fd..8d48e23628c 100644 --- a/features/draft/spec/speculation-rules.yml.dist +++ b/features/speculation-rules.yml.dist @@ -5,6 +5,21 @@ status: baseline: false support: {} compat_features: + # baseline: false + # support: + # chrome: "108" + # chrome_android: "57" + # edge: "108" + - api.PerformanceNavigationTiming.activationStart + + # baseline: false + # support: + # chrome: "108" + # chrome_android: "108" + # edge: "108" + - api.Document.prerendering + - api.Document.prerenderingchange_event + # baseline: false # support: # chrome: "109" @@ -13,6 +28,8 @@ compat_features: - html.elements.script.type.speculationrules - html.elements.script.type.speculationrules.prerender - html.elements.script.type.speculationrules.urls + - http.headers.Supports-Loading-Mode + - http.headers.Supports-Loading-Mode.credentialed-prerender # baseline: false # support: @@ -36,6 +53,13 @@ compat_features: # edge: "111" - html.elements.script.type.speculationrules.referrer_policy + # baseline: false + # support: + # chrome: "117" + # chrome_android: "117" + # edge: "117" + - http.headers.Supports-Loading-Mode.fenced-frames + # baseline: false # support: # chrome: "121" diff --git a/features/table.yml b/features/table.yml index 2fea4a4da86..cb969695864 100644 --- a/features/table.yml +++ b/features/table.yml @@ -53,16 +53,14 @@ compat_features: - html.elements.td.colspan - html.elements.td.headers - html.elements.td.rowspan - # Excluded because of a non-real value - # - html.elements.td.rowspan.rowspan_zero + - html.elements.td.rowspan.rowspan_zero - html.elements.tfoot - html.elements.th - html.elements.th.abbr - html.elements.th.colspan - html.elements.th.headers - html.elements.th.rowspan - # Excluded because of a non-real value - # - html.elements.th.rowspan.rowspan_zero + - html.elements.th.rowspan.rowspan_zero - html.elements.th.scope - html.elements.thead - html.elements.tr diff --git a/features/table.yml.dist b/features/table.yml.dist index edfd9c4667f..de28072e6b0 100644 --- a/features/table.yml.dist +++ b/features/table.yml.dist @@ -143,3 +143,18 @@ compat_features: # safari: "6" # safari_ios: "6" - api.HTMLTableElement.createTBody + + # baseline: false + # support: + # chrome: "65" + # chrome_android: "65" + # edge: "79" + # firefox: ≤55 + # firefox_android: "55" + - html.elements.td.rowspan.rowspan_zero + + # baseline: false + # support: + # firefox: ≤55 + # firefox_android: "55" + - html.elements.th.rowspan.rowspan_zero diff --git a/features/text-emphasis.yml b/features/text-emphasis.yml index 8d95b39252b..9826b46bd95 100644 --- a/features/text-emphasis.yml +++ b/features/text-emphasis.yml @@ -8,6 +8,7 @@ compat_features: - css.properties.text-emphasis - css.properties.text-emphasis-color - css.properties.text-emphasis-position + - css.properties.text-emphasis-position.auto - css.properties.text-emphasis-position.left - css.properties.text-emphasis-position.over - css.properties.text-emphasis-position.right diff --git a/features/text-emphasis.yml.dist b/features/text-emphasis.yml.dist index fdd7bb402cf..3d972f2b1e0 100644 --- a/features/text-emphasis.yml.dist +++ b/features/text-emphasis.yml.dist @@ -76,3 +76,9 @@ compat_features: # safari_ios: ≤13.4 - css.properties.text-emphasis-position.over - css.properties.text-emphasis-position.under + + # baseline: false + # support: + # firefox: "132" + # firefox_android: "132" + - css.properties.text-emphasis-position.auto diff --git a/features/text-tracks.yml b/features/text-tracks.yml index c780ffe3ab2..23c986c8ef8 100644 --- a/features/text-tracks.yml +++ b/features/text-tracks.yml @@ -51,6 +51,4 @@ compat_features: - html.elements.track.kind - html.elements.track.label - html.elements.track.src - # Excluded because of a non-real value - # - html.elements.track.src.settable_src - html.elements.track.srclang diff --git a/features/draft/spec/ua-client-hints.yml b/features/ua-client-hints.yml similarity index 51% rename from features/draft/spec/ua-client-hints.yml rename to features/ua-client-hints.yml index 64b10fa59de..3ed66f7f880 100644 --- a/features/draft/spec/ua-client-hints.yml +++ b/features/ua-client-hints.yml @@ -1,6 +1,5 @@ -draft_date: 2024-10-21 -name: User-Agent Client Hints -description: TODO +name: User agent client hints +description: The `Sec-CH-UA` HTTP request header and the `navigator.userAgentData` API expose browser and platform information used to vary responses and application logic. User agent client hints are similar to user agent strings but more privacy-preserving and safer to parse. spec: https://wicg.github.io/ua-client-hints/ compat_features: - api.Navigator.userAgentData @@ -12,6 +11,13 @@ compat_features: - api.NavigatorUAData.platform - api.NavigatorUAData.toJSON - api.WorkerNavigator.userAgentData + - http.headers.Accept-CH.Sec-CH-UA + - http.headers.Accept-CH.Sec-CH-UA-Arch + - http.headers.Accept-CH.Sec-CH-UA-Full-Version + - http.headers.Accept-CH.Sec-CH-UA-Mobile + - http.headers.Accept-CH.Sec-CH-UA-Model + - http.headers.Accept-CH.Sec-CH-UA-Platform + - http.headers.Accept-CH.Sec-CH-UA-Platform-Version - http.headers.Sec-CH-UA - http.headers.Sec-CH-UA-Arch - http.headers.Sec-CH-UA-Bitness diff --git a/features/draft/spec/ua-client-hints.yml.dist b/features/ua-client-hints.yml.dist similarity index 79% rename from features/draft/spec/ua-client-hints.yml.dist rename to features/ua-client-hints.yml.dist index e6bcd2c6dbc..afeb5469e51 100644 --- a/features/draft/spec/ua-client-hints.yml.dist +++ b/features/ua-client-hints.yml.dist @@ -13,6 +13,13 @@ compat_features: # chrome: "89" # chrome_android: "89" # edge: "89" + - http.headers.Accept-CH.Sec-CH-UA + - http.headers.Accept-CH.Sec-CH-UA-Arch + - http.headers.Accept-CH.Sec-CH-UA-Full-Version + - http.headers.Accept-CH.Sec-CH-UA-Mobile + - http.headers.Accept-CH.Sec-CH-UA-Model + - http.headers.Accept-CH.Sec-CH-UA-Platform + - http.headers.Accept-CH.Sec-CH-UA-Platform-Version - http.headers.Sec-CH-UA - http.headers.Sec-CH-UA-Arch - http.headers.Sec-CH-UA-Mobile diff --git a/package-lock.json b/package-lock.json index fb417da0a86..e51ccf5c931 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "devDependencies": { "@eslint/js": "^9.14.0", "@js-temporal/polyfill": "^0.4.4", - "@mdn/browser-compat-data": "^5.6.14", + "@mdn/browser-compat-data": "^5.6.15", "@types/caniuse-lite": "^1.0.4", "@types/diff": "^5.2.3", "@types/node": "^18.19.64", @@ -32,7 +32,7 @@ "ts-json-schema-generator": "^2.3.0", "tsx": "^4.19.2", "typescript": "^5.6.3", - "typescript-eslint": "^8.13.0", + "typescript-eslint": "^8.14.0", "unified": "^11.0.5", "web-specs": "^3.25.0", "winston": "^3.17.0", @@ -761,9 +761,9 @@ } }, "node_modules/@mdn/browser-compat-data": { - "version": "5.6.14", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.6.14.tgz", - "integrity": "sha512-/uzZqshFCDJ+1SRon0TCTzuCs6UN4DzhDQFz15B4xGdg4broKwRODz03WINFMR5yhZwjmVBveUx/iBrjoGH4lA==" + "version": "5.6.15", + "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.6.15.tgz", + "integrity": "sha512-OtMTbZT2qN9/mgkHgsN3xdirnjzRtMrR2CndiQbg2tNv3gipdb/7cYhtdloIL0m6UPm049DZCUdxJO/asqNhFw==" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -912,16 +912,16 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz", - "integrity": "sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.14.0.tgz", + "integrity": "sha512-tqp8H7UWFaZj0yNO6bycd5YjMwxa6wIHOLZvWPkidwbgLCsBMetQoGj7DPuAlWa2yGO3H48xmPwjhsSPPCGU5w==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.13.0", - "@typescript-eslint/type-utils": "8.13.0", - "@typescript-eslint/utils": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0", + "@typescript-eslint/scope-manager": "8.14.0", + "@typescript-eslint/type-utils": "8.14.0", + "@typescript-eslint/utils": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -945,15 +945,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz", - "integrity": "sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.14.0.tgz", + "integrity": "sha512-2p82Yn9juUJq0XynBXtFCyrBDb6/dJombnz6vbo6mgQEtWHfvHbQuEa9kAOVIt1c9YFwi7H6WxtPj1kg+80+RA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.13.0", - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/typescript-estree": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0", + "@typescript-eslint/scope-manager": "8.14.0", + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/typescript-estree": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0", "debug": "^4.3.4" }, "engines": { @@ -973,13 +973,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz", - "integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.14.0.tgz", + "integrity": "sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0" + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -990,13 +990,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz", - "integrity": "sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.14.0.tgz", + "integrity": "sha512-Xcz9qOtZuGusVOH5Uk07NGs39wrKkf3AxlkK79RBK6aJC1l03CobXjJbwBPSidetAOV+5rEVuiT1VSBUOAsanQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "8.13.0", - "@typescript-eslint/utils": "8.13.0", + "@typescript-eslint/typescript-estree": "8.14.0", + "@typescript-eslint/utils": "8.14.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -1014,9 +1014,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz", - "integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.14.0.tgz", + "integrity": "sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==", "dev": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1027,13 +1027,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz", - "integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.14.0.tgz", + "integrity": "sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/visitor-keys": "8.13.0", + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/visitor-keys": "8.14.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -1070,15 +1070,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz", - "integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.14.0.tgz", + "integrity": "sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.13.0", - "@typescript-eslint/types": "8.13.0", - "@typescript-eslint/typescript-estree": "8.13.0" + "@typescript-eslint/scope-manager": "8.14.0", + "@typescript-eslint/types": "8.14.0", + "@typescript-eslint/typescript-estree": "8.14.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1092,12 +1092,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz", - "integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.14.0.tgz", + "integrity": "sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/types": "8.14.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -4573,14 +4573,14 @@ } }, "node_modules/typescript-eslint": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.13.0.tgz", - "integrity": "sha512-vIMpDRJrQd70au2G8w34mPps0ezFSPMEX4pXkTzUkrNbRX+36ais2ksGWN0esZL+ZMaFJEneOBHzCgSqle7DHw==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.14.0.tgz", + "integrity": "sha512-K8fBJHxVL3kxMmwByvz8hNdBJ8a0YqKzKDX6jRlrjMuNXyd5T2V02HIq37+OiWXvUUOXgOOGiSSOh26Mh8pC3w==", "dev": true, "dependencies": { - "@typescript-eslint/eslint-plugin": "8.13.0", - "@typescript-eslint/parser": "8.13.0", - "@typescript-eslint/utils": "8.13.0" + "@typescript-eslint/eslint-plugin": "8.14.0", + "@typescript-eslint/parser": "8.14.0", + "@typescript-eslint/utils": "8.14.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" diff --git a/package.json b/package.json index b57c0cd02e1..4391b6048d0 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "devDependencies": { "@eslint/js": "^9.14.0", "@js-temporal/polyfill": "^0.4.4", - "@mdn/browser-compat-data": "^5.6.14", + "@mdn/browser-compat-data": "^5.6.15", "@types/caniuse-lite": "^1.0.4", "@types/diff": "^5.2.3", "@types/node": "^18.19.64", @@ -57,7 +57,7 @@ "ts-json-schema-generator": "^2.3.0", "tsx": "^4.19.2", "typescript": "^5.6.3", - "typescript-eslint": "^8.13.0", + "typescript-eslint": "^8.14.0", "unified": "^11.0.5", "web-specs": "^3.25.0", "winston": "^3.17.0", diff --git a/packages/web-features/package-lock.json b/packages/web-features/package-lock.json index 8bf2168fe3f..505c3b90c80 100644 --- a/packages/web-features/package-lock.json +++ b/packages/web-features/package-lock.json @@ -1,12 +1,12 @@ { "name": "web-features", - "version": "2.5.0", + "version": "2.6.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "web-features", - "version": "2.5.0", + "version": "2.6.1", "license": "Apache-2.0", "devDependencies": { "tsup": "^8.3.5", diff --git a/packages/web-features/package.json b/packages/web-features/package.json index 6078a9a59c5..d15dff5222d 100644 --- a/packages/web-features/package.json +++ b/packages/web-features/package.json @@ -1,7 +1,7 @@ { "name": "web-features", "description": "Curated list of Web platform features", - "version": "2.5.0", + "version": "2.6.1", "license": "Apache-2.0", "repository": { "type": "git", diff --git a/scripts/dist.ts b/scripts/dist.ts index 795b7811113..22ac8a3b3f4 100644 --- a/scripts/dist.ts +++ b/scripts/dist.ts @@ -201,7 +201,7 @@ function toDist(sourcePath: string): YAML.Document { if (source.compat_features) { source.compat_features.sort(); if (isDeepStrictEqual(source.compat_features, taggedCompatFeatures)) { - logger.warn( + logger.silly( `${id}: compat_features override matches tags in @mdn/browser-compat-data. Consider deleting the compat_features override.`, ); } @@ -234,9 +234,18 @@ function toDist(sourcePath: string): YAML.Document { }); if (computedStatus.discouraged) { - logger.warn( - `${id}: contains at least one deprecated compat feature and can never be Baseline. Was this intentional?`, - ); + const isDraft: boolean = source.draft_date ?? false; + + if (!source.draft_date) { + logger.error( + `${id}: contains at least one deprecated compat feature and can never be Baseline. This is forbidden for published features.`, + ); + exitStatus = 1; + } else { + logger.warn( + `${id}: draft contains at least one deprecated compat feature and can never be Baseline. Was this intentional?`, + ); + } } computedStatus = JSON.parse(computedStatus.toJSON()); diff --git a/scripts/stats.ts b/scripts/stats.ts index da35400598d..a5919bc2a6d 100644 --- a/scripts/stats.ts +++ b/scripts/stats.ts @@ -1,43 +1,83 @@ import { Compat } from "compute-baseline/browser-compat-data"; +import { fileURLToPath } from "node:url"; +import yargs from "yargs"; import { features } from "../index.js"; -const featureCount = Object.keys(features).length; - -const keys = [...new Compat().walk()] - .filter((f) => !f.id.startsWith("webextensions")) - .map((f) => f.id).length; - -const compatKeys = Object.values(features).flatMap( - (f) => f.compat_features ?? [], -).length; - -const featureSizes = Object.values(features) - .map((feature) => (feature.compat_features ?? []).length) - .sort((a, b) => a - b); - -const stats = { - features: featureCount, - compatKeys, - compatCoverage: compatKeys / keys, - compatKeysPerFeatureMean: compatKeys / featureCount, - compatKeysPerFeatureMedian: (() => { - const sizes = featureSizes; - const middle = Math.floor(sizes.length / 2); - return sizes.length % 2 - ? sizes[middle] - : (sizes[middle - 1] + sizes[middle]) / 2; - })(), - compatKeysPerFeatureMode: (() => { - const frequencyMap = new Map(); - for (const size of featureSizes) { - frequencyMap.set(size, (frequencyMap.get(size) ?? 0) + 1); +const argv = yargs(process.argv.slice(2)) + .scriptName("stats") + .usage("$0", "Generate statistics") + .option("verbose", { + alias: "v", + describe: "Show more detailed stats", + type: "count", + default: 0, + }).argv; + +export function stats(detailed: boolean = false) { + const featureCount = Object.keys(features).length; + + const keys = []; + const doneKeys = Object.values(features).flatMap( + (f) => f.compat_features ?? [], + ); + const toDoKeys = []; + const deprecatedNonStandardKeys = []; + + for (const f of new Compat().walk()) { + if (!f.id.startsWith("webextensions")) { + keys.push(f.id); + + if (!f.deprecated && f.standard_track) { + if (!doneKeys.includes(f.id)) { + toDoKeys.push(f.id); + } + } else { + deprecatedNonStandardKeys.push(f.id); + } } - return [...frequencyMap.entries()] - .sort( - ([sizeA, frequencyA], [sizeB, frequencyB]) => frequencyA - frequencyB, - ) - .pop()[0]; - })(), -}; - -console.log(JSON.stringify(stats, undefined, 2)); + } + + const featureSizes = Object.values(features) + .map((feature) => (feature.compat_features ?? []).length) + .sort((a, b) => a - b); + + const result = { + features: featureCount, + compatKeys: doneKeys.length, + compatKeysUnmapped: toDoKeys.length + deprecatedNonStandardKeys.length, + compatCoverage: doneKeys.length / keys.length, + compatKeysPerFeatureMean: doneKeys.length / featureCount, + compatKeysPerFeatureMedian: (() => { + const sizes = featureSizes; + const middle = Math.floor(sizes.length / 2); + return sizes.length % 2 + ? sizes[middle] + : (sizes[middle - 1] + sizes[middle]) / 2; + })(), + compatKeysPerFeatureMode: (() => { + const frequencyMap = new Map(); + for (const size of featureSizes) { + frequencyMap.set(size, (frequencyMap.get(size) ?? 0) + 1); + } + return [...frequencyMap.entries()] + .sort( + ([sizeA, frequencyA], [sizeB, frequencyB]) => frequencyA - frequencyB, + ) + .pop()[0]; + })(), + currentBurndown: undefined, + currentBurndownSize: toDoKeys.length, + }; + + if (detailed) { + result.currentBurndown = toDoKeys; + } + + return result; +} + +if (import.meta.url.startsWith("file:")) { + if (process.argv[1] === fileURLToPath(import.meta.url)) { + console.log(JSON.stringify(stats(argv.verbose), undefined, 2)); + } +} diff --git a/scripts/update-drafts.ts b/scripts/update-drafts.ts index 23626197c97..d5823d14685 100644 --- a/scripts/update-drafts.ts +++ b/scripts/update-drafts.ts @@ -7,10 +7,11 @@ import { fileURLToPath } from "node:url"; import Path from "path"; import webSpecs from "web-specs" assert { type: "json" }; import winston from "winston"; -import { Document } from "yaml"; +import { Document, parse } from "yaml"; import yargs from "yargs"; import { features } from "../index.js"; +import { FeatureData } from "../types.js"; type WebSpecsSpec = (typeof webSpecs)[number]; @@ -125,11 +126,6 @@ async function main() { // Iterate BCD and group compat features by spec. const specToCompatFeatures = new Map>(); for (const feature of compat.walk()) { - // Skip deprecated and non-standard features. - if (feature.deprecated || !feature.standard_track) { - continue; - } - // A few null values remain in BCD. They are being removed in // https://github.com/mdn/browser-compat-data/pull/23774. // TODO: Remove this workaround when BCD is free or true/null values. @@ -167,11 +163,15 @@ async function main() { if (!selectedKeys) console.warn(`${url} not matched to any spec`); continue; } - const keys = specToCompatFeatures.get(spec); - if (keys) { + + let keys = specToCompatFeatures.get(spec); + if (!keys) { + keys = new Set([]); + specToCompatFeatures.set(spec, keys); + } + + if (!feature.deprecated && feature.standard_track) { keys.add(feature.id); - } else { - specToCompatFeatures.set(spec, new Set([feature.id])); } } } @@ -196,19 +196,7 @@ async function main() { // If all features are already part of web-features if (compatFeatures.size === 0) { - const dist = `${destination}.dist`; - try { - await fs.rm(destination); - logger.warn(`${destination}: deleted`); - } catch (error) { - logger.debug(`${destination}: deletion failed`); - } - try { - await fs.rm(dist); - logger.warn(`${dist}: deleted`); - } catch (error) { - logger.debug(`${dist}: deletion failed`); - } + await rmFeatureFiles(destination); continue; } @@ -271,6 +259,47 @@ async function main() { await fs.writeFile(destination, proposedFile); logger.info(`${destination}: updated`); } + + // Clean up completed specs, even if they've been superseded + const assignedKeys = Object.values(features).flatMap( + (f) => f.compat_features ?? [], + ); + for (const spec of webSpecs) { + const id = formatIdentifier(spec.shortname); + const destination = `features/draft/spec/${id}.yml`; + + if (!fsSync.existsSync(destination)) { + continue; + } + + const source = fsSync.readFileSync(destination, { encoding: "utf-8" }); + const { compat_features } = parse(source) as FeatureData; + + if ((compat_features ?? []).every((key) => assignedKeys.includes(key))) { + await rmFeatureFiles(destination); + } + } +} + +/** + * Delete an authored YAML file and its dist file. + * + * @param {string} destination The path to the authored .yml file. + */ +async function rmFeatureFiles(destination: string) { + const dist = `${destination}.dist`; + try { + await fs.rm(destination); + logger.warn(`${destination}: deleted`); + } catch (error) { + logger.debug(`${destination}: deletion failed`); + } + try { + await fs.rm(dist); + logger.warn(`${dist}: deleted`); + } catch (error) { + logger.debug(`${dist}: deletion failed`); + } } if (process.argv[1] === fileURLToPath(import.meta.url)) {