Support in current browsers

Checked against the current browser versions recorded in MDN browser data 8.1.5.

BrowserMinimumOutcomeReason
Chrome155WorksEvery required mapped BCD feature is available without a recorded qualification.
Edge154WorksEvery required mapped BCD feature is available without a recorded qualification.
Firefox157Not supportedAt least one required mapped feature is not available at this browser baseline.
Safari27Not supportedAt least one required mapped feature is not available at this browser baseline.
Chrome for Android155WorksEvery required mapped BCD feature is available without a recorded qualification.
Firefox for Android157Not supportedAt least one required mapped feature is not available at this browser baseline.
Safari on iOS27Not supportedAt least one required mapped feature is not available at this browser baseline.
Android WebView155WorksEvery required mapped BCD feature is available without a recorded qualification.
Samsung Internet30.0WorksEvery required mapped BCD feature is available without a recorded qualification.
The release trace

How support changed

Each segment groups recorded releases with the same result. Gaps between recorded versions are not filled in. This is support at each release, rather than the planner’s check of every release above a minimum.

Chrome

http.headers.Permissions-Policy
  1. 1 – 8483 recorded releases
    Not supported
  2. 85 – 15571 recorded releases
    Works

Edge

http.headers.Permissions-Policy
  1. 12 – 8412 recorded releases
    Not supported
  2. 85 – 15470 recorded releases
    Works

Firefox

http.headers.Permissions-Policy
  1. 1 – 157160 recorded releases
    Not supported

Safari

http.headers.Permissions-Policy
  1. 1 – 2761 recorded releases
    Not supported

Chrome for Android

http.headers.Permissions-Policy
  1. 18 – 8460 recorded releases
    Not supported
  2. 85 – 15571 recorded releases
    Works

Firefox for Android

http.headers.Permissions-Policy
  1. 4 – 157141 recorded releases
    Not supported

Safari on iOS

http.headers.Permissions-Policy
  1. 1 – 2758 recorded releases
    Not supported

Android WebView

http.headers.Permissions-Policy
  1. 1 – 8455 recorded releases
    Not supported
  2. 85 – 15571 recorded releases
    Works

Samsung Internet

http.headers.Permissions-Policy
  1. 1.0 – 13.231 recorded releases
    Not supported
  2. 14.0 – 30.021 recorded releases
    Works

BCD 8.1.5 · catalogue 2.3.0. Source corrections can change this trace without a new browser release.

A fixed result snapshot

What those browser runs reported

Reviewed 11 October 2026

These are published results from specific stable-labelled browser builds. They are separate from the compatibility calculation and from evidence about your application. File outcomes and subtest counts stay separate. OK describes a completed harness, which can still contain failing subtests; Pass and Fail can also describe tests without a harness.

Exact browser builds, systems and source revision
  • firefox 157.0 · linux 22.04 · stable
    Run 4877098740350976 · 2026-10-06T10:36:34.451Z to 2026-10-06T11:50:28.028Z
    cc74d2669f5de548e808779877d1d33339ec5115
  • safari 27.0 (22625.1.29.11.27) · mac 27.0 · stable
    Run 5164107446878208 · 2026-10-06T06:14:03.64Z to 2026-10-06T09:13:55.471Z
    cc74d2669f5de548e808779877d1d33339ec5115
  • chrome 154.0.8037.92 · linux 22.04 · stable
    Run 6218298311311360 · 2026-10-06T07:44:01.102Z to 2026-10-06T11:57:16.569Z
    cc74d2669f5de548e808779877d1d33339ec5115

“Stable” is the upstream run label. Complete runtime flags were not supplied by the summary API. These results do not cover every browser version, mobile platform or operating system.

Permissions Policy

permissions-policy

118 test files retained from 161 returned search matches. Only this exact directory prefix is included. This is the returned result inventory, not a claim that every possible suite test ran.

