diff --git a/features/draft/spec/html.yml b/features/draft/spec/html.yml
index 9620e120a1c..d3a7bca595e 100644
--- a/features/draft/spec/html.yml
+++ b/features/draft/spec/html.yml
@@ -1,9 +1,10 @@
-draft_date: 2025-04-09
+draft_date: 2025-04-10
name: HTML
description: TODO
spec: https://html.spec.whatwg.org/multipage/
compat_features:
- api.CanvasRenderingContext2D.lang
+ - api.CustomElementRegistry.define.connectedMoveCallback_lifecycle_callback
- api.Document.featurePolicy
- api.ElementInternals.shadowRoot
- api.ErrorEvent
@@ -98,6 +99,8 @@ compat_features:
- api.reportError
- api.setInterval.supports_parameters_for_callback
- api.setTimeout.supports_parameters_for_callback
+ - css.selectors.hover.a_elements
+ - css.selectors.hover.all_elements
- html.elements.dialog.closedby
- html.elements.form.autocomplete.new-password
- html.elements.form.autocomplete.one-time-code
diff --git a/features/draft/spec/html.yml.dist b/features/draft/spec/html.yml.dist
index 07256ea5525..a66cf513083 100644
--- a/features/draft/spec/html.yml.dist
+++ b/features/draft/spec/html.yml.dist
@@ -47,6 +47,20 @@ compat_features:
# safari_ios: "1"
- api.HTMLElement.load_event
+ # 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: "2"
+ # safari_ios: "1"
+ - css.selectors.hover.a_elements
+ - css.selectors.hover.all_elements
+
# baseline: high
# baseline_low_date: 2015-07-29
# baseline_high_date: 2018-01-29
@@ -953,6 +967,7 @@ compat_features:
# chrome: "133"
# chrome_android: "133"
# edge: "133"
+ - api.CustomElementRegistry.define.connectedMoveCallback_lifecycle_callback
- html.elements.script.type.importmap.multiple_import_maps
# baseline: false
diff --git a/features/draft/spec/mst-content-hint.yml b/features/draft/spec/mst-content-hint.yml
index 40f6752588b..0f2aaba4990 100644
--- a/features/draft/spec/mst-content-hint.yml
+++ b/features/draft/spec/mst-content-hint.yml
@@ -1,6 +1,8 @@
-draft_date: 2024-09-09
+draft_date: 2025-04-10
name: MediaStreamTrack Content Hints
description: TODO
spec: https://w3c.github.io/mst-content-hint/
compat_features:
- api.MediaStreamTrack.contentHint
+ - api.RTCRtpSender.getParameters.return_object_property_degradationPreference
+ - api.RTCRtpSender.setParameters.parameters_degradationPreference_parameter
diff --git a/features/draft/spec/mst-content-hint.yml.dist b/features/draft/spec/mst-content-hint.yml.dist
index 351335c8968..084ad28e9cf 100644
--- a/features/draft/spec/mst-content-hint.yml.dist
+++ b/features/draft/spec/mst-content-hint.yml.dist
@@ -4,10 +4,28 @@
status:
baseline: false
support:
- chrome: "70"
- chrome_android: "70"
- edge: "79"
+ chrome: "83"
+ chrome_android: "83"
+ edge: "83"
safari: "12.1"
safari_ios: "12.2"
compat_features:
+ # baseline: false
+ # support:
+ # chrome: "70"
+ # chrome_android: "70"
+ # edge: "79"
+ # safari: "12.1"
+ # safari_ios: "12.2"
- api.MediaStreamTrack.contentHint
+
+ # ⬇️ Same status as overall feature ⬇️
+ # baseline: false
+ # support:
+ # chrome: "83"
+ # chrome_android: "83"
+ # edge: "83"
+ # safari: "12.1"
+ # safari_ios: "12.2"
+ - api.RTCRtpSender.getParameters.return_object_property_degradationPreference
+ - api.RTCRtpSender.setParameters.parameters_degradationPreference_parameter
diff --git a/features/draft/spec/observable.yml b/features/draft/spec/observable.yml
new file mode 100644
index 00000000000..2dbf30d03e6
--- /dev/null
+++ b/features/draft/spec/observable.yml
@@ -0,0 +1,35 @@
+draft_date: 2025-04-10
+name: Observable
+description: TODO
+spec: https://wicg.github.io/observable/
+compat_features:
+ - api.EventTarget.when
+ - api.Observable
+ - api.Observable.Observable
+ - api.Observable.catch
+ - api.Observable.drop
+ - api.Observable.every
+ - api.Observable.filter
+ - api.Observable.finally
+ - api.Observable.find
+ - api.Observable.first
+ - api.Observable.flatMap
+ - api.Observable.forEach
+ - api.Observable.from_static
+ - api.Observable.inspect
+ - api.Observable.last
+ - api.Observable.map
+ - api.Observable.reduce
+ - api.Observable.some
+ - api.Observable.subscribe
+ - api.Observable.switchMap
+ - api.Observable.take
+ - api.Observable.takeUntil
+ - api.Observable.toArray
+ - api.Subscriber
+ - api.Subscriber.active
+ - api.Subscriber.addTeardown
+ - api.Subscriber.complete
+ - api.Subscriber.error
+ - api.Subscriber.next
+ - api.Subscriber.signal
diff --git a/features/draft/spec/observable.yml.dist b/features/draft/spec/observable.yml.dist
new file mode 100644
index 00000000000..907804ed6c4
--- /dev/null
+++ b/features/draft/spec/observable.yml.dist
@@ -0,0 +1,40 @@
+# Generated from: observable.yml
+# Do not edit this file by hand. Edit the source file instead!
+
+status:
+ baseline: false
+ support:
+ chrome: "135"
+ chrome_android: "135"
+ edge: "135"
+compat_features:
+ - api.EventTarget.when
+ - api.Observable
+ - api.Observable.Observable
+ - api.Observable.catch
+ - api.Observable.drop
+ - api.Observable.every
+ - api.Observable.filter
+ - api.Observable.finally
+ - api.Observable.find
+ - api.Observable.first
+ - api.Observable.flatMap
+ - api.Observable.forEach
+ - api.Observable.from_static
+ - api.Observable.inspect
+ - api.Observable.last
+ - api.Observable.map
+ - api.Observable.reduce
+ - api.Observable.some
+ - api.Observable.subscribe
+ - api.Observable.switchMap
+ - api.Observable.take
+ - api.Observable.takeUntil
+ - api.Observable.toArray
+ - api.Subscriber
+ - api.Subscriber.active
+ - api.Subscriber.addTeardown
+ - api.Subscriber.complete
+ - api.Subscriber.error
+ - api.Subscriber.next
+ - api.Subscriber.signal
diff --git a/features/draft/spec/permissions-policy-1.yml b/features/draft/spec/permissions-policy-1.yml
index aeec1890a02..af810afdf3f 100644
--- a/features/draft/spec/permissions-policy-1.yml
+++ b/features/draft/spec/permissions-policy-1.yml
@@ -1,7 +1,9 @@
-draft_date: 2024-10-21
+draft_date: 2025-04-10
name: Permissions Policy
description: TODO
spec: https://w3c.github.io/webappsec-permissions-policy/
compat_features:
- http.headers.Permissions-Policy
+ - http.headers.Permissions-Policy.deferred-fetch
+ - http.headers.Permissions-Policy.deferred-fetch-minimal
- http.headers.Permissions-Policy.wildcards
diff --git a/features/draft/spec/permissions-policy-1.yml.dist b/features/draft/spec/permissions-policy-1.yml.dist
index 2d516e83f2e..dbb389b5e09 100644
--- a/features/draft/spec/permissions-policy-1.yml.dist
+++ b/features/draft/spec/permissions-policy-1.yml.dist
@@ -4,9 +4,9 @@
status:
baseline: false
support:
- chrome: "108"
- chrome_android: "108"
- edge: "108"
+ chrome: "135"
+ chrome_android: "135"
+ edge: "135"
compat_features:
# baseline: false
# support:
@@ -15,10 +15,18 @@ compat_features:
# edge: "88"
- http.headers.Permissions-Policy
- # ⬇️ Same status as overall feature ⬇️
# baseline: false
# support:
# chrome: "108"
# chrome_android: "108"
# edge: "108"
- http.headers.Permissions-Policy.wildcards
+
+ # ⬇️ Same status as overall feature ⬇️
+ # baseline: false
+ # support:
+ # chrome: "135"
+ # chrome_android: "135"
+ # edge: "135"
+ - http.headers.Permissions-Policy.deferred-fetch
+ - http.headers.Permissions-Policy.deferred-fetch-minimal
diff --git a/features/draft/spec/selectors-4.yml b/features/draft/spec/selectors-4.yml
new file mode 100644
index 00000000000..cd9c63f9930
--- /dev/null
+++ b/features/draft/spec/selectors-4.yml
@@ -0,0 +1,146 @@
+draft_date: 2025-04-10
+name: Selectors Level 4
+description: TODO
+spec: https://drafts.csswg.org/selectors-4/
+compat_features:
+ - css.selectors.hover.a_elements
+ - css.selectors.hover.all_elements
+
+# The following features in the spec are already part of web-features:
+# - User action pseudo-classes:
+# - css.selectors.active
+# - css.selectors.active.non_a_elements
+# - css.selectors.focus
+# - css.selectors.hover
+# - Link selectors:
+# - css.selectors.any-link
+# - css.selectors.any-link.not_match_link
+# - css.selectors.link
+# - css.selectors.link.not_match_link
+# - css.selectors.visited
+# - css.selectors.visited.not_match_link
+# - css.selectors.visited.privacy_measures
+# - Selectors (core):
+# - css.selectors.attribute
+# - css.selectors.child
+# - css.selectors.class
+# - css.selectors.descendant
+# - css.selectors.id
+# - css.selectors.list
+# - css.selectors.next-sibling
+# - css.selectors.subsequent-sibling
+# - css.selectors.type
+# - css.selectors.type.namespaces
+# - css.selectors.universal
+# - css.selectors.universal.namespaces
+# - Case-insensitive attribute selector:
+# - css.selectors.attribute.case_insensitive_modifier
+# - Case-sensitive attribute selector:
+# - css.selectors.attribute.case_sensitive_modifier
+# - :autofill:
+# - css.selectors.autofill
+# - Media element pseudo-classes:
+# - css.selectors.buffering
+# - css.selectors.muted
+# - css.selectors.paused
+# - css.selectors.playing
+# - css.selectors.seeking
+# - css.selectors.stalled
+# - css.selectors.volume-locked
+# - Input selectors:
+# - css.selectors.checked
+# - css.selectors.disabled
+# - css.selectors.enabled
+# - Open and closed selectors:
+# - css.selectors.closed
+# - css.selectors.open
+# - :default:
+# - css.selectors.default
+# - Autonomous custom elements:
+# - css.selectors.defined
+# - :dir():
+# - css.selectors.dir
+# - :empty:
+# - css.selectors.empty
+# - css.selectors.empty.matches_whitespace
+# - :nth-child():
+# - css.selectors.first-child
+# - css.selectors.first-child.no_parent_required
+# - css.selectors.last-child
+# - css.selectors.last-child.no_parent_required
+# - css.selectors.nth-child
+# - css.selectors.nth-child.no_parent_required
+# - css.selectors.nth-last-child
+# - css.selectors.nth-last-child.no_parent_required
+# - css.selectors.only-child
+# - css.selectors.only-child.no_parent_required
+# - :nth-of-type() pseudo-classes:
+# - css.selectors.first-of-type
+# - css.selectors.last-of-type
+# - css.selectors.nth-last-of-type
+# - css.selectors.nth-of-type
+# - css.selectors.only-of-type
+# - :focus-visible:
+# - css.selectors.focus-visible
+# - :focus-within:
+# - css.selectors.focus-within
+# - Fullscreen API:
+# - css.selectors.fullscreen
+# - css.selectors.fullscreen.all_elements
+# - Time-relative pseudo-selectors:
+# - css.selectors.future
+# - css.selectors.past
+# - :has():
+# - css.selectors.has
+# - Form validity pseudo-classes:
+# - css.selectors.in-range
+# - css.selectors.invalid
+# - css.selectors.invalid.form
+# - css.selectors.optional
+# - css.selectors.out-of-range
+# - css.selectors.required
+# - css.selectors.valid
+# - css.selectors.valid.form
+# - :indeterminate:
+# - css.selectors.indeterminate
+# - css.selectors.indeterminate.checkbox
+# - css.selectors.indeterminate.progress
+# - css.selectors.indeterminate.radio
+# - :is():
+# - css.selectors.is
+# - css.selectors.is.forgiving_selector_list
+# - :lang():
+# - css.selectors.lang
+# - css.selectors.lang.argument_list
+# - css.selectors.lang.wildcards
+# - :modal:
+# - css.selectors.modal
+# - :not():
+# - css.selectors.not
+# - css.selectors.not.selector_list
+# - :nth-child() of :
+# - css.selectors.nth-child.of_syntax
+# - css.selectors.nth-last-child.of_syntax
+# - Picture-in-picture (video):
+# - css.selectors.picture-in-picture
+# - :placeholder-shown:
+# - css.selectors.placeholder-shown
+# - css.selectors.placeholder-shown.non_text_types
+# - Popover:
+# - css.selectors.popover-open
+# - :read-only and :read-write:
+# - css.selectors.read-only
+# - css.selectors.read-write
+# - :root:
+# - css.selectors.root
+# - :scope (pseudo-class):
+# - css.selectors.scope
+# - css.selectors.scope.dom_api
+# - :target:
+# - css.selectors.target
+# - :user-valid and :user-invalid:
+# - css.selectors.user-invalid
+# - css.selectors.user-valid
+# - :where():
+# - css.selectors.where
+# - css.selectors.where.forgiving_selector_list
diff --git a/features/draft/spec/selectors-4.yml.dist b/features/draft/spec/selectors-4.yml.dist
new file mode 100644
index 00000000000..858e69f01ab
--- /dev/null
+++ b/features/draft/spec/selectors-4.yml.dist
@@ -0,0 +1,18 @@
+# Generated from: selectors-4.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: "2"
+ safari_ios: "1"
+compat_features:
+ - css.selectors.hover.a_elements
+ - css.selectors.hover.all_elements