Support in current browsers

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

BrowserMinimumOutcomeReason
Chrome155Not enough browser dataBCD 8.1.5 does not publish a standalone compatibility statement for CSP nonce source expressions.
Edge154Not enough browser dataBCD 8.1.5 does not publish a standalone compatibility statement for CSP nonce source expressions.
Firefox157Not enough browser dataBCD 8.1.5 does not publish a standalone compatibility statement for CSP nonce source expressions.
Safari27Not enough browser dataBCD 8.1.5 does not publish a standalone compatibility statement for CSP nonce source expressions.
Chrome for Android155Not enough browser dataBCD 8.1.5 does not publish a standalone compatibility statement for CSP nonce source expressions.
Firefox for Android157Not enough browser dataBCD 8.1.5 does not publish a standalone compatibility statement for CSP nonce source expressions.
Safari on iOS27Not enough browser dataBCD 8.1.5 does not publish a standalone compatibility statement for CSP nonce source expressions.
Android WebView155Not enough browser dataBCD 8.1.5 does not publish a standalone compatibility statement for CSP nonce source expressions.
Samsung Internet30.0Not enough browser dataBCD 8.1.5 does not publish a standalone compatibility statement for CSP nonce source expressions.
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

No exact compatibility mapping is available for this feature.

Edge

No exact compatibility mapping is available for this feature.

Firefox

No exact compatibility mapping is available for this feature.

Safari

No exact compatibility mapping is available for this feature.

Chrome for Android

No exact compatibility mapping is available for this feature.

Firefox for Android

No exact compatibility mapping is available for this feature.

Safari on iOS

No exact compatibility mapping is available for this feature.

Android WebView

No exact compatibility mapping is available for this feature.

Samsung Internet

No exact compatibility mapping is available for this feature.

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.

CSP script-src

content-security-policy/script-src