Browser buildSubtests passed / reportedFile outcomes
firefox
157.0
62 / 62187 OK · 1 Fail · 1 Error · 29 Timeout
safari
27.0 (22625.1.29.11.27)
66 / 62084 OK · 1 Fail · 3 Error · 30 Timeout
chrome
154.0.8037.92
131 / 621103 OK · 1 Fail · 14 Timeout
Read all 118 retained file results
Test filefirefoxsafarichrome
bluetooth-allowed-by-permissions-policy-attribute-redirect-on-load.https.sub.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
bluetooth-allowed-by-permissions-policy-attribute.https.sub.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
bluetooth-allowed-by-permissions-policy.https.sub.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
bluetooth-default-permissions-policy.https.sub.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
bluetooth-disabled-by-permissions-policy.https.sub.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/focus-without-user-activation-click-handler.tentative.htmlOK · 0/2 subtestsTimeout · 0/2 subtestsOK · 0/2 subtests
experimental-features/focus-without-user-activation-default-permissions-policy.https.sub.htmlTimeout · 0/2 subtestsTimeout · 0/2 subtestsTimeout · 0/2 subtests
experimental-features/focus-without-user-activation-disabled-by-permissions-policy-cross-origin.https.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
experimental-features/focus-without-user-activation-disabled-by-permissions-policy.https.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
experimental-features/focus-without-user-activation-disabled.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/focus-without-user-activation-enabled.sub.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/focus-without-user-activation-focused-frame-descendant-cross-origin.https.sub.htmlOK · 1/2 subtestsOK · 1/2 subtestsOK · 1/2 subtests
experimental-features/focus-without-user-activation-focused-frame-descendant-remote.https.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
experimental-features/focus-without-user-activation-focused-frame-descendant.htmlOK · 4/7 subtestsOK · 4/7 subtestsOK · 4/7 subtests
experimental-features/focus-without-user-activation-setter-policy.htmlOK · 1/2 subtestsOK · 1/2 subtestsOK · 1/2 subtests
experimental-features/focus-without-user-activation-target-frame-state-ignored.htmlOK · 1/2 subtestsOK · 0/2 subtestsOK · 1/2 subtests
experimental-features/permissions-policy-header-host-wildcard.https.sub.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/permissions-policy-header-port-wildcard.https.sub.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/permissions-policy-header-scheme-only.https.sub.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/private-state-token-redemption-default-permissions-policy.tentative.https.sub.htmlOK · 0/4 subtestsOK · 0/4 subtestsOK · 4/4 subtests
experimental-features/private-state-token-redemption-supported-by-permissions-policy.tentative.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-allowed-by-default.tentative.window.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-allowed-embed.tentative.window.htmlOK · 0/1 subtestsTimeout · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-allowed-frameset.tentative.window.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-allowed-headerless.tentative.window.html?urlType=blankOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-allowed-headerless.tentative.window.html?urlType=blobOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-allowed-headerless.tentative.window.html?urlType=dataOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-allowed-headerless.tentative.window.html?urlType=srcdocOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-allowed-object.tentative.window.htmlOK · 0/1 subtestsTimeout · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-disallowed-embed.tentative.window.htmlOK · 0/1 subtestsTimeout · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-disallowed-frameset.tentative.window.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-disallowed-headerless.tentative.window.html?urlType=blankOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-disallowed-headerless.tentative.window.html?urlType=blobOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-disallowed-headerless.tentative.window.html?urlType=dataOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-disallowed-headerless.tentative.window.html?urlType=srcdocOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-disallowed-object.tentative.window.htmlOK · 0/1 subtestsTimeout · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-disallowed-subframe.tentative.window.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/unload-disallowed.tentative.window.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
experimental-features/vertical-scroll-disabled-scrollbar-tentative.htmlFail · 0/0 subtestsFail · 0/0 subtestsFail · 0/0 subtests
experimental-features/vertical-scroll-scrollintoview.tentative.htmlOK · 1/2 subtestsOK · 1/2 subtestsOK · 1/2 subtests
historical-feature-policy-header.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 0/1 subtests
historical.htmlOK · 3/4 subtestsOK · 4/4 subtestsOK · 2/4 subtests
idlharness.window.htmlOK · 22/44 subtestsOK · 22/44 subtestsOK · 32/44 subtests
navigate-to-blob.sub.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
payment-allowed-by-permissions-policy-attribute-redirect-on-load.https.sub.htmlOK · 1/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
payment-allowed-by-permissions-policy-attribute.https.sub.htmlOK · 0/3 subtestsOK · 3/3 subtestsOK · 3/3 subtests
payment-allowed-by-permissions-policy.https.sub.htmlOK · 1/4 subtestsOK · 4/4 subtestsOK · 4/4 subtests
payment-default-permissions-policy.https.sub.htmlOK · 1/3 subtestsOK · 3/3 subtestsOK · 3/3 subtests
payment-disabled-by-permissions-policy.https.sub.htmlOK · 2/3 subtestsOK · 0/3 subtestsOK · 3/3 subtests
payment-extension-allowed-by-permissions-policy-attribute.https.sub.htmlOK · 0/2 subtestsOK · 0/2 subtestsOK · 2/2 subtests
payment-supported-by-permissions-policy.tentative.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
permissions-policy-frame-policy-allowed-for-all.https.sub.htmlOK · 0/78 subtestsOK · 0/78 subtestsOK · 0/78 subtests
permissions-policy-frame-policy-allowed-for-self.https.sub.htmlOK · 0/86 subtestsOK · 0/86 subtestsOK · 0/86 subtests
permissions-policy-frame-policy-allowed-for-some-override.https.sub.htmlOK · 0/32 subtestsOK · 0/32 subtestsOK · 0/32 subtests
permissions-policy-frame-policy-allowed-for-some.https.sub.htmlOK · 0/76 subtestsOK · 0/76 subtestsOK · 0/76 subtests
permissions-policy-frame-policy-disallowed-for-all.https.sub.htmlOK · 0/78 subtestsOK · 0/78 subtestsOK · 0/78 subtests
permissions-policy-frame-policy-timing.https.sub.htmlOK · 2/2 subtestsOK · 0/2 subtestsOK · 2/2 subtests
permissions-policy-header-policy-allowed-for-all.https.sub.htmlTimeout · 0/7 subtestsTimeout · 0/7 subtestsTimeout · 0/7 subtests
permissions-policy-header-policy-allowed-for-malformed-wildcard.https.sub.htmlTimeout · 0/7 subtestsTimeout · 0/7 subtestsTimeout · 0/7 subtests
permissions-policy-header-policy-allowed-for-self.https.sub.htmlTimeout · 0/5 subtestsTimeout · 0/5 subtestsTimeout · 0/5 subtests
permissions-policy-header-policy-allowed-for-some.https.sub.htmlTimeout · 0/10 subtestsTimeout · 0/10 subtestsTimeout · 0/10 subtests
permissions-policy-header-policy-allowed-for-wildcard.https.sub.htmlTimeout · 0/9 subtestsTimeout · 0/9 subtestsTimeout · 0/9 subtests
permissions-policy-header-policy-declined.https.sub.htmlTimeout · 0/10 subtestsTimeout · 0/10 subtestsTimeout · 0/10 subtests
permissions-policy-header-policy-disallowed-for-all.https.sub.htmlTimeout · 0/5 subtestsTimeout · 0/5 subtestsTimeout · 0/5 subtests
permissions-policy-javascript-url-frame-policy.https.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
permissions-policy-nested-header-policy-allowed-for-all.https.sub.htmlTimeout · 0/6 subtestsTimeout · 0/6 subtestsTimeout · 0/6 subtests
permissions-policy-nested-header-policy-allowed-for-self.https.sub.htmlTimeout · 0/6 subtestsTimeout · 0/6 subtestsTimeout · 0/6 subtests
permissions-policy-nested-header-policy-disallowed-for-all.https.sub.htmlTimeout · 0/6 subtestsTimeout · 0/6 subtestsTimeout · 0/6 subtests
permissions-policy-opaque-origin-history.https.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
permissions-policy-opaque-origin.https.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 0/1 subtests
picture-in-picture-allowed-by-permissions-policy-attribute-redirect-on-load.https.sub.htmlOK · 2/2 subtestsOK · 1/2 subtestsOK · 2/2 subtests
picture-in-picture-allowed-by-permissions-policy-attribute.https.sub.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
picture-in-picture-allowed-by-permissions-policy.https.sub.htmlOK · 3/3 subtestsOK · 3/3 subtestsOK · 3/3 subtests
picture-in-picture-default-permissions-policy.https.sub.htmlOK · 3/3 subtestsOK · 3/3 subtestsOK · 3/3 subtests
picture-in-picture-disabled-by-permissions-policy.https.sub.htmlOK · 0/3 subtestsOK · 0/3 subtestsOK · 3/3 subtests
picture-in-picture-supported-by-permissions-policy.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
policy-extends-to-sandbox.htmlTimeout · 0/1 subtestsTimeout · 0/1 subtestsTimeout · 0/1 subtests
private-state-token-issue-allowed-by-permissions-policy-attribute.tentative.https.sub.htmlOK · 0/2 subtestsOK · 0/2 subtestsOK · 2/2 subtests
private-state-token-issue-disabled-by-permissions-policy.tentative.https.sub.htmlOK · 0/5 subtestsOK · 0/5 subtestsOK · 5/5 subtests
private-state-token-issue-enabled-by-permissions-policy.tentative.https.sub.htmlOK · 0/4 subtestsOK · 0/4 subtestsOK · 4/4 subtests
private-state-token-issue-supported-by-permissions-policy.tentative.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
reporting/bluetooth-report-only.https.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
reporting/bluetooth-reporting.https.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 0/1 subtests
reporting/camera-potential-report-only.https.htmlTimeout · 0/1 subtestsTimeout · 0/1 subtestsOK · 1/1 subtests
reporting/camera-potential-reporting.https.htmlTimeout · 0/1 subtestsTimeout · 0/1 subtestsOK · 1/1 subtests
reporting/camera-report-only.https.htmlTimeout · 0/1 subtestsTimeout · 0/1 subtestsOK · 1/1 subtests
reporting/camera-reporting.https.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
reporting/encrypted-media-report-only.https.htmlTimeout · 0/1 subtestsTimeout · 0/1 subtestsOK · 1/1 subtests
reporting/encrypted-media-reporting.https.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
reporting/fullscreen-report-only.htmlTimeout · 0/1 subtestsTimeout · 0/1 subtestsOK · 1/1 subtests
reporting/fullscreen-reporting.htmlTimeout · 0/1 subtestsTimeout · 0/1 subtestsOK · 1/1 subtests
reporting/generic-sensor-report-only.https.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
reporting/generic-sensor-reporting.https.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
reporting/geolocation-report-only.https.htmlTimeout · 0/1 subtestsTimeout · 0/1 subtestsOK · 0/1 subtests
reporting/geolocation-reporting.https.htmlTimeout · 0/1 subtestsError · 0/0 subtestsOK · 1/1 subtests
reporting/microphone-report-only.https.htmlTimeout · 0/1 subtestsTimeout · 0/1 subtestsOK · 1/1 subtests
reporting/microphone-reporting.https.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
reporting/midi-report-only.https.htmlTimeout · 0/1 subtestsTimeout · 0/1 subtestsTimeout · 0/1 subtests
reporting/midi-reporting.https.htmlTimeout · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
reporting/payment-report-only.https.htmlTimeout · 0/1 subtestsTimeout · 0/1 subtestsOK · 0/1 subtests
reporting/payment-reporting.https.htmlOK · 0/1 subtestsError · 0/1 subtestsOK · 1/1 subtests
reporting/picture-in-picture-report-only.htmlTimeout · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
reporting/picture-in-picture-reporting.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
reporting/report-only-and-enforce.https.sub.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
reporting/report-only-single-endpoint.https.sub.htmlTimeout · 0/1 subtestsTimeout · 0/1 subtestsOK · 1/1 subtests
reporting/report-to-multiple-endpoints.https.sub.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
reporting/report-to-single-endpoint.https.sub.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
reporting/screen-wake-lock-reporting.https.htmlOK · 0/1 subtestsTimeout · 0/1 subtestsOK · 1/1 subtests
reporting/serial-report-only.https.htmlTimeout · 0/2 subtestsOK · 0/2 subtestsTimeout · 0/2 subtests
reporting/serial-reporting.https.htmlTimeout · 0/2 subtestsOK · 0/2 subtestsOK · 2/2 subtests
reporting/sync-xhr-report-only.htmlTimeout · 0/1 subtestsTimeout · 0/1 subtestsOK · 1/1 subtests
reporting/sync-xhr-reporting.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
reporting/usb-report-only.https.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
reporting/usb-reporting.https.htmlError · 0/1 subtestsError · 0/1 subtestsOK · 1/1 subtests
reporting/xr-report-only.https.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
reporting/xr-reporting.https.htmlOK · 0/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
speaker-selection-allowed-by-permissions-policy.https.sub.htmlOK · 1/4 subtestsOK · 1/4 subtestsOK · 3/4 subtests
speaker-selection-disabled-by-permissions-policy.https.sub.htmlOK · 2/3 subtestsOK · 2/3 subtestsOK · 1/3 subtests

Pinned API queryTest source at the run revision

Source-response fingerprintSHA-256 150245d1d61d5ee8bd787fd2cfb3d5520a0db0965f2af0140d8ba5b382f5489c

The digest identifies the complete downloaded directory response used for this projection, before file selection. It does not authenticate the runner or prove that the results are truthful.

What this feature can and cannot do

Helps protect against

  • Unexpected capability use
  • Over-privileged embedded content

Does not guarantee

  • User-granted permissions outside the policy
  • Application authorisation
  • Capabilities not covered by a directive

What you need before using it

  • An inventory of required browser capabilities and frames

Fallback to keep in place

Avoid requesting unnecessary capabilities and isolate untrusted embedded content.