diff --git a/files/en-us/_redirects.txt b/files/en-us/_redirects.txt
index de3cef343b13d4a..761aee2e0058d0a 100644
--- a/files/en-us/_redirects.txt
+++ b/files/en-us/_redirects.txt
@@ -12002,16 +12002,53 @@
/en-US/docs/Web/HTTP/Controlling_DNS_prefetching /en-US/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control
/en-US/docs/Web/HTTP/Cookies/Cookie_Prefixes /en-US/docs/Web/HTTP/Cookies#Cookie_prefixes
/en-US/docs/Web/HTTP/Evolution_of_HTTP /en-US/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP
+/en-US/docs/Web/HTTP/Feature_Policy /en-US/docs/Web/HTTP/Permissions_Policy
/en-US/docs/Web/HTTP/Gecko_user_agent_string_reference /en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
/en-US/docs/Web/HTTP/HTTP_response_codes /en-US/docs/Web/HTTP/Status
/en-US/docs/Web/HTTP/Headers/Cache-Disposition /en-US/docs/Web/HTTP/Headers/Content-Disposition
/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/navigate-to /en-US/docs/Web/HTTP/Headers/Content-Security-Policy
/en-US/docs/Web/HTTP/Headers/Cookie2 /en-US/docs/Web/HTTP/Headers/Cookie
-/en-US/docs/Web/HTTP/Headers/Feature-Policy/publickey-credentials /en-US/docs/Web/HTTP/Headers/Feature-Policy/publickey-credentials-get
-/en-US/docs/Web/HTTP/Headers/Feature-Policy/vr /en-US/docs/Web/HTTP/Headers/Feature-Policy/xr-spatial-tracking
-/en-US/docs/Web/HTTP/Headers/Feature-Policy/wake-lock /en-US/docs/Web/HTTP/Headers/Feature-Policy/screen-wake-lock
-/en-US/docs/Web/HTTP/Headers/Feature-Policy/webauthn /en-US/docs/Web/HTTP/Headers/Feature-Policy/publickey-credentials-get
-/en-US/docs/Web/HTTP/Headers/Feature-Policy/xr /en-US/docs/Web/HTTP/Headers/Feature-Policy/xr-spatial-tracking
+/en-US/docs/Web/HTTP/Headers/Feature-Policy /en-US/docs/Web/HTTP/Headers/Permissions-Policy
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/accelerometer /en-US/docs/Web/HTTP/Headers/Permissions-Policy/accelerometer
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/ambient-light-sensor /en-US/docs/Web/HTTP/Headers/Permissions-Policy/ambient-light-sensor
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/autoplay /en-US/docs/Web/HTTP/Headers/Permissions-Policy/autoplay
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/battery /en-US/docs/Web/HTTP/Headers/Permissions-Policy/battery
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/camera /en-US/docs/Web/HTTP/Headers/Permissions-Policy/camera
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/display-capture /en-US/docs/Web/HTTP/Headers/Permissions-Policy/display-capture
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/document-domain /en-US/docs/Web/HTTP/Headers/Permissions-Policy/document-domain
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/encrypted-media /en-US/docs/Web/HTTP/Headers/Permissions-Policy/encrypted-media
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/fullscreen /en-US/docs/Web/HTTP/Headers/Permissions-Policy/fullscreen
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/gamepad /en-US/docs/Web/HTTP/Headers/Permissions-Policy/gamepad
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/geolocation /en-US/docs/Web/HTTP/Headers/Permissions-Policy/geolocation
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/gyroscope /en-US/docs/Web/HTTP/Headers/Permissions-Policy/gyroscope
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/layout-animations /en-US/docs/Web/HTTP/Headers/Permissions-Policy
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/legacy-image-formats /en-US/docs/Web/HTTP/Headers/Permissions-Policy
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/magnetometer /en-US/docs/Web/HTTP/Headers/Permissions-Policy/magnetometer
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/microphone /en-US/docs/Web/HTTP/Headers/Permissions-Policy/microphone
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/midi /en-US/docs/Web/HTTP/Headers/Permissions-Policy/midi
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/oversized-images /en-US/docs/Web/HTTP/Headers/Permissions-Policy
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/payment /en-US/docs/Web/HTTP/Headers/Permissions-Policy/payment
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/picture-in-picture /en-US/docs/Web/HTTP/Headers/Permissions-Policy/picture-in-picture
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/publickey-credentials /en-US/docs/Web/HTTP/Headers/Permissions-Policy/publickey-credentials-get
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/publickey-credentials-get /en-US/docs/Web/HTTP/Headers/Permissions-Policy/publickey-credentials-get
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/screen-wake-lock /en-US/docs/Web/HTTP/Headers/Permissions-Policy/screen-wake-lock
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/speaker-selection /en-US/docs/Web/HTTP/Headers/Permissions-Policy/speaker-selection
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/sync-xhr /en-US/docs/Web/HTTP/Headers/Permissions-Policy
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/unoptimized-images /en-US/docs/Web/HTTP/Headers/Permissions-Policy
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/unsized-media /en-US/docs/Web/HTTP/Headers/Permissions-Policy
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/usb /en-US/docs/Web/HTTP/Headers/Permissions-Policy/usb
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/vr /en-US/docs/Web/HTTP/Headers/Permissions-Policy/xr-spatial-tracking
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/wake-lock /en-US/docs/Web/HTTP/Headers/Permissions-Policy/screen-wake-lock
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/web-share /en-US/docs/Web/HTTP/Headers/Permissions-Policy/web-share
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/webauthn /en-US/docs/Web/HTTP/Headers/Permissions-Policy/publickey-credentials-get
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/xr /en-US/docs/Web/HTTP/Headers/Permissions-Policy/xr-spatial-tracking
+/en-US/docs/Web/HTTP/Headers/Feature-Policy/xr-spatial-tracking /en-US/docs/Web/HTTP/Headers/Permissions-Policy/xr-spatial-tracking
+/en-US/docs/Web/HTTP/Headers/Permissions-Policy/layout-animations /en-US/docs/Web/HTTP/Headers/Permissions-Policy
+/en-US/docs/Web/HTTP/Headers/Permissions-Policy/legacy-image-formats /en-US/docs/Web/HTTP/Headers/Permissions-Policy
+/en-US/docs/Web/HTTP/Headers/Permissions-Policy/oversized-images /en-US/docs/Web/HTTP/Headers/Permissions-Policy
+/en-US/docs/Web/HTTP/Headers/Permissions-Policy/sync-xhr /en-US/docs/Web/HTTP/Headers/Permissions-Policy
+/en-US/docs/Web/HTTP/Headers/Permissions-Policy/unoptimized-images /en-US/docs/Web/HTTP/Headers/Permissions-Policy
+/en-US/docs/Web/HTTP/Headers/Permissions-Policy/unsized-media /en-US/docs/Web/HTTP/Headers/Permissions-Policy
/en-US/docs/Web/HTTP/Headers/Public-Key-Pins /en-US/docs/Web/HTTP/Headers/Expect-CT
/en-US/docs/Web/HTTP/Headers/Public-Key-Pins-Report-Only /en-US/docs/Web/HTTP/Headers/Expect-CT
/en-US/docs/Web/HTTP/Headers/Ranges /en-US/docs/Web/HTTP/Headers/Range
diff --git a/files/en-us/_wikihistory.json b/files/en-us/_wikihistory.json
index e0af5998adf3aef..d984fff24496509 100644
--- a/files/en-us/_wikihistory.json
+++ b/files/en-us/_wikihistory.json
@@ -101655,36 +101655,6 @@
"fscholz"
]
},
- "Web/HTTP/Feature_Policy": {
- "modified": "2020-10-18T22:29:08.695Z",
- "contributors": [
- "hamishwillee",
- "mfuji09",
- "Malvoz",
- "old_morfey13",
- "Sheppy",
- "jpchase",
- "leela52452",
- "bershanskiy",
- "ashleybooniphone",
- "fscholz",
- "jpmedley"
- ]
- },
- "Web/HTTP/Feature_Policy/Using_Feature_Policy": {
- "modified": "2020-10-01T23:00:16.945Z",
- "contributors": [
- "hamishwillee",
- "Malvoz",
- "Sheppy",
- "chrisdavidmills",
- "clelland",
- "jpchase",
- "fscholz",
- "mfuji09",
- "jpmedley"
- ]
- },
"Web/HTTP/Headers": {
"modified": "2020-11-16T08:22:37.817Z",
"contributors": [
@@ -102450,147 +102420,6 @@
"modified": "2020-10-15T21:48:40.215Z",
"contributors": ["mfuji09", "fscholz", "Malvoz", "AndrzejSala", "meridius"]
},
- "Web/HTTP/Headers/Feature-Policy": {
- "modified": "2020-10-15T22:07:47.010Z",
- "contributors": [
- "hamishwillee",
- "mfuji09",
- "sideshowbarker",
- "bershanskiy",
- "Malvoz",
- "jpchase",
- "Sheppy",
- "pwdst",
- "fscholz",
- "jpmedley"
- ]
- },
- "Web/HTTP/Headers/Feature-Policy/accelerometer": {
- "modified": "2020-10-15T22:20:16.702Z",
- "contributors": ["bershanskiy"]
- },
- "Web/HTTP/Headers/Feature-Policy/ambient-light-sensor": {
- "modified": "2020-10-15T22:20:15.626Z",
- "contributors": ["verde79", "bershanskiy"]
- },
- "Web/HTTP/Headers/Feature-Policy/autoplay": {
- "modified": "2020-10-15T22:10:28.577Z",
- "contributors": ["bershanskiy", "Sheppy", "fscholz"]
- },
- "Web/HTTP/Headers/Feature-Policy/battery": {
- "modified": "2020-10-15T22:24:54.886Z",
- "contributors": ["mfuji09", "Malvoz", "bershanskiy"]
- },
- "Web/HTTP/Headers/Feature-Policy/camera": {
- "modified": "2020-10-15T22:10:24.420Z",
- "contributors": ["bershanskiy", "Sheppy", "fscholz"]
- },
- "Web/HTTP/Headers/Feature-Policy/display-capture": {
- "modified": "2020-10-15T22:18:20.836Z",
- "contributors": ["sideshowbarker", "bershanskiy", "Sheppy"]
- },
- "Web/HTTP/Headers/Feature-Policy/document-domain": {
- "modified": "2020-10-15T22:11:41.981Z",
- "contributors": ["bershanskiy", "chrisdavidmills", "sideshowbarker"]
- },
- "Web/HTTP/Headers/Feature-Policy/encrypted-media": {
- "modified": "2020-10-15T22:10:28.002Z",
- "contributors": ["mfuji09", "bershanskiy", "fscholz"]
- },
- "Web/HTTP/Headers/Feature-Policy/fullscreen": {
- "modified": "2020-10-15T22:07:59.873Z",
- "contributors": [
- "chrisdavidmills",
- "bershanskiy",
- "fscholz",
- "mfuji09",
- "jpmedley"
- ]
- },
- "Web/HTTP/Headers/Feature-Policy/geolocation": {
- "modified": "2020-10-15T22:07:59.720Z",
- "contributors": ["fscholz", "mfuji09", "jpmedley", "jpchase"]
- },
- "Web/HTTP/Headers/Feature-Policy/gyroscope": {
- "modified": "2020-10-15T22:20:17.468Z",
- "contributors": ["bershanskiy"]
- },
- "Web/HTTP/Headers/Feature-Policy/layout-animations": {
- "modified": "2020-10-15T22:20:14.846Z",
- "contributors": ["bershanskiy"]
- },
- "Web/HTTP/Headers/Feature-Policy/legacy-image-formats": {
- "modified": "2020-10-15T22:20:12.416Z",
- "contributors": ["bershanskiy"]
- },
- "Web/HTTP/Headers/Feature-Policy/magnetometer": {
- "modified": "2020-10-15T22:20:14.856Z",
- "contributors": ["bershanskiy"]
- },
- "Web/HTTP/Headers/Feature-Policy/microphone": {
- "modified": "2020-10-15T22:08:02.300Z",
- "contributors": ["fscholz", "mfuji09", "jpmedley"]
- },
- "Web/HTTP/Headers/Feature-Policy/midi": {
- "modified": "2020-10-15T22:10:24.122Z",
- "contributors": ["mfuji09", "bershanskiy", "fscholz"]
- },
- "Web/HTTP/Headers/Feature-Policy/oversized-images": {
- "modified": "2020-10-15T22:20:15.081Z",
- "contributors": ["bershanskiy"]
- },
- "Web/HTTP/Headers/Feature-Policy/payment": {
- "modified": "2020-10-15T22:10:32.310Z",
- "contributors": ["mfuji09", "bershanskiy", "equalsJeffH", "fscholz"]
- },
- "Web/HTTP/Headers/Feature-Policy/picture-in-picture": {
- "modified": "2020-10-15T22:20:13.631Z",
- "contributors": ["bershanskiy"]
- },
- "Web/HTTP/Headers/Feature-Policy/publickey-credentials-get": {
- "modified": "2020-10-15T22:21:51.682Z",
- "contributors": [
- "sideshowbarker",
- "fscholz",
- "bershanskiy",
- "Sarayutppr",
- "chrisdavidmills",
- "Malvoz"
- ]
- },
- "Web/HTTP/Headers/Feature-Policy/screen-wake-lock": {
- "modified": "2020-10-15T22:31:49.481Z",
- "contributors": ["bershanskiy"]
- },
- "Web/HTTP/Headers/Feature-Policy/sync-xhr": {
- "modified": "2020-10-15T22:20:17.874Z",
- "contributors": ["bershanskiy"]
- },
- "Web/HTTP/Headers/Feature-Policy/unoptimized-images": {
- "modified": "2020-10-15T22:20:17.915Z",
- "contributors": ["bershanskiy"]
- },
- "Web/HTTP/Headers/Feature-Policy/unsized-media": {
- "modified": "2020-10-15T22:20:17.118Z",
- "contributors": ["mozdevcontrib", "bershanskiy"]
- },
- "Web/HTTP/Headers/Feature-Policy/usb": {
- "modified": "2020-10-15T22:20:16.110Z",
- "contributors": ["bershanskiy"]
- },
- "Web/HTTP/Headers/Feature-Policy/web-share": {
- "modified": "2020-12-10T15:06:45.009Z",
- "contributors": [
- "bershanskiy",
- "chrisdavidmills",
- "hamishwillee",
- "ericwilligers"
- ]
- },
- "Web/HTTP/Headers/Feature-Policy/xr-spatial-tracking": {
- "modified": "2020-10-15T22:24:55.820Z",
- "contributors": ["Manishearth", "sideshowbarker", "bershanskiy"]
- },
"Web/HTTP/Headers/Forwarded": {
"modified": "2020-10-15T21:51:50.833Z",
"contributors": [
@@ -102722,6 +102551,123 @@
"teoli"
]
},
+ "Web/HTTP/Headers/Permissions-Policy": {
+ "modified": "2020-10-15T22:07:47.010Z",
+ "contributors": [
+ "hamishwillee",
+ "mfuji09",
+ "sideshowbarker",
+ "bershanskiy",
+ "Malvoz",
+ "jpchase",
+ "Sheppy",
+ "pwdst",
+ "fscholz",
+ "jpmedley"
+ ]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/accelerometer": {
+ "modified": "2020-10-15T22:20:16.702Z",
+ "contributors": ["bershanskiy"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/ambient-light-sensor": {
+ "modified": "2020-10-15T22:20:15.626Z",
+ "contributors": ["verde79", "bershanskiy"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/autoplay": {
+ "modified": "2020-10-15T22:10:28.577Z",
+ "contributors": ["bershanskiy", "Sheppy", "fscholz"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/battery": {
+ "modified": "2020-10-15T22:24:54.886Z",
+ "contributors": ["mfuji09", "Malvoz", "bershanskiy"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/camera": {
+ "modified": "2020-10-15T22:10:24.420Z",
+ "contributors": ["bershanskiy", "Sheppy", "fscholz"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/display-capture": {
+ "modified": "2020-10-15T22:18:20.836Z",
+ "contributors": ["sideshowbarker", "bershanskiy", "Sheppy"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/document-domain": {
+ "modified": "2020-10-15T22:11:41.981Z",
+ "contributors": ["bershanskiy", "chrisdavidmills", "sideshowbarker"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/encrypted-media": {
+ "modified": "2020-10-15T22:10:28.002Z",
+ "contributors": ["mfuji09", "bershanskiy", "fscholz"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/fullscreen": {
+ "modified": "2020-10-15T22:07:59.873Z",
+ "contributors": [
+ "chrisdavidmills",
+ "bershanskiy",
+ "fscholz",
+ "mfuji09",
+ "jpmedley"
+ ]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/geolocation": {
+ "modified": "2020-10-15T22:07:59.720Z",
+ "contributors": ["fscholz", "mfuji09", "jpmedley", "jpchase"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/gyroscope": {
+ "modified": "2020-10-15T22:20:17.468Z",
+ "contributors": ["bershanskiy"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/magnetometer": {
+ "modified": "2020-10-15T22:20:14.856Z",
+ "contributors": ["bershanskiy"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/microphone": {
+ "modified": "2020-10-15T22:08:02.300Z",
+ "contributors": ["fscholz", "mfuji09", "jpmedley"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/midi": {
+ "modified": "2020-10-15T22:10:24.122Z",
+ "contributors": ["mfuji09", "bershanskiy", "fscholz"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/payment": {
+ "modified": "2020-10-15T22:10:32.310Z",
+ "contributors": ["mfuji09", "bershanskiy", "equalsJeffH", "fscholz"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/picture-in-picture": {
+ "modified": "2020-10-15T22:20:13.631Z",
+ "contributors": ["bershanskiy"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/publickey-credentials-get": {
+ "modified": "2020-10-15T22:21:51.682Z",
+ "contributors": [
+ "sideshowbarker",
+ "fscholz",
+ "bershanskiy",
+ "Sarayutppr",
+ "chrisdavidmills",
+ "Malvoz"
+ ]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/screen-wake-lock": {
+ "modified": "2020-10-15T22:31:49.481Z",
+ "contributors": ["bershanskiy"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/usb": {
+ "modified": "2020-10-15T22:20:16.110Z",
+ "contributors": ["bershanskiy"]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/web-share": {
+ "modified": "2020-12-10T15:06:45.009Z",
+ "contributors": [
+ "bershanskiy",
+ "chrisdavidmills",
+ "hamishwillee",
+ "ericwilligers"
+ ]
+ },
+ "Web/HTTP/Headers/Permissions-Policy/xr-spatial-tracking": {
+ "modified": "2020-10-15T22:24:55.820Z",
+ "contributors": ["Manishearth", "sideshowbarker", "bershanskiy"]
+ },
"Web/HTTP/Headers/Pragma": {
"modified": "2020-10-15T21:48:41.171Z",
"contributors": ["fscholz", "teoli"]
@@ -103403,6 +103349,36 @@
"teoli"
]
},
+ "Web/HTTP/Permissions_Policy": {
+ "modified": "2020-10-18T22:29:08.695Z",
+ "contributors": [
+ "hamishwillee",
+ "mfuji09",
+ "Malvoz",
+ "old_morfey13",
+ "Sheppy",
+ "jpchase",
+ "leela52452",
+ "bershanskiy",
+ "ashleybooniphone",
+ "fscholz",
+ "jpmedley"
+ ]
+ },
+ "Web/HTTP/Permissions_Policy/Using_Feature_Policy": {
+ "modified": "2020-10-01T23:00:16.945Z",
+ "contributors": [
+ "hamishwillee",
+ "Malvoz",
+ "Sheppy",
+ "chrisdavidmills",
+ "clelland",
+ "jpchase",
+ "fscholz",
+ "mfuji09",
+ "jpmedley"
+ ]
+ },
"Web/HTTP/Protocol_upgrade_mechanism": {
"modified": "2020-11-29T09:42:13.104Z",
"contributors": [
diff --git a/files/en-us/glossary/forbidden_header_name/index.md b/files/en-us/glossary/forbidden_header_name/index.md
index ac74d856dee1855..5f60539044fe9f4 100644
--- a/files/en-us/glossary/forbidden_header_name/index.md
+++ b/files/en-us/glossary/forbidden_header_name/index.md
@@ -24,10 +24,10 @@ Forbidden header names start with `Proxy-` or `Sec-`, or are one of the followin
- {{HTTPHeader("Date")}}
- {{HTTPHeader("DNT")}}
- {{HTTPHeader("Expect")}}
-- {{HTTPHeader("Feature-Policy")}}
- {{HTTPHeader("Host")}}
- {{HTTPHeader("Keep-Alive")}}
- {{HTTPHeader("Origin")}}
+- {{HTTPHeader("Permissions-Policy")}}
- `Proxy-`
- `Sec-`
- {{HTTPHeader("Referer")}}
diff --git a/files/en-us/mozilla/firefox/experimental_features/index.md b/files/en-us/mozilla/firefox/experimental_features/index.md
index 8f929a7e9a66204..a8e827d151779e1 100644
--- a/files/en-us/mozilla/firefox/experimental_features/index.md
+++ b/files/en-us/mozilla/firefox/experimental_features/index.md
@@ -1921,11 +1921,10 @@ This also changes the console warning; if the upgrade succeeds, the message indi
-### Feature policy
+### Permissions Policy / Feature policy
-[Feature Policy](/en-US/docs/Web/HTTP/Feature_Policy) allows web developers to selectively enable, disable, and modify the behavior of certain features and APIs in the browser. It is similar to CSP but controls features instead of security behavior.
-
-> **Note:** The `Feature-Policy` header has now been renamed to `Permissions-Policy` in the spec, and this article will eventually be updated to reflect that change.
+[Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) allows web developers to selectively enable, disable, and modify the behavior of certain features and APIs in the browser. It is similar to CSP but controls features instead of security behavior.
+Note that this is implemented in Firefox as "**Feature Policy**, the name used in an earlier version of the specification.
diff --git a/files/en-us/web/api/absoluteorientationsensor/absoluteorientationsensor/index.md b/files/en-us/web/api/absoluteorientationsensor/absoluteorientationsensor/index.md
index d8335453b1ddb8d..2ed7edd5c26021b 100644
--- a/files/en-us/web/api/absoluteorientationsensor/absoluteorientationsensor/index.md
+++ b/files/en-us/web/api/absoluteorientationsensor/absoluteorientationsensor/index.md
@@ -19,8 +19,6 @@ browser-compat: api.AbsoluteOrientationSensor.AbsoluteOrientationSensor
The **`AbsoluteOrientationSensor()`** constructor creates a new {{domxref("AbsoluteOrientationSensor")}} object which describes the device's physical orientation in relation to the Earth's reference coordinate system.
-If a feature policy blocks use of a feature it is because your code is inconsistent with the policies set on your server. This is not something that would ever be shown to a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
-
## Syntax
```js-nolint
diff --git a/files/en-us/web/api/absoluteorientationsensor/index.md b/files/en-us/web/api/absoluteorientationsensor/index.md
index 19c77e38e40a496..44b9386edf9c315 100644
--- a/files/en-us/web/api/absoluteorientationsensor/index.md
+++ b/files/en-us/web/api/absoluteorientationsensor/index.md
@@ -22,7 +22,7 @@ The **`AbsoluteOrientationSensor`** interface of the [Sensor APIs](/en-US/docs/W
To use this sensor, the user must grant permission to the `'accelerometer'`, `'gyroscope'`, and `'magnetometer'` device sensors through the [Permissions API](/en-US/docs/Web/API/Permissions_API).
-If a feature policy blocks use of a feature it is because your code is inconsistent with the policies set on your server. This is not something that would ever be shown to a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
+This feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.
{{InheritanceDiagram}}
diff --git a/files/en-us/web/api/accelerometer/accelerometer/index.md b/files/en-us/web/api/accelerometer/accelerometer/index.md
index bc08a9184413dbe..ba7c22615f3be85 100644
--- a/files/en-us/web/api/accelerometer/accelerometer/index.md
+++ b/files/en-us/web/api/accelerometer/accelerometer/index.md
@@ -20,8 +20,6 @@ browser-compat: api.Accelerometer.Accelerometer
The **`Accelerometer()`** constructor creates a new {{domxref("Accelerometer")}} object which returns the acceleration of the device along all three axes at the time it is read.
-If a feature policy blocks use of a feature it is because your code is inconsistent with the policies set on your server. This is not something that would ever be shown to a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
-
## Syntax
```js-nolint
@@ -40,6 +38,11 @@ new Accelerometer(options)
- `referenceFrame`
- : Either `'device'` or `'screen'`. The default is `'device'`.
+### Exceptions
+
+- `SecurityError` {{domxref("DOMException")}}
+ - : Use of this feature was blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy).
+
## Specifications
{{Specifications}}
diff --git a/files/en-us/web/api/accelerometer/index.md b/files/en-us/web/api/accelerometer/index.md
index 58ef0b434b0fa17..bb37a6c816330e1 100644
--- a/files/en-us/web/api/accelerometer/index.md
+++ b/files/en-us/web/api/accelerometer/index.md
@@ -22,7 +22,7 @@ The **`Accelerometer`** interface of the [Sensor APIs](/en-US/docs/Web/API/Senso
To use this sensor, the user must grant permission to the `'accelerometer'`, device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API).
-If a feature policy blocks the use of a feature, it is because your code is inconsistent with the policies set on your server. This is not something that would ever be shown to a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
+This feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.
{{InheritanceDiagram}}
diff --git a/files/en-us/web/api/accelerometer/x/index.md b/files/en-us/web/api/accelerometer/x/index.md
index d39b3fc17c2b165..0ba5d656ea205a7 100644
--- a/files/en-us/web/api/accelerometer/x/index.md
+++ b/files/en-us/web/api/accelerometer/x/index.md
@@ -19,9 +19,7 @@ browser-compat: api.Accelerometer.x
{{APIRef("Sensor API")}}{{SeeCompatTable}}
-The **`x`** read-only property of the {{domxref("Accelerometer")}} interface returns a double precision integer containing the acceleration of the device along its x axis.
-
-If a feature policy blocks use of a feature it is because your code is inconsistent with the policies set on your server. This is not something that would ever be shown to a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
+The **`x`** read-only property of the {{domxref("Accelerometer")}} interface returns a number specifying the acceleration of the device along its x-axis.
## Value
diff --git a/files/en-us/web/api/accelerometer/y/index.md b/files/en-us/web/api/accelerometer/y/index.md
index f8f1628472f13ce..69777bd0f4dfb1f 100644
--- a/files/en-us/web/api/accelerometer/y/index.md
+++ b/files/en-us/web/api/accelerometer/y/index.md
@@ -19,9 +19,7 @@ browser-compat: api.Accelerometer.y
{{APIRef("Sensor API")}}{{SeeCompatTable}}
-The **`y`** read-only property of the {{domxref("Accelerometer")}} interface returns a double precision integer containing the acceleration of the device along its y axis.
-
-If a feature policy blocks use of a feature it is because your code is inconsistent with the policies set on your server. This is not something that would ever be shown to a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
+The **`y`** read-only property of the {{domxref("Accelerometer")}} interface returns a number specifying the acceleration of the device along its y-axis.
## Value
diff --git a/files/en-us/web/api/accelerometer/z/index.md b/files/en-us/web/api/accelerometer/z/index.md
index 042d6691d7c68cd..53c024861979ad1 100644
--- a/files/en-us/web/api/accelerometer/z/index.md
+++ b/files/en-us/web/api/accelerometer/z/index.md
@@ -19,9 +19,7 @@ browser-compat: api.Accelerometer.z
{{APIRef("Sensor API")}}{{SeeCompatTable}}
-The **`z`** read-only property of the {{domxref("Accelerometer")}} interface returns a double precision integer containing the acceleration of the device along its z axis.
-
-If a feature policy blocks use of a feature it is because your code is inconsistent with the policies set on your server. This is not something that would ever be shown to a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
+The **`z`** read-only property of the {{domxref("Accelerometer")}} interface returns a number specifying the acceleration of the device along its z-axis.
## Value
diff --git a/files/en-us/web/api/ambientlightsensor/ambientlightsensor/index.md b/files/en-us/web/api/ambientlightsensor/ambientlightsensor/index.md
index 92c2aba73485912..5bbf71401f12a8b 100644
--- a/files/en-us/web/api/ambientlightsensor/ambientlightsensor/index.md
+++ b/files/en-us/web/api/ambientlightsensor/ambientlightsensor/index.md
@@ -16,8 +16,6 @@ browser-compat: api.AmbientLightSensor.AmbientLightSensor
The **`AmbientLightSensor()`** constructor creates a new {{domxref("AmbientLightSensor")}} object, which returns the current light level or illuminance of the ambient light around the hosting device.
-If a feature policy blocks use of a feature it is because your code is inconsistent with the policies set on your server. This is not something that would ever be shown to a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
-
## Syntax
```js-nolint
@@ -34,6 +32,11 @@ new AmbientLightSensor(options)
- `frequency`
- : The desired number of times per second a sample should be taken, meaning the number of times per second that {{domxref('sensor.reading_event', 'reading')}} event will be called. A whole number or decimal may be used, the latter for frequencies less than a second. The actual reading frequency depends on the device hardware and consequently may be less than requested.
+### Exceptions
+
+- `SecurityError` {{domxref("DOMException")}}
+ - : Use of this feature was blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy).
+
## Specifications
{{Specifications}}
diff --git a/files/en-us/web/api/ambientlightsensor/illuminance/index.md b/files/en-us/web/api/ambientlightsensor/illuminance/index.md
index 28eb43f0aef2218..c9cab15331218c5 100644
--- a/files/en-us/web/api/ambientlightsensor/illuminance/index.md
+++ b/files/en-us/web/api/ambientlightsensor/illuminance/index.md
@@ -20,8 +20,6 @@ browser-compat: api.AmbientLightSensor.illuminance
The **`illuminance`** property of the {{domxref("AmbientLightSensor")}} interface returns the current light level in [lux](https://en.wikipedia.org/wiki/Lux) of the ambient light level around the hosting device.
-If a feature policy blocks use of a feature it is because your code is inconsistent with the policies set on your server. This is not something that would ever be shown to a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
-
## Value
A {{jsxref('Number')}} indicating the current light level in lux.
diff --git a/files/en-us/web/api/ambientlightsensor/index.md b/files/en-us/web/api/ambientlightsensor/index.md
index 60a4e92525a1107..8c13cf343e6029c 100644
--- a/files/en-us/web/api/ambientlightsensor/index.md
+++ b/files/en-us/web/api/ambientlightsensor/index.md
@@ -22,7 +22,7 @@ The **`AmbientLightSensor`** interface of the [Sensor APIs](/en-US/docs/Web/API/
To use this sensor, the user must grant permission to the `'ambient-light-sensor'` device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API).
-If a feature policy blocks use of a feature it is because your code is inconsistent with the policies set on your server. This is not something that would ever be shown to a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
+This feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.
{{InheritanceDiagram}}
diff --git a/files/en-us/web/api/credentialscontainer/get/index.md b/files/en-us/web/api/credentialscontainer/get/index.md
index 9d501ae57eebd88..43e2c15bf5a5884 100644
--- a/files/en-us/web/api/credentialscontainer/get/index.md
+++ b/files/en-us/web/api/credentialscontainer/get/index.md
@@ -101,6 +101,11 @@ A {{jsxref("Promise")}} that resolves with a {{domxref("Credential")}} instance
matches the provided parameters. If a single Credential cannot be unambiguously
obtained, the Promise will resolve to null.
+### Exceptions
+
+- `SecurityError` {{domxref("DOMException")}}
+ - : Use of this feature was blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy).
+
## Specifications
{{Specifications}}
@@ -111,5 +116,5 @@ obtained, the Promise will resolve to null.
## See also
-- {{HTTPHeader("Feature-Policy")}} directive
- {{HTTPHeader("Feature-Policy/publickey-credentials-get","publickey-credentials-get")}}
+- {{HTTPHeader("Permissions-Policy")}} directive
+ {{HTTPHeader("Permissions-Policy/publickey-credentials-get","publickey-credentials-get")}}
diff --git a/files/en-us/web/api/document/domain/index.md b/files/en-us/web/api/document/domain/index.md
index b2bd1acc92d2733..42fbe2a34ccbdbc 100644
--- a/files/en-us/web/api/document/domain/index.md
+++ b/files/en-us/web/api/document/domain/index.md
@@ -22,6 +22,11 @@ document, as used by the [same-origin policy](/en-US/docs/Web/Security/Same-orig
A string.
+### Exceptions
+
+- `SecurityError` {{domxref("DOMException")}}
+ - : Use of this feature was blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy).
+
## Examples
### Getting the domain
@@ -117,8 +122,8 @@ blanket exposure of all data caused by `document.domain`.
The setter will throw a "`SecurityError`" {{domxref("DOMException")}} in
several cases:
-- The {{httpheader('Feature-Policy/document-domain','document-domain')}}
- {{HTTPHeader("Feature-Policy")}} is disabled.
+- The {{httpheader('Permissions-Policy/document-domain','document-domain')}}
+ {{HTTPHeader("Permissions-Policy")}} is disabled.
- The document is inside a sandboxed {{htmlelement("iframe")}}.
- The document has no {{glossary("browsing context")}}.
- The document's [effective domain](https://html.spec.whatwg.org/multipage/origin.html#concept-origin-effective-domain) is `null`.
diff --git a/files/en-us/web/api/document/featurepolicy/index.md b/files/en-us/web/api/document/featurepolicy/index.md
index eb9fd2189469eb1..1865d1d440f7ee9 100644
--- a/files/en-us/web/api/document/featurepolicy/index.md
+++ b/files/en-us/web/api/document/featurepolicy/index.md
@@ -6,7 +6,7 @@ tags:
- API
- Document
- Feature Policy
- - Feature-Policy
+ - Permissions-Policy
- Reference
- Property
- Experimental
@@ -15,11 +15,11 @@ browser-compat: api.Document.featurePolicy
{{APIRef("Feature Policy")}}{{SeeCompatTable}}
-The **`featurePolicy`** read-only property of the {{domxref("Document")}} interface returns the {{domxref("FeaturePolicy")}} interface which provides a simple API for inspecting the feature policies applied to a specific document.
+The **`featurePolicy`** read-only property of the {{domxref("Document")}} interface returns the {{domxref("FeaturePolicy")}} interface which provides a simple API for inspecting the [Permissions Policies](/en-US/docs/Web/HTTP/Permissions_Policy) applied to a specific document.
## Value
-A {{domxref("FeaturePolicy")}} object that can be used to inspect the Feature Policy settings applied to the document.
+A {{domxref("FeaturePolicy")}} object that can be used to inspect the Permissions Policy settings applied to the document.
## Specifications
diff --git a/files/en-us/web/api/document/pictureinpictureenabled/index.md b/files/en-us/web/api/document/pictureinpictureenabled/index.md
index efb17b516189308..042b1cbd063fcdc 100644
--- a/files/en-us/web/api/document/pictureinpictureenabled/index.md
+++ b/files/en-us/web/api/document/pictureinpictureenabled/index.md
@@ -23,7 +23,7 @@ The read-only
available.
Picture-in-Picture mode is available by default unless specified
-otherwise by a [Feature-Policy](/en-US/docs/Web/HTTP/Headers/Feature-Policy/picture-in-picture).
+otherwise by a [Permissions-Policy](/en-US/docs/Web/HTTP/Headers/Permissions-Policy/picture-in-picture).
Although this property is read-only, it will not throw if it is modified (even in
strict mode); the setter is a no-operation and will be ignored.
@@ -39,7 +39,7 @@ available, this value is `false`.
In this example, before attempting to enter picture-in-picture mode for a
{{htmlElement("video")}} element the value of `pictureInPictureEnabled` is
-checked, in order to avoid making the call if the feature is not available.
+checked, to avoid making the call if the feature is not available.
```js
function requestPictureInPicture() {
diff --git a/files/en-us/web/api/document/requeststorageaccess/index.md b/files/en-us/web/api/document/requeststorageaccess/index.md
index 96ccc8c01fd6366..785fdcbcc3097c4 100644
--- a/files/en-us/web/api/document/requeststorageaccess/index.md
+++ b/files/en-us/web/api/document/requeststorageaccess/index.md
@@ -55,7 +55,7 @@ Access to cross-site cookies is granted to iframes based on a number of prerequi
2. The document or the top-level document must not have a null origin.
3. The document's window must be a [secure context](/en-US/docs/Web/Security/Secure_Contexts).
4. If the document is sandboxed, it must have the `allow-storage-access-by-user-activation` token.
-5. The document must pass additional browser-specific checks. Examples: allow lists, block lists, on-device classification, user settings, anti-[clickjacking](/en-US/docs/Glossary/Clickjacking) heuristics, or prompting the user for explicit permission.
+5. The document must pass additional browser-specific checks. Examples: allowlists, blocklists, on-device classification, user settings, anti-[clickjacking](/en-US/docs/Glossary/Clickjacking) heuristics, or prompting the user for explicit permission.
## Specifications
diff --git a/files/en-us/web/api/element/requestfullscreen/index.md b/files/en-us/web/api/element/requestfullscreen/index.md
index 9723c78f8520b20..5a9cf9e26928663 100644
--- a/files/en-us/web/api/element/requestfullscreen/index.md
+++ b/files/en-us/web/api/element/requestfullscreen/index.md
@@ -76,8 +76,8 @@ returned. The rejection handler receives one of the following exception values:_
- The document containing the element isn't fully active; that is, it's not the
current active document.
- The element is not contained by a document.
- - The element is not permitted to use the `"fullscreen"` feature,
- either because of Feature Policy configuration or other access control features.
+ - The element is not permitted to use the `fullscreen` feature,
+ either because of [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) configuration or other access control features.
- The element and its document are the same node.
## Security
@@ -98,8 +98,7 @@ simple requirements:
{{HTMLElement("iframe")}} which has the {{htmlattrxref("allowfullscreen","iframe")}}
attribute applied to it.
-Additionally, of course, the Feature Policy `"fullscreen"` permission must
-be granted.
+Additionally, any set Permissions Policies must allow the use of this feature.
### Detecting fullscreen activation
diff --git a/files/en-us/web/api/featurepolicy/allowedfeatures/index.md b/files/en-us/web/api/featurepolicy/allowedfeatures/index.md
index ee6a2ddccc80b6c..af4de6499d7c0bf 100644
--- a/files/en-us/web/api/featurepolicy/allowedfeatures/index.md
+++ b/files/en-us/web/api/featurepolicy/allowedfeatures/index.md
@@ -6,8 +6,8 @@ tags:
- API
- Directive
- Feature Policy
- - Feature-Policy
- FeaturePolicy
+ - Permissions-Policy
- Reference
- Experimental
browser-compat: api.FeaturePolicy.allowedFeatures
@@ -17,8 +17,8 @@ browser-compat: api.FeaturePolicy.allowedFeatures
The **`allowedFeatures()`** method of
the {{DOMxRef("FeaturePolicy")}} interface returns a list of directive names of all
-features allowed by the feature policy.enables introspection of individual directives
-of the Feature Policy it is run on. As such, `allowedFeatures()` method
+features allowed by the [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy). This enables introspection of individual directives
+of the Permissions Policy it is run on. As such, `allowedFeatures()` method
returns a subset of directives returned by {{DOMxRef("FeaturePolicy.features",
"features()")}}.
@@ -34,8 +34,8 @@ None.
### Return value
-An array of strings representing the Feature Policy directive names that are allowed by
-the Feature Policy this method is called on.
+An array of strings representing the Permissions Policy directive names that are allowed by
+the Permissions Policy this method is called on.
## Example
@@ -44,7 +44,7 @@ note that these features might be restricted by the Permissions API, if the user
grant the corresponding permission yet.
```js
-// First, get the Feature Policy object
+// First, get the Permissions Policy object
const featurePolicy = document.featurePolicy
// Then query feature for specific
diff --git a/files/en-us/web/api/featurepolicy/allowsfeature/index.md b/files/en-us/web/api/featurepolicy/allowsfeature/index.md
index 7edc750b0ae2b18..0854f746ade5afa 100644
--- a/files/en-us/web/api/featurepolicy/allowsfeature/index.md
+++ b/files/en-us/web/api/featurepolicy/allowsfeature/index.md
@@ -9,7 +9,7 @@ browser-compat: api.FeaturePolicy.allowsFeature
The **`allowsFeature()`** method of
the {{DOMxRef("FeaturePolicy")}} interface enables introspection of individual
-directives of the Feature Policy it is run on. It returns a {{JSxRef("Boolean")}}
+directives of the [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) it is run on. It returns a {{JSxRef("Boolean")}}
that is `true` if and only if the specified feature is allowed in the
specified context (or the default context if no context is specified).
@@ -43,7 +43,7 @@ allowed.
## Example
The following example queries whether or not the document is allowed to use camera API
-by the Feature Policy. Please note that Camera API might be restricted by the
+by the Permissions Policy. Please note that Camera API might be restricted by the
Permissions API, if the user did not grant the corresponding permission yet.
```js
diff --git a/files/en-us/web/api/featurepolicy/features/index.md b/files/en-us/web/api/featurepolicy/features/index.md
index 849b669c54b8f45..2a89d026e6c2584 100644
--- a/files/en-us/web/api/featurepolicy/features/index.md
+++ b/files/en-us/web/api/featurepolicy/features/index.md
@@ -10,7 +10,7 @@ browser-compat: api.FeaturePolicy.features
The **`features()`** method of the
{{DOMxRef("FeaturePolicy")}} interface returns a list of names of all features
supported by the User Agent. Feature whose name appears on the list might not be
-allowed by the Feature Policy of the current execution context and/or might not be
+allowed by the [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) of the current execution context and/or might not be
accessible because of user's permissions.
## Syntax
@@ -25,18 +25,18 @@ None.
### Return value
-A list of strings that represent names of all Feature Policy directives supported by
-the User Agent.
+A list of strings that represent names of all Permissions Policy directives supported by
+the user agent.
## Example
The following example logs all the supported directives in the console.
```js
-// Get the Feature Policy object
+// Get the FeaturePolicy object
const featurePolicy = document.featurePolicy
-// Retrieve the list of all supported Feature Policy directives
+// Retrieve the list of all supported Permissions Policy directives
const supportedDirectives = featurePolicy.features()
// Print out each directive into the console
diff --git a/files/en-us/web/api/featurepolicy/getallowlistforfeature/index.md b/files/en-us/web/api/featurepolicy/getallowlistforfeature/index.md
index 363a40873aa7b30..7fe8c16ee97f5b1 100644
--- a/files/en-us/web/api/featurepolicy/getallowlistforfeature/index.md
+++ b/files/en-us/web/api/featurepolicy/getallowlistforfeature/index.md
@@ -5,7 +5,7 @@ page-type: web-api-instance-method
tags:
- API
- Feature Policy
- - Feature-Policy
+ - Permissions-Policy
- Reference
- Experimental
browser-compat: api.FeaturePolicy.getAllowlistForFeature
@@ -14,8 +14,7 @@ browser-compat: api.FeaturePolicy.getAllowlistForFeature
{{APIRef("Feature Policy API")}}{{SeeCompatTable}}
The **`getAllowlistForFeature()`**
-method of the {{DOMxRef("FeaturePolicy")}} allows query of the allow list for a
-specific feature for the current Feature Policy.
+method of the {{DOMxRef("FeaturePolicy")}} interface enables querying of the allowlist for a specific feature for the current Permissions Policy.
## Syntax
@@ -31,26 +30,25 @@ A specific feature name must be specified.
### Return value
-An [Allow list](/en-US/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy) for the
+An [allowlist](/en-US/docs/Web/HTTP/Permissions_Policy/#allowlists) for the
specified feature.
## Errors
-The function will raise a warning if the specified Feature Policy directive name is not
+The function will raise a warning if the specified Permissions Policy directive name is not
known. However, it will also return empty array, indicating that no origin is allowed to
use the feature.
## Example
The following example prints all the origins that are allowed to use Camera API by the
-Feature Policy. Please note that Camera API might be restricted by the Permissions API,
-if the user did not grant the corresponding permission yet.
+Permissions Policy. Please note that Camera API might also be restricted by the [Permissions API](/en-US/docs/Web/API/Permissions_API), if the user did not grant the corresponding permission.
```js
-// First, get the Feature Policy object
+// First, get the FeaturePolicy object
const featurePolicy = document.featurePolicy
-// Then query feature for specific
+// Query for specific feature
const allowlist = featurePolicy.getAllowlistForFeature("camera")
for (const origin of allowlist) {
diff --git a/files/en-us/web/api/featurepolicy/index.md b/files/en-us/web/api/featurepolicy/index.md
index 2e428ff9158267e..9c04b5e372970f7 100644
--- a/files/en-us/web/api/featurepolicy/index.md
+++ b/files/en-us/web/api/featurepolicy/index.md
@@ -5,10 +5,10 @@ page-type: web-api-interface
tags:
- API
- Feature Policy
- - Feature-Policy
- FeaturePolicy
- Interface
- Permissions
+ - Permissions-Policy
- Privileges
- Reference
- access
@@ -19,18 +19,18 @@ browser-compat: api.FeaturePolicy
{{APIRef("Feature Policy")}}{{SeeCompatTable}}
-The `FeaturePolicy` interface of the [Feature Policy API](/en-US/docs/Web/HTTP/Feature_Policy) represents the set of policies applied to the current execution context.
+The `FeaturePolicy` interface represents the set of [Permissions Policies](/en-US/docs/Web/HTTP/Permissions_Policy) applied to the current execution context.
-## FeaturePolicy Methods
+## Instance methods
- {{DOMxRef("FeaturePolicy.allowsFeature")}} {{Experimental_Inline}}
- : Returns a Boolean that indicates whether or not a particular feature is enabled in the specified context.
- {{DOMxRef("FeaturePolicy.features")}} {{Experimental_Inline}}
- - : Returns a list of names of all features supported by the User Agent. Feature whose name appears on the list might not be allowed by the Feature Policy of the current execution context and/or might not be accessible because of user's permissions.
+ - : Returns a list of names of all features supported by the User Agent. Features whose names appear on the list might not be allowed by the Permissions Policy of the current execution context and/or might be restricted by user-granted permissions.
- {{DOMxRef("FeaturePolicy.allowedFeatures")}} {{Experimental_Inline}}
- - : Returns a list of names of all features supported by the User Agent and allowed by the Feature Policy. Note that features appearing on this list might still be behind a user permission.
+ - : Returns a list of names of all features supported by the User Agent and allowed by the Permissions Policy. Note that features appearing on this list might still be behind a user permission.
- {{DOMxRef("FeaturePolicy.getAllowlistForFeature")}} {{Experimental_Inline}}
- - : Returns the Allow list for the specified feature.
+ - : Returns the allow for the specified feature.
## Specifications
@@ -42,5 +42,5 @@ The `FeaturePolicy` interface of the [Feature Policy API](/en-US/docs/Web/HTTP/F
## See also
-- {{HTTPHeader("Feature-Policy")}}
+- {{HTTPHeader("Permissions-Policy")}}
- [Privacy, permissions, and information security](/en-US/docs/Web/Privacy)
diff --git a/files/en-us/web/api/fullscreen_api/index.md b/files/en-us/web/api/fullscreen_api/index.md
index 168a60ad312e8c7..8f633512520120b 100644
--- a/files/en-us/web/api/fullscreen_api/index.md
+++ b/files/en-us/web/api/fullscreen_api/index.md
@@ -79,9 +79,7 @@ _The Fullscreen API defines two events which can be used to detect when fullscre
## Controlling access
-The availability of fullscreen mode can be controlled using [Feature Policy](/en-US/docs/Web/HTTP/Feature_Policy). The fullscreen mode feature is identified by the string `"fullscreen"`, with a default allow-list value of `"self"`, meaning that fullscreen mode is permitted in top-level document contexts, as well as to nested browsing contexts loaded from the same origin as the top-most document.
-
-See [Using Feature Policy](/en-US/docs/Web/HTTP/Feature_Policy/Using_Feature_Policy) to learn more about using Feature Policy to control access to an API.
+The availability of fullscreen mode can be controlled using a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy). The fullscreen mode feature is identified by the string `"fullscreen"`, with a default allowlist value of `"self"`, meaning that fullscreen mode is permitted in top-level document contexts, as well as to nested browsing contexts loaded from the same origin as the top-most document.
## Usage notes
diff --git a/files/en-us/web/api/geolocationpositionerror/index.md b/files/en-us/web/api/geolocationpositionerror/index.md
index ec5b38ad20062ad..8319a59ac865d8b 100644
--- a/files/en-us/web/api/geolocationpositionerror/index.md
+++ b/files/en-us/web/api/geolocationpositionerror/index.md
@@ -25,7 +25,7 @@ _The `GeolocationPositionError` interface doesn't inherit any property._
| Value | Associated constant | Description |
| ----- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------- |
- | `1` | `PERMISSION_DENIED` | The acquisition of the geolocation information failed because the page didn't have the permission to do it. |
+ | `1` | `PERMISSION_DENIED` | The acquisition of the geolocation information failed because the page didn't have the necessary permissions, for example because it is blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) |
| `2` | `POSITION_UNAVAILABLE` | The acquisition of the geolocation failed because at least one internal source of position returned an internal error. |
| `3` | `TIMEOUT` | The time allowed to acquire the geolocation was reached before the information was obtained. |
diff --git a/files/en-us/web/api/gravitysensor/gravitysensor/index.md b/files/en-us/web/api/gravitysensor/gravitysensor/index.md
index 2f9dad61dc40551..2dd9fd063f40490 100644
--- a/files/en-us/web/api/gravitysensor/gravitysensor/index.md
+++ b/files/en-us/web/api/gravitysensor/gravitysensor/index.md
@@ -49,9 +49,7 @@ new GravitySensor(options)
### Exceptions
- `SecurityError` {{domxref("DOMException")}}
- - : Use of this feature was blocked by a feature policy. If a feature policy blocks use of a feature,
- it is because your code is inconsistent with the policies set on your server.
- This is not something that would ever be shown to a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
+ - : Use of this feature was blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy).
## Specifications
diff --git a/files/en-us/web/api/gravitysensor/index.md b/files/en-us/web/api/gravitysensor/index.md
index 86fa33a9d04b1db..f2eb0fdb5fcb648 100644
--- a/files/en-us/web/api/gravitysensor/index.md
+++ b/files/en-us/web/api/gravitysensor/index.md
@@ -20,7 +20,7 @@ browser-compat: api.GravitySensor
The **`GravitySensor`** interface of the [Sensor APIs](/en-US/docs/Web/API/Sensor_APIs) provides on each reading the gravity applied to the device along all three axes.
-To use this sensor, the user must grant permission to the `'accelerometer'` device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API).
+To use this sensor, the user must grant permission to the `'accelerometer'` device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API). In addition, this feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.
{{InheritanceDiagram}}
diff --git a/files/en-us/web/api/gyroscope/gyroscope/index.md b/files/en-us/web/api/gyroscope/gyroscope/index.md
index 163c9294a249626..21c7db54d5df41f 100644
--- a/files/en-us/web/api/gyroscope/gyroscope/index.md
+++ b/files/en-us/web/api/gyroscope/gyroscope/index.md
@@ -20,10 +20,6 @@ The **`Gyroscope()`** constructor
creates a new {{domxref("Gyroscope")}} object which provides on each reading the
angular velocity of the device along all three axes.
-If a feature policy blocks use of a feature, it is because your code is inconsistent
-with the policies set on your server. This is not something that would ever be shown to
-a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
-
## Syntax
```js-nolint
@@ -47,6 +43,11 @@ new Gyroscope(options)
- : Either `'device'` or
`'screen'`. The default is `'device'`.
+### Exceptions
+
+- `SecurityError` {{domxref("DOMException")}}
+ - : Use of this feature was blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy).
+
## Specifications
{{Specifications}}
diff --git a/files/en-us/web/api/gyroscope/index.md b/files/en-us/web/api/gyroscope/index.md
index 61ba006484124d0..595c8e69347696c 100644
--- a/files/en-us/web/api/gyroscope/index.md
+++ b/files/en-us/web/api/gyroscope/index.md
@@ -19,9 +19,7 @@ browser-compat: api.Gyroscope
The **`Gyroscope`** interface of the [Sensor APIs](/en-US/docs/Web/API/Sensor_APIs) provides on each reading the angular velocity of the device along all three axes.
-To use this sensor, the user must grant permission to the `'gyroscope'` device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API).
-
-If a feature policy blocks use of a feature it is because your code is inconsistent with the policies set on your server. This is not something that would ever be shown to a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
+To use this sensor, the user must grant permission to the `'gyroscope'` device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API). In addition, this feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.
{{InheritanceDiagram}}
diff --git a/files/en-us/web/api/gyroscope/x/index.md b/files/en-us/web/api/gyroscope/x/index.md
index 8fcf9ecb8e3bbf1..b827fb4a5a39ef7 100644
--- a/files/en-us/web/api/gyroscope/x/index.md
+++ b/files/en-us/web/api/gyroscope/x/index.md
@@ -18,12 +18,8 @@ browser-compat: api.Gyroscope.x
{{APIRef("Sensor API")}}
The **`x`** read-only property of the
-{{domxref("Gyroscope")}} interface returns a double precision integer containing the
-angular velocity of the device along the its x axis.
-
-If a feature policy blocks use of a feature it is because your code is inconsistent
-with the policies set on your server. This is not something that would ever be shown to
-a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
+{{domxref("Gyroscope")}} interface returns a number specifying the
+angular velocity of the device along its x-axis.
## Value
diff --git a/files/en-us/web/api/gyroscope/y/index.md b/files/en-us/web/api/gyroscope/y/index.md
index 85e78e3228c5cf1..1efb1acbc77ea94 100644
--- a/files/en-us/web/api/gyroscope/y/index.md
+++ b/files/en-us/web/api/gyroscope/y/index.md
@@ -17,13 +17,7 @@ browser-compat: api.Gyroscope.y
{{APIRef("Sensor API")}}
-The **`y`** read-only property of the
-{{domxref("Gyroscope")}} interface returns a double precision integer containing the
-angular velocity of the device along the its y axis.
-
-If a feature policy blocks use of a feature it is because your code is inconsistent
-with the policies set on your server. This is not something that would ever be shown to
-a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
+The **`y`** read-only property of the {{domxref("Gyroscope")}} interface returns a number specifying the angular velocity of the device along its y-axis.
## Value
diff --git a/files/en-us/web/api/gyroscope/z/index.md b/files/en-us/web/api/gyroscope/z/index.md
index 22856da58b60233..f68413a91fcefef 100644
--- a/files/en-us/web/api/gyroscope/z/index.md
+++ b/files/en-us/web/api/gyroscope/z/index.md
@@ -18,12 +18,8 @@ browser-compat: api.Gyroscope.z
{{APIRef("Sensor API")}}
The **`z`** read-only property of the
-{{domxref("Gyroscope")}} interface returns a double precision integer containing the
-angular velocity of the device along the its z axis.
-
-If a feature policy blocks use of a feature it is because your code is inconsistent
-with the policies set on your server. This is not something that would ever be shown to
-a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
+{{domxref("Gyroscope")}} interface returns a number specifying the
+angular velocity of the device along its z-axis.
## Value
diff --git a/files/en-us/web/api/htmliframeelement/featurepolicy/index.md b/files/en-us/web/api/htmliframeelement/featurepolicy/index.md
index 8057d74d49f9acc..915d36cd72887a0 100644
--- a/files/en-us/web/api/htmliframeelement/featurepolicy/index.md
+++ b/files/en-us/web/api/htmliframeelement/featurepolicy/index.md
@@ -5,7 +5,7 @@ page-type: web-api-instance-property
tags:
- API
- Feature Policy
- - Feature-Policy
+ - Permissions-Policy
- HTMLIFrameElement
- Policy
- Property
@@ -18,12 +18,12 @@ browser-compat: api.HTMLIFrameElement.featurePolicy
The **`featurePolicy`** read-only
property of the {{DOMxRef("HTMLIFrameElement")}} interface returns the
{{DOMxRef("FeaturePolicy")}} interface which provides a simple API for introspecting
-the feature policies applied to a specific frame.
+the [Permissions Policies](/en-US/docs/Web/HTTP/Permissions_Policy) applied to a specific frame.
## Value
A [`FeaturePolicy`](/en-US/docs/Web/API/FeaturePolicy) object
-that can be used to inspect the Feature Policy settings applied to the frame.
+that can be used to inspect the Permissions Policy settings applied to the frame.
## Specifications
diff --git a/files/en-us/web/api/htmliframeelement/index.md b/files/en-us/web/api/htmliframeelement/index.md
index 67a54b09b6b8f3c..a7ba3f7cb8a90f4 100644
--- a/files/en-us/web/api/htmliframeelement/index.md
+++ b/files/en-us/web/api/htmliframeelement/index.md
@@ -47,7 +47,7 @@ _Inherits properties from its parent, {{domxref("HTMLElement")}}_.
- {{domxref("HTMLIFrameElement.name")}}
- : A string that reflects the {{htmlattrxref("name", "iframe")}} HTML attribute, containing a name by which to refer to the frame.
- {{domxref("HTMLIFrameElement.featurePolicy")}} {{ReadOnlyInline}} {{Experimental_Inline}}
- - : Returns the {{domxref("FeaturePolicy")}} interface which provides a simple API for introspecting the feature policies applied to a specific document.
+ - : Returns the {{domxref("FeaturePolicy")}} interface which provides a simple API for introspecting the [Permissions Policies](/en-US/docs/Web/HTTP/Permissions_Policy) applied to a specific document.
- {{domxref("HTMLIFrameElement.referrerPolicy")}}
- : A string that reflects the {{htmlattrxref("referrerPolicy", "iframe")}} HTML attribute indicating which referrer to use when fetching the linked resource.
- {{domxref("HTMLIFrameElement.sandbox")}}
diff --git a/files/en-us/web/api/htmlmediaelement/play/index.md b/files/en-us/web/api/htmlmediaelement/play/index.md
index 00616fd84cbbf38..c0d9e8394eba3d9 100644
--- a/files/en-us/web/api/htmlmediaelement/play/index.md
+++ b/files/en-us/web/api/htmlmediaelement/play/index.md
@@ -51,8 +51,8 @@ thrown). Possible errors include:
- `NotAllowedError` {{domxref("DOMException")}}
- : Provided if the user agent (browser) or operating system doesn't allow playback of media in the
- current context or situation. This may happen, for example, if the browser requires
- the user to explicitly start media playback by clicking a "play" button.
+ current context or situation. The browser may require the user to explicitly start
+ media playback by clicking a "play" button, for example because of a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy).
- `NotSupportedError` {{domxref("DOMException")}}
- : Provided if the media source (which may be specified as a {{domxref("MediaStream")}},
{{domxref("MediaSource")}}, {{domxref("Blob")}}, or {{domxref("File")}}, for example)
diff --git a/files/en-us/web/api/htmlmediaelement/setsinkid/index.md b/files/en-us/web/api/htmlmediaelement/setsinkid/index.md
index aec80785381b19a..a730d0a46dee9de 100644
--- a/files/en-us/web/api/htmlmediaelement/setsinkid/index.md
+++ b/files/en-us/web/api/htmlmediaelement/setsinkid/index.md
@@ -37,7 +37,7 @@ A {{jsxref("Promise")}} that resolves to {{jsxref("undefined")}}.
### Exceptions
- `NotAllowedError` {{domxref("DOMException")}}
- - : Returned if there is no permission to use the requested device.
+ - : Returned if a `speaker-selection` [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) is used to block use of audio outputs.
- `NotFoundError` {{domxref("DOMException")}}
- : Returned if the `deviceId` does not match any audio output device.
- `AbortError` {{domxref("DOMException")}}
diff --git a/files/en-us/web/api/htmlvideoelement/requestpictureinpicture/index.md b/files/en-us/web/api/htmlvideoelement/requestpictureinpicture/index.md
index bffb14db08a4ba1..d3a231ca51d1b15 100644
--- a/files/en-us/web/api/htmlvideoelement/requestpictureinpicture/index.md
+++ b/files/en-us/web/api/htmlvideoelement/requestpictureinpicture/index.md
@@ -42,9 +42,14 @@ None.
A {{jsxref("Promise")}} that will resolve to a {{domxref("PictureInPictureWindow")}}
object that can be used to listen when a user will resize that floating window.
+### Exceptions
+
+- `SecurityError` {{domxref("DOMException")}}
+ - : Use of this feature was blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy).
+
## Security
-[Transient user activation](/en-US/docs/Web/Security/User_activation) is required. The user has to interact with the page or a UI element in order for this feature to work.
+[Transient user activation](/en-US/docs/Web/Security/User_activation) is required. The user has to interact with the page or a UI element for this feature to work.
## Examples
diff --git a/files/en-us/web/api/idledetector/start/index.md b/files/en-us/web/api/idledetector/start/index.md
index 647d96e6d2b4b27..94f8e0f153826f7 100644
--- a/files/en-us/web/api/idledetector/start/index.md
+++ b/files/en-us/web/api/idledetector/start/index.md
@@ -41,6 +41,11 @@ start(options)
A {{jsxref("Promise")}}.
+### Exceptions
+
+- `NotAllowedError` {{domxref("DOMException")}}
+ - : Use of this feature was blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy).
+
## Examples
The following example shows how to start idle detection using the `options` argument. It retrieves an instance of `AbortSignal` from an instance of {{domxref("AbortController")}}.
diff --git a/files/en-us/web/api/linearaccelerationsensor/index.md b/files/en-us/web/api/linearaccelerationsensor/index.md
index f9f5dced20cf7be..599ddc09dbef064 100644
--- a/files/en-us/web/api/linearaccelerationsensor/index.md
+++ b/files/en-us/web/api/linearaccelerationsensor/index.md
@@ -20,9 +20,7 @@ browser-compat: api.LinearAccelerationSensor
The **`LinearAccelerationSensor`** interface of the [Sensor APIs](/en-US/docs/Web/API/Sensor_APIs) provides on each reading the acceleration applied to the device along all three axes, but without the contribution of gravity.
-To use this sensor, the user must grant permission to the `'accelerometer'` device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API).
-
-If a feature policy blocks use of a feature it is because your code is inconsistent with the policies set on your server. This is not something that would ever be shown to a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
+To use this sensor, the user must grant permission to the `'accelerometer'` device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API). In addition, this feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.
{{InheritanceDiagram}}
diff --git a/files/en-us/web/api/linearaccelerationsensor/linearaccelerationsensor/index.md b/files/en-us/web/api/linearaccelerationsensor/linearaccelerationsensor/index.md
index c32d7c5239e2963..05f084efde7bf17 100644
--- a/files/en-us/web/api/linearaccelerationsensor/linearaccelerationsensor/index.md
+++ b/files/en-us/web/api/linearaccelerationsensor/linearaccelerationsensor/index.md
@@ -22,10 +22,6 @@ constructor creates a new {{domxref("LinearAccelerationSensor")}} object which
provides on each reading the acceleration applied to the device along all three axes,
but without the contribution of gravity.
-If a feature policy blocks use of a feature, it is because your code is inconsistent
-with the policies set on your server. This is not something that would ever be shown to
-a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
-
## Syntax
```js-nolint
@@ -49,6 +45,11 @@ new LinearAccelerationSensor(options)
- : Either `'device'` or
`'screen'`. The default is `'device'`.
+### Exceptions
+
+- `SecurityError` {{domxref("DOMException")}}
+ - : Use of this feature was blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy).
+
## Specifications
{{Specifications}}
diff --git a/files/en-us/web/api/magnetometer/index.md b/files/en-us/web/api/magnetometer/index.md
index 6eb2e0bc7030fa5..16799a45a43d27d 100644
--- a/files/en-us/web/api/magnetometer/index.md
+++ b/files/en-us/web/api/magnetometer/index.md
@@ -19,9 +19,7 @@ browser-compat: api.Magnetometer
The **`Magnetometer`** interface of the [Sensor APIs](/en-US/docs/Web/API/Sensor_APIs) provides information about the magnetic field as detected by the device's primary magnetometer sensor.
-To use this sensor, the user must grant permission to the `'magnetometer'` device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API).
-
-If a feature policy blocks use of a feature, it's because your code is inconsistent with the policies set on your server. This is not something that would ever be shown to a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation instructions.
+To use this sensor, the user must grant permission to the `'magnetometer'` device sensor through the [Permissions API](/en-US/docs/Web/API/Permissions_API). In addition, this feature may be blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) set on your server.
{{InheritanceDiagram}}
diff --git a/files/en-us/web/api/magnetometer/magnetometer/index.md b/files/en-us/web/api/magnetometer/magnetometer/index.md
index c7776d4544a178d..6b859c076609355 100644
--- a/files/en-us/web/api/magnetometer/magnetometer/index.md
+++ b/files/en-us/web/api/magnetometer/magnetometer/index.md
@@ -21,11 +21,6 @@ The **`Magnetometer()`** constructor
creates a new {{domxref("Magnetometer")}} object which returns information about the
magnetic field as detected by a device's primary magnetometer sensor.
-If a feature policy blocks use of a feature it is because your code is inconsistent
-with the policies set on your server. This is not something that would ever be shown to
-a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation
-instructions.
-
## Syntax
```js-nolint
@@ -49,6 +44,11 @@ new Magnetometer(options)
- : Either `'device'` or
`'screen'`. The default is `'device'`.
+### Exceptions
+
+- `SecurityError` {{domxref("DOMException")}}
+ - : Use of this feature was blocked by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy).
+
## Specifications
{{Specifications}}
diff --git a/files/en-us/web/api/magnetometer/x/index.md b/files/en-us/web/api/magnetometer/x/index.md
index ea8b4f19848a4d0..4a590a36bb2eb1d 100644
--- a/files/en-us/web/api/magnetometer/x/index.md
+++ b/files/en-us/web/api/magnetometer/x/index.md
@@ -19,13 +19,8 @@ browser-compat: api.Magnetometer.x
{{APIRef("Sensor API")}}{{SeeCompatTable}}
The **`x`** read-only property of the
-{{domxref("Magnetometer")}} interface returns a double precision integer containing
-the magnetic field around the device's x axis.
-
-If a feature policy blocks use of a feature it is because your code is inconsistent
-with the policies set on your server. This is not something that would ever be shown to
-a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation
-instructions.
+{{domxref("Magnetometer")}} interface returns a number specifying
+the magnetic field around the device's x-axis.
## Value
diff --git a/files/en-us/web/api/magnetometer/y/index.md b/files/en-us/web/api/magnetometer/y/index.md
index 39e118e0b3ccf74..5628c18b46ab190 100644
--- a/files/en-us/web/api/magnetometer/y/index.md
+++ b/files/en-us/web/api/magnetometer/y/index.md
@@ -19,13 +19,8 @@ browser-compat: api.Magnetometer.y
{{APIRef("Sensor API")}}{{SeeCompatTable}}
The **`y`** read-only property of the
-{{domxref("Magnetometer")}} interface returns a double precision integer containing
-the magnetic field around the device's y axis.
-
-If a feature policy blocks use of a feature it is because your code is inconsistent
-with the policies set on your server. This is not something that would ever be shown to
-a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation
-instructions.
+{{domxref("Magnetometer")}} interface returns a number specifying
+the magnetic field around the device's y-axis.
## Value
diff --git a/files/en-us/web/api/magnetometer/z/index.md b/files/en-us/web/api/magnetometer/z/index.md
index dc34761926f5f53..9bc4431ec2d3319 100644
--- a/files/en-us/web/api/magnetometer/z/index.md
+++ b/files/en-us/web/api/magnetometer/z/index.md
@@ -19,13 +19,8 @@ browser-compat: api.Magnetometer.z
{{APIRef("Sensor API")}}{{SeeCompatTable}}
The **`z`** read-only property of the
-{{domxref("Magnetometer")}} interface returns a double-precision integer containing
-the magnetic field around the device's z axis.
-
-If a feature policy blocks use of a feature it is because your code is inconsistent
-with the policies set on your server. This is not something that would ever be shown to
-a user. The {{httpheader('Feature-Policy')}} HTTP header article contains implementation
-instructions.
+{{domxref("Magnetometer")}} interface returns a number specifying
+the magnetic field around the device's z-axis.
## Value
diff --git a/files/en-us/web/api/mediadevices/enumeratedevices/index.md b/files/en-us/web/api/mediadevices/enumeratedevices/index.md
index 861ad3c7902584c..7d21e0e89536800 100644
--- a/files/en-us/web/api/mediadevices/enumeratedevices/index.md
+++ b/files/en-us/web/api/mediadevices/enumeratedevices/index.md
@@ -31,9 +31,9 @@ None.
### Return value
-A {{ jsxref("Promise") }} that receives an array of {{domxref("MediaDeviceInfo")}} objects when the promise is fulfilled.
-Each object in the array describes one of the available media input and output devices (only device-types for which permission has been granted are "available").
-The order is significant - the default capture devices will be listed first.
+A {{ jsxref("Promise") }} that receives an array of {{domxref("MediaDeviceInfo")}} objects when the promise is fulfilled. Each object in the array describes one of the available media input and output devices. The order is significant — the default capture devices will be listed first.
+
+Only device types for which permission has been granted are "available". Also note that if a `speaker-selection` [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) is used to block use of audio outputs, they won't be available in the list.
If enumeration fails, the promise is rejected.
diff --git a/files/en-us/web/api/mediadevices/getdisplaymedia/index.md b/files/en-us/web/api/mediadevices/getdisplaymedia/index.md
index b35c74573d7bb44..e855fb89816e73e 100644
--- a/files/en-us/web/api/mediadevices/getdisplaymedia/index.md
+++ b/files/en-us/web/api/mediadevices/getdisplaymedia/index.md
@@ -68,8 +68,7 @@ audio track.
{{domxref("document")}} in whose context `getDisplayMedia()` was called is
not fully active; for example, perhaps it is not the frontmost tab.
- `NotAllowedError` {{domxref("DOMException")}}
- - : Returned if the permission to access a screen area was denied by the user, or the current browsing
- instance is not permitted access to screen sharing.
+ - : Returned if the permission to access a screen area was denied by the user (for example by a [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy)), or the current browsing instance is not permitted access to screen sharing.
- `NotFoundError` {{domxref("DOMException")}}
- : Returned if no sources of screen video are available for capture.
- `NotReadableError` {{domxref("DOMException")}}
diff --git a/files/en-us/web/api/mediadevices/getusermedia/index.md b/files/en-us/web/api/mediadevices/getusermedia/index.md
index b9a8969de82312b..6be83435fc4809d 100644
--- a/files/en-us/web/api/mediadevices/getusermedia/index.md
+++ b/files/en-us/web/api/mediadevices/getusermedia/index.md
@@ -216,6 +216,7 @@ object when the requested media has successfully been obtained.
- : Although the user and operating system both granted access to the hardware device,
and no hardware issues occurred that would cause a `NotReadableError` {{domxref("DOMException")}}, throw if some
problem occurred which prevented the device from being used.
+
- `NotAllowedError` {{domxref("DOMException")}}
- : Thrown if one or more of the requested source devices cannot be used at this time. This will
@@ -223,8 +224,8 @@ object when the requested media has successfully been obtained.
rather than HTTPS). It also happens if the user has specified that the current
browsing instance is not permitted access to the device, the user has denied access
for the current session, or the user has denied all access to user media devices
- globally. On browsers that support managing media permissions with [Feature Policy](/en-US/docs/Web/HTTP/Feature_Policy), this error is
- returned if Feature Policy is not configured to allow access to the input source(s).
+ globally. On browsers that support managing media permissions with [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy), this error is
+ returned if Permissions Policy is not configured to allow access to the input source(s).
> **Note:** Older versions of the specification used `SecurityError`
> for this instead; `SecurityError` has taken on a new meaning.
@@ -264,7 +265,7 @@ As an API that may involve significant privacy concerns, `getUserMedia()`'s
specification lays out a wide array of privacy and security requirements that browsers
are obligated to meet.
-`getUserMedia()` is a powerful feature which can only be used in [secure contexts](/en-US/docs/Web/Security/Secure_Contexts); in insecure
+`getUserMedia()` is a powerful feature that can only be used in [secure contexts](/en-US/docs/Web/Security/Secure_Contexts); in insecure
contexts, `navigator.mediaDevices` is `undefined`, preventing
access to `getUserMedia()`. A secure context is, in short, a page loaded
using HTTPS or the `file:///` URL scheme, or a page loaded from
@@ -273,7 +274,7 @@ using HTTPS or the `file:///` URL scheme, or a page loaded from
In addition, user permission is always required to access the user's audio and video
inputs. Only a window's top-level document context for a valid origin can even request
permission to use `getUserMedia()`, unless the top-level context expressly
-grants permission for a given {{HTMLElement("iframe")}} to do so using [Feature Policy](/en-US/docs/Web/HTTP/Feature_Policy). Otherwise, the user
+grants permission for a given {{HTMLElement("iframe")}} to do so using [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy). Otherwise, the user
will never even be asked for permission to use the input devices.
For additional details on these requirements and rules, how they are reflected in the
@@ -309,40 +310,24 @@ is over.
There are a number of ways security management and controls in a {{Glossary("user
agent")}} can cause `getUserMedia()` to return a security-related error.
-> **Note:** The security model for `getUserMedia()` is still
-> somewhat in flux. The originally-designed security mechanism is in the process of
-> being replaced with Feature Policy, so various browsers have different levels of
-> security support, using different mechanisms. You should test your code carefully on a
-> variety of devices and browsers to be sure it is as broadly compatible as possible
-
-#### Feature Policy
-
-The [Feature Policy](/en-US/docs/Web/HTTP/Feature_Policy) security
-management feature of {{Glossary("HTTP")}} is in the process of being introduced into
-browsers, with support available to some extent in many browsers (though not always
-enabled by default, as in Firefox). `getUserMedia()` is one method which will
-require the use of Feature Policy, and your code needs to be prepared to deal with this.
-For example, you may need to use the {{htmlattrxref("allow", "iframe")}} attribute on
-any {{HTMLElement("iframe")}} that uses `getUserMedia()`, and pages that use
-`getUserMedia()` will eventually need to supply the
-{{HTTPHeader("Feature-Policy")}} header.
-
-The two permissions that apply to `getUserMedia()` are `camera`
+#### Permissions Policy
+
+The two [Permissions Policy](/en-US/docs/Web/HTTP/Permissions_Policy) directives that apply to `getUserMedia()` are `camera`
and `microphone`.
-For example, this line in the HTTP headers will enable use of a camera for the document
+For example, this HTTP header will enable use of a camera by the document
and any embedded {{HTMLElement("iframe")}} elements that are loaded from the same
origin:
```http
-Feature-Policy: camera 'self'
+Permissions-Policy: camera=(self)
```
This will request access to the microphone for the current origin and the specific
origin `https://developer.mozilla.org`:
```http
-Feature-Policy: microphone 'self' https://developer.mozilla.org
+Permissions-Policy: microphone=(self "https://developer.mozilla.org")
```
If you're using `getUserMedia()` within an `