From b34c2519402503152ceca6fc1d9a04c6eb601d39 Mon Sep 17 00:00:00 2001 From: "Daniel D. Beck" Date: Sun, 16 Feb 2025 16:48:15 +0100 Subject: [PATCH 1/2] Add permissions policy feature --- features/draft/feature-policy.yml | 13 ++++++++++++ features/draft/feature-policy.yml.dist | 12 +++++++++++ features/draft/permissions-policy.yml | 8 ++++++++ features/draft/permissions-policy.yml.dist | 24 ++++++++++++++++++++++ scripts/specs.ts | 4 ++++ 5 files changed, 61 insertions(+) create mode 100644 features/draft/feature-policy.yml create mode 100644 features/draft/feature-policy.yml.dist create mode 100644 features/draft/permissions-policy.yml create mode 100644 features/draft/permissions-policy.yml.dist diff --git a/features/draft/feature-policy.yml b/features/draft/feature-policy.yml new file mode 100644 index 00000000000..c918aa4faa2 --- /dev/null +++ b/features/draft/feature-policy.yml @@ -0,0 +1,13 @@ +draft_date: 2025-02-16 +name: Feature policy +description: The `Feature-Policy` response header sets whether a policy-controlled feature, such as an API, may be used in a document. Not to be confused with permissions policy. +spec: https://www.w3.org/TR/2019/WD-feature-policy-1-20190416/ +caniuse: feature-policy +discouraged: + according_to: + - https://github.com/w3c/webappsec-permissions-policy/pull/379 + alternatives: + - permissions-policy +compat_features: + - api.Document.featurePolicy + - api.HTMLIFrameElement.featurePolicy diff --git a/features/draft/feature-policy.yml.dist b/features/draft/feature-policy.yml.dist new file mode 100644 index 00000000000..c2a7e56cd41 --- /dev/null +++ b/features/draft/feature-policy.yml.dist @@ -0,0 +1,12 @@ +# Generated from: feature-policy.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: false + support: + chrome: "74" + chrome_android: "74" + edge: "79" +compat_features: + - api.Document.featurePolicy + - api.HTMLIFrameElement.featurePolicy diff --git a/features/draft/permissions-policy.yml b/features/draft/permissions-policy.yml new file mode 100644 index 00000000000..0866d7767fe --- /dev/null +++ b/features/draft/permissions-policy.yml @@ -0,0 +1,8 @@ +draft_date: 2025-02-16 +name: Permissions policy +description: The `Permissions-Policy` response header sets whether a policy-controlled feature, such as an API, may be used in a document. +spec: https://w3c.github.io/webappsec-permissions-policy/ +caniuse: permissions-policy +compat_features: + - http.headers.Permissions-Policy + - http.headers.Permissions-Policy.wildcards diff --git a/features/draft/permissions-policy.yml.dist b/features/draft/permissions-policy.yml.dist new file mode 100644 index 00000000000..174cd423738 --- /dev/null +++ b/features/draft/permissions-policy.yml.dist @@ -0,0 +1,24 @@ +# Generated from: permissions-policy.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: false + support: + chrome: "108" + chrome_android: "108" + edge: "108" +compat_features: + # baseline: false + # support: + # chrome: "88" + # chrome_android: "88" + # 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 diff --git a/scripts/specs.ts b/scripts/specs.ts index a50fd6ea36d..5c475a4e247 100644 --- a/scripts/specs.ts +++ b/scripts/specs.ts @@ -104,6 +104,10 @@ const defaultAllowlist: allowlistItem[] = [ [ "https://www.w3.org/TR/DOM-Level-2-Style/", "Allowed because the css-object-model-discouraged feature points to it." + ], + [ + "https://www.w3.org/TR/2019/WD-feature-policy-1-20190416/", + "Allowed because feature policy was replaced by permissions policy." ] ]; From 3a3ee24863f1bdba1231f93bdab231f48e154388 Mon Sep 17 00:00:00 2001 From: "Daniel D. Beck" Date: Mon, 17 Feb 2025 16:21:37 +0100 Subject: [PATCH 2/2] Add `FeaturePolicy` interface to feature-policy --- features/draft/feature-policy.yml | 5 +++++ features/draft/feature-policy.yml.dist | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/features/draft/feature-policy.yml b/features/draft/feature-policy.yml index c918aa4faa2..35a51d042e2 100644 --- a/features/draft/feature-policy.yml +++ b/features/draft/feature-policy.yml @@ -10,4 +10,9 @@ discouraged: - permissions-policy compat_features: - api.Document.featurePolicy + - api.FeaturePolicy + - api.FeaturePolicy.allowedFeatures + - api.FeaturePolicy.allowsFeature + - api.FeaturePolicy.features + - api.FeaturePolicy.getAllowlistForFeature - api.HTMLIFrameElement.featurePolicy diff --git a/features/draft/feature-policy.yml.dist b/features/draft/feature-policy.yml.dist index c2a7e56cd41..57c00fbdc1b 100644 --- a/features/draft/feature-policy.yml.dist +++ b/features/draft/feature-policy.yml.dist @@ -9,4 +9,9 @@ status: edge: "79" compat_features: - api.Document.featurePolicy + - api.FeaturePolicy + - api.FeaturePolicy.allowedFeatures + - api.FeaturePolicy.allowsFeature + - api.FeaturePolicy.features + - api.FeaturePolicy.getAllowlistForFeature - api.HTMLIFrameElement.featurePolicy