90 test files retained from 90 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
182 / 21488 OK · 1 Error · 1 Timeout
safari
27.0 (22625.1.29.11.27)
177 / 21385 OK · 1 Error · 4 Timeout
chrome
154.0.8037.92
185 / 21488 OK · 2 Error
Read all 90 retained file results
Test filefirefoxsafarichrome
audioworklet-eval-blocked.https.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
audioworklet-trusted-types-eval-blocked.https.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
eval-allowed-in-report-only-mode-and-sends-report.htmlOK · 2/2 subtestsOK · 1/2 subtestsOK · 2/2 subtests
eval-allowed-in-report-only-mode.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
hash-always-converted-to-utf-8/iso-8859-1.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
hash-always-converted-to-utf-8/iso-8859-3.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
hash-always-converted-to-utf-8/iso-8859-7.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
hash-always-converted-to-utf-8/iso-8859-9.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
hash-always-converted-to-utf-8/utf-8-lone-surrogate.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
hash-always-converted-to-utf-8/utf-8.htmlOK · 3/3 subtestsOK · 3/3 subtestsOK · 3/3 subtests
injected-inline-script-allowed.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
injected-inline-script-blocked.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
javascript-window-open-blocked.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
non-nonceable-elements.htmlOK · 10/10 subtestsOK · 7/10 subtestsOK · 10/10 subtests
nonce-enforce-blocked.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
nonce-with-trailing-characters-blocked.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
script-src-1_1.htmlOK · 3/3 subtestsOK · 3/3 subtestsOK · 3/3 subtests
script-src-1_10_1.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
script-src-1_10.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
script-src-1_2_1.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
script-src-1_2.htmlOK · 3/3 subtestsOK · 3/3 subtestsOK · 3/3 subtests
script-src-1_3.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
script-src-1_4_1.htmlOK · 3/3 subtestsOK · 3/3 subtestsOK · 3/3 subtests
script-src-1_4_2.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
script-src-1_4.htmlOK · 3/3 subtestsOK · 3/3 subtestsOK · 3/3 subtests
script-src-event-handler-on-inline-script.htmlOK · 4/4 subtestsOK · 4/4 subtestsOK · 4/4 subtests
script-src-multiple-policies-multiple-hashing-algorithms.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
script-src-multiple-policies-one-using-hashing-algorithms.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
script-src-overrides-default-src.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
script-src-report-only-policy-works-with-external-hash-policy.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
script-src-report-only-policy-works-with-hash-policy.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
script-src-sri_hash.sub.htmlOK · 12/12 subtestsOK · 12/12 subtestsOK · 12/12 subtests
script-src-strict_dynamic_and_unsafe_eval_eval.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
script-src-strict_dynamic_and_unsafe_eval_new_function.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
script-src-strict_dynamic_discard_source_expressions.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
script-src-strict_dynamic_double_policy_different_nonce.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
script-src-strict_dynamic_double_policy_honor_source_expressions.sub.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
script-src-strict_dynamic_double_policy_report_only.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
script-src-strict_dynamic_eval.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
script-src-strict_dynamic_hashes.htmlOK · 3/3 subtestsOK · 3/3 subtestsOK · 3/3 subtests
script-src-strict_dynamic_in_img-src.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
script-src-strict_dynamic_javascript_uri.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
script-src-strict_dynamic_meta_tag.htmlOK · 4/4 subtestsOK · 4/4 subtestsOK · 4/4 subtests
script-src-strict_dynamic_modulepreload_parser_inserted_module.htmlOK · 2/3 subtestsOK · 3/3 subtestsOK · 3/3 subtests
script-src-strict_dynamic_new_function.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
script-src-strict_dynamic_non_parser_inserted_module.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
script-src-strict_dynamic_non_parser_inserted.htmlOK · 4/4 subtestsOK · 4/4 subtestsOK · 4/4 subtests
script-src-strict_dynamic_parser_inserted_correct_nonce.htmlOK · 8/8 subtestsOK · 8/8 subtestsOK · 8/8 subtests
script-src-strict_dynamic_parser_inserted_module_empty_hash.htmlOK · 1/1 subtestsOK · 0/1 subtestsOK · 1/1 subtests
script-src-strict_dynamic_parser_inserted_module.htmlOK · 3/3 subtestsOK · 3/3 subtestsOK · 3/3 subtests
script-src-strict_dynamic_parser_inserted.htmlOK · 10/10 subtestsOK · 10/10 subtestsOK · 10/10 subtests
script-src-strict_dynamic_worker-importScripts.https.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
script-src-strict_dynamic_worker.https.htmlOK · 3/3 subtestsOK · 3/3 subtestsOK · 3/3 subtests
script-src-trusted_types_eval_DedicatedWorker.htmlOK · 3/3 subtestsTimeout · 1/2 subtestsOK · 3/3 subtests
script-src-trusted_types_eval_with_report_only_require_trusted_types_eval.htmlOK · 4/4 subtestsOK · 4/4 subtestsOK · 4/4 subtests
script-src-trusted_types_eval_with_require_trusted_types_eval.htmlOK · 4/4 subtestsOK · 4/4 subtestsError · 3/4 subtests
script-src-trusted_types_eval_without_require_trusted_types_eval.htmlOK · 4/4 subtestsOK · 4/4 subtestsOK · 4/4 subtests
script-src-wildcards-disallowed.htmlOK · 3/3 subtestsOK · 3/3 subtestsOK · 3/3 subtests
scripthash-allowed.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scripthash-base64url-converts-to-base64.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scripthash-basic-blocked-error-event.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scripthash-basic-blocked.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scripthash-case-insensitive.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scripthash-changed-1.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scripthash-changed-2.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scripthash-default-src.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scripthash-ignore-unsafeinline.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scripthash-unicode-normalization.sub.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
scriptnonce-allowed.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scriptnonce-and-scripthash.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scriptnonce-basic-blocked.sub.htmlOK · 0/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scriptnonce-changed-1.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scriptnonce-changed-2.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scriptnonce-ignore-unsafeinline.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scriptnonce-redirect.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
scriptnonce-specified-source.sub.htmlOK · 3/3 subtestsOK · 3/3 subtestsOK · 3/3 subtests
srcdoc-doesnt-bypass-script-src.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
tentative/script-url-allowed-by-hash.https.htmlOK · 4/28 subtestsOK · 4/28 subtestsOK · 6/28 subtests
tentative/script-url-blocked-report-contains-hash-dedicated-worker.https.htmlOK · 0/1 subtestsTimeout · 0/1 subtestsOK · 0/1 subtests
tentative/script-url-blocked-report-contains-hash-service-worker.https.htmlTimeout · 0/1 subtestsTimeout · 0/1 subtestsOK · 0/1 subtests
tentative/script-url-blocked-report-contains-hash-shared-worker.https.htmlOK · 0/1 subtestsTimeout · 0/1 subtestsOK · 0/1 subtests
tentative/script-url-blocked-report-contains-hash.https.htmlError · 0/1 subtestsError · 0/1 subtestsError · 0/1 subtests
tentative/url-hash-in-header-and-meta.https.htmlOK · 4/6 subtestsOK · 4/6 subtestsOK · 4/6 subtests
worker-data-set-timeout.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
worker-eval-blocked.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
worker-function-function-blocked.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
worker-importscripts.sub.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests
worker-script-src.sub.htmlOK · 1/1 subtestsOK · 1/1 subtestsOK · 1/1 subtests
worker-set-timeout.sub.htmlOK · 2/2 subtestsOK · 2/2 subtestsOK · 2/2 subtests

Pinned API queryTest source at the run revision

Source-response fingerprintSHA-256 4f8181d91982a3086fd0ace7b452d133b5d6293875513de8db5ed1e398b3b1dc

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

  • Injected inline script execution

Does not guarantee

  • Nonce disclosure or reuse
  • Unsafe trusted scripts
  • DOM injection that reaches an allowed sink

What you need before using it

  • Per-response nonce generation
  • A CSP script source policy

Fallback to keep in place

Use a carefully scoped CSP and avoid inline script where a nonce deployment cannot be validated.