aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2020-07-08 17:06:44 -0400
committerJosh Matthews <josh@joshmatthews.net>2020-07-22 17:56:20 -0400
commit1ebf553f10e5cfd16abff0f3b60c7715bf6ea663 (patch)
treedcf4a6c86fe2fff16b49fee92a481a1ee3322e2d
parent6a9aac3e654d4498c8c2605ebe8a24b609770e21 (diff)
downloadservo-jdm-patch-44.tar.gz
servo-jdm-patch-44.zip
Run CSP tests in WPT.jdm-patch-44
-rw-r--r--tests/wpt/include.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/base-uri/base-uri-deny.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/base-uri/base-uri_iframe_sandbox.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html.ini11
-rw-r--r--tests/wpt/metadata/content-security-policy/blob/blob-urls-do-not-match-self.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/blob/self-doesnt-match-blob.sub.html.ini10
-rw-r--r--tests/wpt/metadata/content-security-policy/blob/star-doesnt-match-blob.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/child-src/child-src-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/child-src/child-src-conflicting-frame-src.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/child-src/child-src-cross-origin-load.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/child-src/child-src-redirect-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/child-src/child-src-worker-blocked.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/connect-src/connect-src-beacon-allowed.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/connect-src/connect-src-beacon-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/connect-src/connect-src-beacon-redirect-to-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/connect-src/connect-src-eventsource-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/connect-src/connect-src-eventsource-redirect-to-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/connect-src/connect-src-websocket-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/connect-src/connect-src-xmlhttprequest-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/connect-src/connect-src-xmlhttprequest-redirect-to-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/connect-src/shared-worker-connect-src-allowed.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/connect-src/shared-worker-connect-src-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/connect-src/worker-connect-src-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/connect-src/worker-from-guid.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/default-src/default-src-inline-blocked.sub.html.ini10
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/allow_csp_from-header.html.ini16
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/blocked-iframe-are-cross-origin.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/idlharness.window.js.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/iframe-csp-attribute.html.ini13
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/required-csp-header-cascade.html.ini28
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/required_csp-header.html.ini67
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-general.html.ini10
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-hashes.html.ini19
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-hosts.html.ini13
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-paths.html.ini10
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-ports.html.ini13
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-protocols.html.ini13
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-nonces.html.ini10
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-none.html.ini22
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-self.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-strict_dynamic.html.ini10
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_eval.html.ini13
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_hashes.html.ini13
-rw-r--r--tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_inline.html.ini16
-rw-r--r--tests/wpt/metadata/content-security-policy/font-src/font-match-allowed.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/font-src/font-mismatch-blocked.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/font-src/font-none-blocked.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/font-src/font-self-allowed.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/font-src/font-stylesheet-font-blocked.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/form-action/form-action-src-blocked.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/form-action/form-action-src-get-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/form-action/form-action-src-javascript-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/form-action/form-action-src-redirect-blocked.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-none-block.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-self-block.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-url-block.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-none-block.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-self-block.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-url-block.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-none-block.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-url-block.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-none-block.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-overrides-xfo.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-ancestors/report-blocked-frame.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-ancestors/report-only-frame.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-src/frame-src-blocked.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-src/frame-src-cross-origin-load.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-src/frame-src-redirect.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-src/frame-src-same-document-meta.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/frame-src/frame-src-self-unique-origin.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/generic/304-response-should-update-csp.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/generic/directive-name-case-insensitive.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/generic/eval-typecheck-callout-order.tentative.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/generic/filesystem-urls-do-not-match-self.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/generic/filesystem-urls-match-filesystem.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/generic/generic-0_1-img-src.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/generic/generic-0_1-script-src.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/generic/generic-0_10_1.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/generic/generic-0_2_2.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/generic/generic-0_2_3.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/generic/generic-0_8_1.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/generic/only-valid-whitespaces-are-allowed.html.ini55
-rw-r--r--tests/wpt/metadata/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/img-src/icon-blocked.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/img-src/img-src-full-host-wildcard-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/img-src/img-src-none-blocks.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/img-src/img-src-self-unique-origin.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/img-src/report-blocked-data-uri.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/inheritance/blob-url-in-child-frame-self-navigate-inherits.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/inheritance/blob-url-in-main-window-self-navigate-inherits.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/inheritance/document-write-iframe.html.ini11
-rw-r--r--tests/wpt/metadata/content-security-policy/inheritance/frame-src-javascript-url.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/inheritance/iframe-all-local-schemes.sub.html.ini31
-rw-r--r--tests/wpt/metadata/content-security-policy/inheritance/iframe-srcdoc-inheritance.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/inheritance/inherited-csp-list-modifications-are-local.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/inheritance/sandboxed-blob-scheme.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/inheritance/sandboxed-data-scheme.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/inheritance/unsandboxed-blob-scheme.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/inheritance/unsandboxed-data-scheme.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/inheritance/window.html.ini13
-rw-r--r--tests/wpt/metadata/content-security-policy/inside-worker/dedicated-script.html.ini55
-rw-r--r--tests/wpt/metadata/content-security-policy/inside-worker/shared-inheritance.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/inside-worker/shared-script.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/media-src/media-src-7_1_2.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/media-src/media-src-7_2_2.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/media-src/media-src-7_3_2.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/media-src/media-src-blocked.sub.html.ini11
-rw-r--r--tests/wpt/metadata/content-security-policy/meta/combine-header-and-meta-policies.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/meta/meta-img-src.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/meta/meta-modified.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/child-navigates-parent-blocked.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/form-action/form-action-blocks-navigate-to-allows.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/form-action/form-action-blocks-navigate-to-blocks.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/form-blocked.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/form-cross-origin-blocked.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/form-redirected-blocked.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/href-location-blocked.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/href-location-cross-origin-blocked.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/href-location-redirected-blocked.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/link-click-blocked.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/link-click-cross-origin-blocked.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/link-click-redirected-blocked.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-allowed.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-blocked.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-cross-origin-allowed.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-cross-origin-blocked.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-redirected-allowed.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-redirected-blocked.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/parent-navigates-child-blocked.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/spv-only-sent-to-initiator.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/navigate-to/unsafe-allow-redirects/blocked-end-of-chain.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/navigation/javascript-url-navigation-inherits-csp.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/navigation/to-javascript-parent-initiated-parent-csp-disallow.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/navigation/to-javascript-parent-initiated-parent-csp.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/navigation/to-javascript-url-script-src.html.ini13
-rw-r--r--tests/wpt/metadata/content-security-policy/nonce-hiding/nonces.html.ini55
-rw-r--r--tests/wpt/metadata/content-security-policy/nonce-hiding/script-nonces-hidden-meta.sub.html.ini22
-rw-r--r--tests/wpt/metadata/content-security-policy/nonce-hiding/script-nonces-hidden.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.sub.html.ini20
-rw-r--r--tests/wpt/metadata/content-security-policy/nonce-hiding/svgscript-nonces-hidden.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/object-src/object-src-no-url-blocked.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/object-src/object-src-url-blocked.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/object-src/object-src-url-embed-blocked.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/object-src/object-src-url-redirect-blocked.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-empty.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-mismatched-data.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-mismatched-url.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-notype-data.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-notype-url.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-nourl-blocked.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-allowed.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-blocked.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-header-allowed.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-header-blocked.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-only-sends-reports-on-violation.https.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-to-only-sends-reports-to-first-endpoint.https.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-1.https.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-2.https.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation.https.sub.html.ini14
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-works-on-frame-src.https.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/multiple-report-policies.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/post-redirect-stacktrace.https.html.ini14
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-and-enforce.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-blocked-data-uri.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-blocked-uri-cross-origin.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-blocked-uri.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-clips-sample.https.html.ini10
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-cross-origin-no-cookies.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-multiple-violations-01.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-multiple-violations-02.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-only-unsafe-eval.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-original-url-on-mixed-content-frame.https.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-original-url.sub.html.ini17
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-same-origin-with-cookies.html.ini10
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-strips-fragment.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-uri-effective-directive.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-uri-from-child-frame.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-uri-from-inline-javascript.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-uri-from-javascript.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-uri-multiple-reversed.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-uri-multiple.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/reporting/report-uri-scheme-relative.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/sandbox/sandbox-empty-subframe.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/sandbox/window-reuse-unsandboxed.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-attr-blocked-src-allowed.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-elem-allowed-attr-blocked.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-elem-blocked-attr-allowed.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-elem-blocked-src-allowed.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src-attr-elem/strict-dynamic-elem-blocked-src-allowed.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/eval-allowed-in-report-only-mode-and-sends-report.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/injected-inline-script-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/javascript-window-open-blocked.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/nonce-enforce-blocked.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-1_1.html.ini11
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-1_10.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-1_2.html.ini11
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-1_2_1.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-1_4.html.ini11
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-1_4_1.html.ini11
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-1_4_2.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-multiple-policies-multiple-hashing-algorithms.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-multiple-policies-one-using-hashing-algorithms.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-report-only-policy-works-with-external-hash-policy.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-report-only-policy-works-with-hash-policy.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-sri_hash.sub.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_discard_source_expressions.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_source_expressions.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_eval.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_javascript_uri.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_new_function.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_worker.https.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/script-src-wildcards-disallowed.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/scripthash-basic-blocked-error-event.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/scripthash-changed-2.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/scripthash-unicode-normalization.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/scriptnonce-and-scripthash.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/scriptnonce-basic-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/scriptnonce-changed-2.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/scriptnonce-ignore-unsafeinline.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/srcdoc-doesnt-bypass-script-src.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/worker-eval-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/worker-function-function-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/worker-importscripts-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/script-src/worker-set-timeout-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/blockeduri-eval.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/blockeduri-inline.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/constructor-required-fields.html.ini43
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/idlharness.window.js.ini172
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/img-src-redirect-upgrade-reporting.https.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/inside-dedicated-worker.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/inside-service-worker.https.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/inside-shared-worker.html.ini2
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/script-sample-no-opt-in.html.ini14
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/script-sample.html.ini20
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image-from-script.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image-from-script.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/style-sample-no-opt-in.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/style-sample.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/targeting.html.ini17
-rw-r--r--tests/wpt/metadata/content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html.ini11
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-attr-blocked-src-allowed.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-elem-allowed-attr-blocked.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-elem-blocked-attr-allowed.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-elem-blocked-src-allowed.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/injected-inline-style-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub.html.ini14
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/inline-style-attribute-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/inline-style-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/style-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/style-src-error-event-fires.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/style-src-hash-blocked.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/style-src-imported-style-blocked.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/style-src-injected-inline-style-blocked.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/style-src-injected-stylesheet-blocked.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-attribute-blocked.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-blocked.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-nonce-blocked-error-event.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-nonce-blocked.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/style-src-none-blocked.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/style-src-stylesheet-nonce-blocked.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/stylehash-basic-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/stylenonce-allowed.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/style-src/stylenonce-blocked.sub.html.ini8
-rw-r--r--tests/wpt/metadata/content-security-policy/svg/object-in-svg-foreignobject.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/svg/svg-inline.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-eval/eval-blocked-and-sends-report.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-eval/eval-blocked-in-about-blank-iframe.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-eval/eval-blocked.sub.html.ini10
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-eval/eval-scripts-setInterval-blocked.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-eval/eval-scripts-setTimeout-blocked.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-eval/function-constructor-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-href.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-href_blank.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-window_location.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-window_open.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-href.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-href_blank.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-window_location.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-window_open.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-hashes/script_event_handlers_denied_missing_unsafe_hashes.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-hashes/script_event_handlers_denied_wrong_hash.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-hashes/style_attribute_allowed.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-hashes/style_attribute_denied_missing_unsafe_hashes.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/unsafe-hashes/style_attribute_denied_wrong_hash.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/dedicated-none.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/dedicated-worker-src-child-fallback-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/service-child.https.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/service-fallback.https.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/service-list.https.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/service-none.https.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/service-self.https.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-child-fallback-blocked.https.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-child-fallback.https.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-default-fallback.https.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-script-fallback.https.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-self-fallback.https.sub.html.ini5
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/shared-child.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/shared-fallback.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/shared-list.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/shared-none.sub.html.ini7
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/shared-self.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-child-fallback-blocked.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-child-fallback.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-default-fallback.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-script-fallback.sub.html.ini4
-rw-r--r--tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-self-fallback.sub.html.ini4
-rw-r--r--tests/wpt/metadata/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini4
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPoint-list-001.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/offsetTopLeft-border-box.html.ini7
-rw-r--r--tests/wpt/metadata/fetch/content-type/script.window.js.ini1
-rw-r--r--tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini1
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini1
-rw-r--r--tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit.html.ini4
-rw-r--r--tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini4
-rw-r--r--tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini5
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini1
329 files changed, 2414 insertions, 18 deletions
diff --git a/tests/wpt/include.ini b/tests/wpt/include.ini
index 340c10ad166..4e70253b667 100644
--- a/tests/wpt/include.ini
+++ b/tests/wpt/include.ini
@@ -5,6 +5,8 @@ skip: true
skip: false
[_webgl]
skip: false
+[content-security-policy]
+ skip: false
[cookies]
skip: false
[samesite]
diff --git a/tests/wpt/metadata/content-security-policy/base-uri/base-uri-deny.sub.html.ini b/tests/wpt/metadata/content-security-policy/base-uri/base-uri-deny.sub.html.ini
new file mode 100644
index 00000000000..662ab578f8d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/base-uri/base-uri-deny.sub.html.ini
@@ -0,0 +1,8 @@
+[base-uri-deny.sub.html]
+ expected: TIMEOUT
+ [Check that the baseURI is not set when it does not match the csp directive]
+ expected: FAIL
+
+ [Check that baseURI fires a securitypolicyviolation event when it does not match the csp directive]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/base-uri/base-uri_iframe_sandbox.sub.html.ini b/tests/wpt/metadata/content-security-policy/base-uri/base-uri_iframe_sandbox.sub.html.ini
new file mode 100644
index 00000000000..6cff8015354
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/base-uri/base-uri_iframe_sandbox.sub.html.ini
@@ -0,0 +1,4 @@
+[base-uri_iframe_sandbox.sub.html]
+ [base-uri 'self' blocks foreign-origin sandboxed iframes.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html.ini b/tests/wpt/metadata/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html.ini
new file mode 100644
index 00000000000..1c533d6ee24
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html.ini
@@ -0,0 +1,11 @@
+[report-uri-does-not-respect-base-uri.sub.html]
+ expected: TIMEOUT
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that image does not load]
+ expected: NOTRUN
+
+ [Event is fired]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/blob/blob-urls-do-not-match-self.sub.html.ini b/tests/wpt/metadata/content-security-policy/blob/blob-urls-do-not-match-self.sub.html.ini
new file mode 100644
index 00000000000..2f4d1263903
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/blob/blob-urls-do-not-match-self.sub.html.ini
@@ -0,0 +1,7 @@
+[blob-urls-do-not-match-self.sub.html]
+ [blob-urls-do-not-match-self]
+ expected: FAIL
+
+ [Expecting logs: ["violated-directive=script-src-elem"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/blob/self-doesnt-match-blob.sub.html.ini b/tests/wpt/metadata/content-security-policy/blob/self-doesnt-match-blob.sub.html.ini
new file mode 100644
index 00000000000..f55eadb543f
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/blob/self-doesnt-match-blob.sub.html.ini
@@ -0,0 +1,10 @@
+[self-doesnt-match-blob.sub.html]
+ [worker-connect-src-blocked 1]
+ expected: FAIL
+
+ [Expecting logs: ["violated-directive=worker-src","TEST COMPLETE"\]]
+ expected: FAIL
+
+ [worker-connect-src-blocked]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/blob/star-doesnt-match-blob.sub.html.ini b/tests/wpt/metadata/content-security-policy/blob/star-doesnt-match-blob.sub.html.ini
new file mode 100644
index 00000000000..fece44c0eca
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/blob/star-doesnt-match-blob.sub.html.ini
@@ -0,0 +1,4 @@
+[star-doesnt-match-blob.sub.html]
+ [Expecting logs: ["violated-directive=worker-src","TEST COMPLETE"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/child-src/child-src-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/child-src/child-src-blocked.sub.html.ini
new file mode 100644
index 00000000000..71e9b47a153
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/child-src/child-src-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[child-src-blocked.sub.html]
+ [Expecting logs: ["PASS IFrame #1 generated a load event.", "violated-directive=frame-src"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/child-src/child-src-conflicting-frame-src.sub.html.ini b/tests/wpt/metadata/content-security-policy/child-src/child-src-conflicting-frame-src.sub.html.ini
new file mode 100644
index 00000000000..ef90be324ec
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/child-src/child-src-conflicting-frame-src.sub.html.ini
@@ -0,0 +1,4 @@
+[child-src-conflicting-frame-src.sub.html]
+ [Expecting logs: ["PASS IFrame #1 generated a load event.", "violated-directive=frame-src"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/child-src/child-src-cross-origin-load.sub.html.ini b/tests/wpt/metadata/content-security-policy/child-src/child-src-cross-origin-load.sub.html.ini
new file mode 100644
index 00000000000..fba5d07f6b9
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/child-src/child-src-cross-origin-load.sub.html.ini
@@ -0,0 +1,4 @@
+[child-src-cross-origin-load.sub.html]
+ [Expecting logs: ["PASS IFrame #1 generated a load event.","PASS IFrame #2 generated a load event.","PASS IFrame #3 generated a load event.", "violated-directive=frame-src"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/child-src/child-src-redirect-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/child-src/child-src-redirect-blocked.sub.html.ini
new file mode 100644
index 00000000000..7d5eaadc5ab
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/child-src/child-src-redirect-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[child-src-redirect-blocked.sub.html]
+ [Expecting logs: ["PASS IFrame #1 generated a load event.", "violated-directive=frame-src"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/child-src/child-src-worker-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/child-src/child-src-worker-blocked.sub.html.ini
new file mode 100644
index 00000000000..6af92e52ddc
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/child-src/child-src-worker-blocked.sub.html.ini
@@ -0,0 +1,8 @@
+[child-src-worker-blocked.sub.html]
+ expected: ERROR
+ [Should throw a securitypolicyviolation event]
+ expected: TIMEOUT
+
+ [Should block worker because it does not match any directive including the deprecated 'child-src']
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/connect-src/connect-src-beacon-allowed.sub.html.ini b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-beacon-allowed.sub.html.ini
new file mode 100644
index 00000000000..7d8d9782231
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-beacon-allowed.sub.html.ini
@@ -0,0 +1,4 @@
+[connect-src-beacon-allowed.sub.html]
+ [Expecting logs: ["Pass"\]]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/connect-src/connect-src-beacon-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-beacon-blocked.sub.html.ini
new file mode 100644
index 00000000000..9d4f4343676
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-beacon-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[connect-src-beacon-blocked.sub.html]
+ [Expecting logs: ["Pass", "violated-directive=connect-src"\]]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/connect-src/connect-src-beacon-redirect-to-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-beacon-redirect-to-blocked.sub.html.ini
new file mode 100644
index 00000000000..7a740273dd1
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-beacon-redirect-to-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[connect-src-beacon-redirect-to-blocked.sub.html]
+ [Expecting logs: ["violated-directive=connect-src"\]]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/connect-src/connect-src-eventsource-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-eventsource-blocked.sub.html.ini
new file mode 100644
index 00000000000..3c6d9350aee
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-eventsource-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[connect-src-eventsource-blocked.sub.html]
+ [Expecting logs: ["blocked","violated-directive=connect-src"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/connect-src/connect-src-eventsource-redirect-to-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-eventsource-redirect-to-blocked.sub.html.ini
new file mode 100644
index 00000000000..c0df9b9cfac
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-eventsource-redirect-to-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[connect-src-eventsource-redirect-to-blocked.sub.html]
+ [Expecting logs: ["PASS EventSource() did not follow the disallowed redirect.","TEST COMPLETE", "violated-directive=connect-src"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/connect-src/connect-src-websocket-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-websocket-blocked.sub.html.ini
new file mode 100644
index 00000000000..0a68ce7daaf
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-websocket-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[connect-src-websocket-blocked.sub.html]
+ [Expecting logs: ["blocked","violated-directive=connect-src"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/connect-src/connect-src-xmlhttprequest-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-xmlhttprequest-blocked.sub.html.ini
new file mode 100644
index 00000000000..96e180716e5
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-xmlhttprequest-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[connect-src-xmlhttprequest-blocked.sub.html]
+ [Expecting logs: ["Pass","violated-directive=connect-src"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/connect-src/connect-src-xmlhttprequest-redirect-to-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-xmlhttprequest-redirect-to-blocked.sub.html.ini
new file mode 100644
index 00000000000..723c1469a87
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/connect-src/connect-src-xmlhttprequest-redirect-to-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[connect-src-xmlhttprequest-redirect-to-blocked.sub.html]
+ [Expecting logs: ["PASS XMLHttpRequest.send() did not follow the disallowed redirect.","TEST COMPLETE","violated-directive=connect-src"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/connect-src/shared-worker-connect-src-allowed.sub.html.ini b/tests/wpt/metadata/content-security-policy/connect-src/shared-worker-connect-src-allowed.sub.html.ini
new file mode 100644
index 00000000000..2bd9849ead0
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/connect-src/shared-worker-connect-src-allowed.sub.html.ini
@@ -0,0 +1,5 @@
+[shared-worker-connect-src-allowed.sub.html]
+ expected: ERROR
+ [Expecting logs: ["xhr allowed","TEST COMPLETE"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/connect-src/shared-worker-connect-src-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/connect-src/shared-worker-connect-src-blocked.sub.html.ini
new file mode 100644
index 00000000000..723676c13d1
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/connect-src/shared-worker-connect-src-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[shared-worker-connect-src-blocked.sub.html]
+ [Expecting logs: ["xhr blocked","TEST COMPLETE"\]]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/connect-src/worker-connect-src-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/connect-src/worker-connect-src-blocked.sub.html.ini
new file mode 100644
index 00000000000..1e51cf18100
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/connect-src/worker-connect-src-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[worker-connect-src-blocked.sub.html]
+ [Expecting logs: ["xhr blocked","TEST COMPLETE"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/connect-src/worker-from-guid.sub.html.ini b/tests/wpt/metadata/content-security-policy/connect-src/worker-from-guid.sub.html.ini
new file mode 100644
index 00000000000..3af24d2bca0
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/connect-src/worker-from-guid.sub.html.ini
@@ -0,0 +1,4 @@
+[worker-from-guid.sub.html]
+ [Expecting logs: ["violated-directive=connect-src","xhr blocked","TEST COMPLETE"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/default-src/default-src-inline-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/default-src/default-src-inline-blocked.sub.html.ini
new file mode 100644
index 00000000000..9b6004de263
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/default-src/default-src-inline-blocked.sub.html.ini
@@ -0,0 +1,10 @@
+[default-src-inline-blocked.sub.html]
+ [default-src-inline-blocked]
+ expected: FAIL
+
+ [default-src-inline-blocked 1]
+ expected: FAIL
+
+ [Expecting logs: ["violated-directive=script-src-elem","violated-directive=script-src-elem"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/allow_csp_from-header.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/allow_csp_from-header.html.ini
new file mode 100644
index 00000000000..d4bba73309f
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/allow_csp_from-header.html.ini
@@ -0,0 +1,16 @@
+[allow_csp_from-header.html]
+ [Star Allow-CSP-From header enforces EmbeddingCSP.]
+ expected: FAIL
+
+ [Iframe with improper Allow-CSP-From header gets blocked.]
+ expected: FAIL
+
+ [Allow-CSP-From header enforces EmbeddingCSP.]
+ expected: FAIL
+
+ [Cross origin iframe with an empty Allow-CSP-From header gets blocked.]
+ expected: FAIL
+
+ [Cross origin iframe without Allow-CSP-From header gets blocked.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/blocked-iframe-are-cross-origin.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/blocked-iframe-are-cross-origin.html.ini
new file mode 100644
index 00000000000..b40118d2fc5
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/blocked-iframe-are-cross-origin.html.ini
@@ -0,0 +1,7 @@
+[blocked-iframe-are-cross-origin.html]
+ [Document blocked by embedded enforcement and its parent are cross-origin]
+ expected: FAIL
+
+ [Two same-origin iframes must appear as cross-origin when one is blocked]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/idlharness.window.js.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/idlharness.window.js.ini
new file mode 100644
index 00000000000..f4848f7461c
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/idlharness.window.js.ini
@@ -0,0 +1,7 @@
+[idlharness.window.html]
+ [HTMLIFrameElement interface: attribute csp]
+ expected: FAIL
+
+ [HTMLIFrameElement interface: document.createElement("iframe") must inherit property "csp" with the proper type]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/iframe-csp-attribute.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/iframe-csp-attribute.html.ini
new file mode 100644
index 00000000000..e63229809a4
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/iframe-csp-attribute.html.ini
@@ -0,0 +1,13 @@
+[iframe-csp-attribute.html]
+ [<iframe>'s IDL attribute reflects the DOM attribute.]
+ expected: FAIL
+
+ [<iframe>'s csp attribute is always a string.]
+ expected: FAIL
+
+ [<iframe> has a 'csp' attibute which is an empty string if undefined.]
+ expected: FAIL
+
+ [<iframe>'s 'csp content attribute reflects the IDL attribute.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/required-csp-header-cascade.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/required-csp-header-cascade.html.ini
new file mode 100644
index 00000000000..376effa876f
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/required-csp-header-cascade.html.ini
@@ -0,0 +1,28 @@
+[required-csp-header-cascade.html]
+ [Test same origin: Test no policy on first iframe]
+ expected: FAIL
+
+ [Test same origin: Test invalid policy on first iframe (bad directive)]
+ expected: FAIL
+
+ [Test same origin: Test invalid policy on second iframe (bad directive)]
+ expected: FAIL
+
+ [Test same origin: Test less restrictive policy on second iframe]
+ expected: FAIL
+
+ [Test same origin: Test invalid policy on second iframe (report directive)]
+ expected: FAIL
+
+ [Test same origin: Test same policy for both iframes]
+ expected: FAIL
+
+ [Test same origin: Test more restrictive policy on second iframe]
+ expected: FAIL
+
+ [Test same origin: Test no policy on second iframe]
+ expected: FAIL
+
+ [Test same origin: Test invalid policy on first iframe (report directive)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/required_csp-header.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/required_csp-header.html.ini
new file mode 100644
index 00000000000..c5b2be560f1
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/required_csp-header.html.ini
@@ -0,0 +1,67 @@
+[required_csp-header.html]
+ [Test cross origin redirect of cross origin iframe: Send Sec-Required-CSP Header on change of `src` attribute on iframe.]
+ expected: FAIL
+
+ [Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - url encoded string]
+ expected: FAIL
+
+ [Test Required-CSP value on `csp` change: Send Sec-Required-CSP when `csp` attribute of <iframe> is not empty.]
+ expected: FAIL
+
+ [Test same origin redirect: Send Sec-Required-CSP Header on change of `src` attribute on iframe.]
+ expected: FAIL
+
+ [Test cross origin redirect of cross origin iframe: Send Sec-Required-CSP when `csp` attribute of <iframe> is not empty.]
+ expected: FAIL
+
+ [Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - unknown policy name in multiple directives]
+ expected: FAIL
+
+ [Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - unknown policy name]
+ expected: FAIL
+
+ [Test Required-CSP value on `csp` change: Send Sec-Required-CSP Header on change of `src` attribute on iframe.]
+ expected: FAIL
+
+ [Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - report-to present]
+ expected: FAIL
+
+ [Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - html encoded string]
+ expected: FAIL
+
+ [Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - misspeled 'none']
+ expected: FAIL
+
+ [Test Required-CSP value on `csp` change: Sec-Required-CSP is not sent if `csp` attribute is not set on <iframe>.]
+ expected: FAIL
+
+ [Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - comma separated]
+ expected: FAIL
+
+ [Test same origin: Send Sec-Required-CSP Header on change of `src` attribute on iframe.]
+ expected: FAIL
+
+ [Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - missing semicolon]
+ expected: FAIL
+
+ [Test cross origin redirect: Send Sec-Required-CSP Header on change of `src` attribute on iframe.]
+ expected: FAIL
+
+ [Test cross origin redirect: Send Sec-Required-CSP when `csp` attribute of <iframe> is not empty.]
+ expected: FAIL
+
+ [Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - report-uri present]
+ expected: FAIL
+
+ [Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - query values in path]
+ expected: FAIL
+
+ [Test same origin redirect: Send Sec-Required-CSP when `csp` attribute of <iframe> is not empty.]
+ expected: FAIL
+
+ [Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - gibberish csp]
+ expected: FAIL
+
+ [Test same origin: Send Sec-Required-CSP when `csp` attribute of <iframe> is not empty.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-general.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-general.html.ini
new file mode 100644
index 00000000000..79819ea174e
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-general.html.ini
@@ -0,0 +1,10 @@
+[subsumption_algorithm-general.html]
+ [Iframe with a different CSP should be blocked.]
+ expected: FAIL
+
+ [Iframe with empty returned CSP should be blocked.]
+ expected: FAIL
+
+ [Iframe with less restricting CSP should be blocked.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-hashes.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-hashes.html.ini
new file mode 100644
index 00000000000..79b44e4183c
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-hashes.html.ini
@@ -0,0 +1,19 @@
+[subsumption_algorithm-hashes.html]
+ ['sha256-abc123' is not subsumed by 'sha256-abc456'.]
+ expected: FAIL
+
+ [Other expressions have to be subsumed.]
+ expected: FAIL
+
+ [Returned should not include hashes not present in required csp.]
+ expected: FAIL
+
+ [Hashes do not have to be present in returned csp but must not allow all inline behavior.]
+ expected: FAIL
+
+ [Effective policy is properly found where 'sha256-abc123' is not subsumed.]
+ expected: FAIL
+
+ [Required csp must allow 'sha256-abc123'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-hosts.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-hosts.html.ini
new file mode 100644
index 00000000000..c2024da76dc
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-hosts.html.ini
@@ -0,0 +1,13 @@
+[subsumption_algorithm-host_sources-hosts.html]
+ [Host must match.]
+ expected: FAIL
+
+ [More specific subdomain should not match.]
+ expected: FAIL
+
+ [Hosts without wildcards must match.]
+ expected: FAIL
+
+ [Specified host should not match a wildcard host.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-paths.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-paths.html.ini
new file mode 100644
index 00000000000..89fbb50f834
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-paths.html.ini
@@ -0,0 +1,10 @@
+[subsumption_algorithm-host_sources-paths.html]
+ [Returned CSP must specify a path.]
+ expected: FAIL
+
+ [That should not be true when required csp specifies a specific page.]
+ expected: FAIL
+
+ [Empty path is not subsumed by specified paths.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-ports.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-ports.html.ini
new file mode 100644
index 00000000000..f4828cd3e1e
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-ports.html.ini
@@ -0,0 +1,13 @@
+[subsumption_algorithm-host_sources-ports.html]
+ [Wildcard port should not be subsumed by a default port.]
+ expected: FAIL
+
+ [Specified ports must match.]
+ expected: FAIL
+
+ [Wildcard port should not be subsumed by a spcified port.]
+ expected: FAIL
+
+ [Returned CSP should be subsumed if the port is specified but is not default for a more secure scheme.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-protocols.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-protocols.html.ini
new file mode 100644
index 00000000000..b42e6f24501
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-protocols.html.ini
@@ -0,0 +1,13 @@
+[subsumption_algorithm-host_sources-protocols.html]
+ [If scheme source is present in returned csp, it must be specified in required csp too.]
+ expected: FAIL
+
+ [`http:` does not subsume other protocols.]
+ expected: FAIL
+
+ [`https` is more restrictive than `http`.]
+ expected: FAIL
+
+ [All scheme sources must be subsumed.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-nonces.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-nonces.html.ini
new file mode 100644
index 00000000000..81f3f379c06
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-nonces.html.ini
@@ -0,0 +1,10 @@
+[subsumption_algorithm-nonces.html]
+ [A nonce has to be returned if required by the embedder.]
+ expected: FAIL
+
+ [Other expressions still have to be subsumed - negative test]
+ expected: FAIL
+
+ [Nonce intersection is still done on exact match - matching nonces.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-none.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-none.html.ini
new file mode 100644
index 00000000000..d1db075de63
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-none.html.ini
@@ -0,0 +1,22 @@
+[subsumption_algorithm-none.html]
+ [Both required and returned csp are `none` for only one directive.]
+ expected: FAIL
+
+ [Required policy that allows `none` does not subsume empty list of policies.]
+ expected: FAIL
+
+ [Required csp with `none` does not subsume `none` of different directives.]
+ expected: FAIL
+
+ [Required csp with `none` does not subsume `none` of another directive.]
+ expected: FAIL
+
+ [Required csp with `none` does not subsume a host source expression.]
+ expected: FAIL
+
+ [Required csp with effective `none` does not subsume `none` of another directive.]
+ expected: FAIL
+
+ [Required csp with effective `none` does not subsume a host source expression.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-self.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-self.html.ini
new file mode 100644
index 00000000000..1fce751c20a
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-self.html.ini
@@ -0,0 +1,7 @@
+[subsumption_algorithm-self.html]
+ [Returned CSP must not allow 'self' if required CSP does not.]
+ expected: FAIL
+
+ [Returned 'self' should not be subsumed by a more secure version of origin's url.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-strict_dynamic.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-strict_dynamic.html.ini
new file mode 100644
index 00000000000..cf7d6f62418
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-strict_dynamic.html.ini
@@ -0,0 +1,10 @@
+[subsumption_algorithm-strict_dynamic.html]
+ ['strict-dynamic' is properly handled for finding effective policy.]
+ expected: FAIL
+
+ ['strict-dynamic' is effective only for `script-src`.]
+ expected: FAIL
+
+ ['strict-dynamic' has to be allowed by required csp if it is present in returned csp.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_eval.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_eval.html.ini
new file mode 100644
index 00000000000..dcfd3f20bb4
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_eval.html.ini
@@ -0,0 +1,13 @@
+[subsumption_algorithm-unsafe_eval.html]
+ [Effective policy is properly found where 'unsafe-eval' is not subsumed.]
+ expected: FAIL
+
+ [Other expressions have to be subsumed.]
+ expected: FAIL
+
+ [Required csp must allow 'unsafe-eval'.]
+ expected: FAIL
+
+ [No other keyword has the same effect as 'unsafe-eval'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_hashes.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_hashes.html.ini
new file mode 100644
index 00000000000..c835a91aa1d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_hashes.html.ini
@@ -0,0 +1,13 @@
+[subsumption_algorithm-unsafe_hashes.html]
+ [Other expressions have to be subsumed.]
+ expected: FAIL
+
+ [Effective policy is properly found where 'unsafe-hashes' is not subsumed.]
+ expected: FAIL
+
+ [No other keyword has the same effect as 'unsafe-hashes'.]
+ expected: FAIL
+
+ [Required csp must allow 'unsafe-hashes'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_inline.html.ini b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_inline.html.ini
new file mode 100644
index 00000000000..4b4aba86a43
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_inline.html.ini
@@ -0,0 +1,16 @@
+[subsumption_algorithm-unsafe_inline.html]
+ [Effective returned csp allows 'unsafe-inline']
+ expected: FAIL
+
+ [Required csp does not allow `unsafe-inline`, but retuned csp does.]
+ expected: FAIL
+
+ [Required csp allows `strict-dynamic`, but retuned csp does.]
+ expected: FAIL
+
+ [Returned csp allows a nonce.]
+ expected: FAIL
+
+ [Returned csp allows a hash.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/font-src/font-match-allowed.sub.html.ini b/tests/wpt/metadata/content-security-policy/font-src/font-match-allowed.sub.html.ini
new file mode 100644
index 00000000000..ae3bbba67f4
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/font-src/font-match-allowed.sub.html.ini
@@ -0,0 +1,5 @@
+[font-match-allowed.sub.html]
+ expected: TIMEOUT
+ [Test font loads if it matches font-src.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/font-src/font-mismatch-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/font-src/font-mismatch-blocked.sub.html.ini
new file mode 100644
index 00000000000..f7fb2bfbbfc
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/font-src/font-mismatch-blocked.sub.html.ini
@@ -0,0 +1,5 @@
+[font-mismatch-blocked.sub.html]
+ expected: TIMEOUT
+ [Test font does not load if it does not match font-src.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/font-src/font-none-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/font-src/font-none-blocked.sub.html.ini
new file mode 100644
index 00000000000..845861665fa
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/font-src/font-none-blocked.sub.html.ini
@@ -0,0 +1,5 @@
+[font-none-blocked.sub.html]
+ expected: TIMEOUT
+ [Test font does not load if it does not match font-src.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/font-src/font-self-allowed.html.ini b/tests/wpt/metadata/content-security-policy/font-src/font-self-allowed.html.ini
new file mode 100644
index 00000000000..20dcb59dc1d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/font-src/font-self-allowed.html.ini
@@ -0,0 +1,5 @@
+[font-self-allowed.html]
+ expected: TIMEOUT
+ [Test font loads if it matches font-src.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/font-src/font-stylesheet-font-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/font-src/font-stylesheet-font-blocked.sub.html.ini
new file mode 100644
index 00000000000..07621d432af
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/font-src/font-stylesheet-font-blocked.sub.html.ini
@@ -0,0 +1,5 @@
+[font-stylesheet-font-blocked.sub.html]
+ expected: TIMEOUT
+ [Test font does not load if it does not match font-src.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/form-action/form-action-src-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/form-action/form-action-src-blocked.sub.html.ini
new file mode 100644
index 00000000000..6eae87a6be0
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/form-action/form-action-src-blocked.sub.html.ini
@@ -0,0 +1,7 @@
+[form-action-src-blocked.sub.html]
+ [Expecting logs: ["violated-directive=form-action","TEST COMPLETE"\]]
+ expected: FAIL
+
+ [form-action-src-blocked]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/form-action/form-action-src-get-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/form-action/form-action-src-get-blocked.sub.html.ini
new file mode 100644
index 00000000000..4a2ad994844
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/form-action/form-action-src-get-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[form-action-src-get-blocked.sub.html]
+ [Expecting logs: ["violated-directive=form-action","TEST COMPLETE"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/form-action/form-action-src-javascript-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/form-action/form-action-src-javascript-blocked.sub.html.ini
new file mode 100644
index 00000000000..e0bd371bade
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/form-action/form-action-src-javascript-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[form-action-src-javascript-blocked.sub.html]
+ [Expecting logs: ["violated-directive=form-action","TEST COMPLETE"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/form-action/form-action-src-redirect-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/form-action/form-action-src-redirect-blocked.sub.html.ini
new file mode 100644
index 00000000000..25786caac53
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/form-action/form-action-src-redirect-blocked.sub.html.ini
@@ -0,0 +1,7 @@
+[form-action-src-redirect-blocked.sub.html]
+ [Expecting logs: ["violated-directive=form-action","TEST COMPLETE"\]]
+ expected: FAIL
+
+ [form-action-src-redirect-blocked]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https.html.ini b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https.html.ini
new file mode 100644
index 00000000000..360d39064aa
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https.html.ini
@@ -0,0 +1,5 @@
+[frame-ancestors-from-serviceworker.https.html]
+ expected: ERROR
+ [A 'frame-ancestors' CSP directive set from a serviceworker response with a value 'none' should block rendering.]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-none-block.html.ini b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-none-block.html.ini
new file mode 100644
index 00000000000..2f5629ddad3
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-none-block.html.ini
@@ -0,0 +1,4 @@
+[frame-ancestors-nested-cross-in-cross-none-block.html]
+ [A 'frame-ancestors' CSP directive with a value 'none' should block rendering in nested frames.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-self-block.html.ini b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-self-block.html.ini
new file mode 100644
index 00000000000..caacb98190a
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-self-block.html.ini
@@ -0,0 +1,4 @@
+[frame-ancestors-nested-cross-in-cross-self-block.html]
+ [A 'frame-ancestors' CSP directive with a value 'same' should block render in same-origin nested frames.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-url-block.html.ini b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-url-block.html.ini
new file mode 100644
index 00000000000..5c49d25f67c
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-url-block.html.ini
@@ -0,0 +1,4 @@
+[frame-ancestors-nested-cross-in-cross-url-block.html]
+ [A 'frame-ancestors' CSP directive with a URL value should block or allow rendering in nested frames as appropriate.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-none-block.html.ini b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-none-block.html.ini
new file mode 100644
index 00000000000..60e03cf998d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-none-block.html.ini
@@ -0,0 +1,4 @@
+[frame-ancestors-nested-same-in-cross-none-block.html]
+ [A 'frame-ancestors' CSP directive with a value 'none' should block rendering in nested frames.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-self-block.html.ini b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-self-block.html.ini
new file mode 100644
index 00000000000..f618151db2f
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-self-block.html.ini
@@ -0,0 +1,4 @@
+[frame-ancestors-nested-same-in-cross-self-block.html]
+ [A 'frame-ancestors' CSP directive with a value 'same' should block render in same-origin nested frames.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-url-block.html.ini b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-url-block.html.ini
new file mode 100644
index 00000000000..1b2df0ea0bb
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-url-block.html.ini
@@ -0,0 +1,4 @@
+[frame-ancestors-nested-same-in-cross-url-block.html]
+ [A 'frame-ancestors' CSP directive with a URL value should block or allow rendering in nested frames as appropriate.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-none-block.html.ini b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-none-block.html.ini
new file mode 100644
index 00000000000..a35579b8b95
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-none-block.html.ini
@@ -0,0 +1,4 @@
+[frame-ancestors-nested-same-in-same-none-block.html]
+ [A 'frame-ancestors' CSP directive with a value 'none' should block rendering in nested frames.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-url-block.html.ini b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-url-block.html.ini
new file mode 100644
index 00000000000..9c5cb338f3c
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-url-block.html.ini
@@ -0,0 +1,4 @@
+[frame-ancestors-nested-same-in-same-url-block.html]
+ [A 'frame-ancestors' CSP directive with a URL value should block or allow rendering in nested frames as appropriate.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-none-block.html.ini b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-none-block.html.ini
new file mode 100644
index 00000000000..f338b98bf39
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-none-block.html.ini
@@ -0,0 +1,4 @@
+[frame-ancestors-none-block.html]
+ [A 'frame-ancestors' CSP directive with a value 'none' should block rendering.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-overrides-xfo.html.ini b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-overrides-xfo.html.ini
new file mode 100644
index 00000000000..4c3739b3ed0
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-ancestors/frame-ancestors-overrides-xfo.html.ini
@@ -0,0 +1,4 @@
+[frame-ancestors-overrides-xfo.html]
+ [A 'frame-ancestors' CSP directive overrides an 'x-frame-options' header which would allow the page.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-ancestors/report-blocked-frame.sub.html.ini b/tests/wpt/metadata/content-security-policy/frame-ancestors/report-blocked-frame.sub.html.ini
new file mode 100644
index 00000000000..55a5c6be384
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-ancestors/report-blocked-frame.sub.html.ini
@@ -0,0 +1,4 @@
+[report-blocked-frame.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-ancestors/report-only-frame.sub.html.ini b/tests/wpt/metadata/content-security-policy/frame-ancestors/report-only-frame.sub.html.ini
new file mode 100644
index 00000000000..be73bd13a73
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-ancestors/report-only-frame.sub.html.ini
@@ -0,0 +1,4 @@
+[report-only-frame.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-src/frame-src-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/frame-src/frame-src-blocked.sub.html.ini
new file mode 100644
index 00000000000..28e65b7b364
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-src/frame-src-blocked.sub.html.ini
@@ -0,0 +1,5 @@
+[frame-src-blocked.sub.html]
+ expected: ERROR
+ [Expecting logs: ["PASS IFrame #1 generated a load event.","violated-directive=frame-src"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-src/frame-src-cross-origin-load.sub.html.ini b/tests/wpt/metadata/content-security-policy/frame-src/frame-src-cross-origin-load.sub.html.ini
new file mode 100644
index 00000000000..759f4d4b05c
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-src/frame-src-cross-origin-load.sub.html.ini
@@ -0,0 +1,4 @@
+[frame-src-cross-origin-load.sub.html]
+ [Expecting logs: ["PASS IFrame #1 generated a load event.","PASS IFrame #2 generated a load event.","PASS IFrame #3 generated a load event.","violated-directive=frame-src"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-src/frame-src-redirect.html.ini b/tests/wpt/metadata/content-security-policy/frame-src/frame-src-redirect.html.ini
new file mode 100644
index 00000000000..afc5b552aae
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-src/frame-src-redirect.html.ini
@@ -0,0 +1,5 @@
+[frame-src-redirect.html]
+ expected: TIMEOUT
+ [Redirected iframe src should evaluate both enforced and report-only policies on both original request and when following redirect]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-src/frame-src-same-document-meta.sub.html.ini b/tests/wpt/metadata/content-security-policy/frame-src/frame-src-same-document-meta.sub.html.ini
new file mode 100644
index 00000000000..7be9d44720f
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-src/frame-src-same-document-meta.sub.html.ini
@@ -0,0 +1,5 @@
+[frame-src-same-document-meta.sub.html]
+ expected: TIMEOUT
+ [Same-document navigations in an iframe blocked by CSP frame-src dynamically using the <meta> tag]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/frame-src/frame-src-self-unique-origin.html.ini b/tests/wpt/metadata/content-security-policy/frame-src/frame-src-self-unique-origin.html.ini
new file mode 100644
index 00000000000..e9468685f66
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/frame-src/frame-src-self-unique-origin.html.ini
@@ -0,0 +1,5 @@
+[frame-src-self-unique-origin.html]
+ expected: TIMEOUT
+ [Iframe's url must not match with 'self'. It must be blocked.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/generic/304-response-should-update-csp.sub.html.ini b/tests/wpt/metadata/content-security-policy/generic/304-response-should-update-csp.sub.html.ini
new file mode 100644
index 00000000000..335cf8f918e
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/generic/304-response-should-update-csp.sub.html.ini
@@ -0,0 +1,8 @@
+[304-response-should-update-csp.sub.html]
+ expected: TIMEOUT
+ [Test that the first frame does not use nonce def]
+ expected: NOTRUN
+
+ [Test that the second frame does not use nonce abc]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/generic/directive-name-case-insensitive.sub.html.ini b/tests/wpt/metadata/content-security-policy/generic/directive-name-case-insensitive.sub.html.ini
new file mode 100644
index 00000000000..fccb3410c9c
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/generic/directive-name-case-insensitive.sub.html.ini
@@ -0,0 +1,8 @@
+[directive-name-case-insensitive.sub.html]
+ expected: TIMEOUT
+ [Test that the www2 image throws a violation event]
+ expected: NOTRUN
+
+ [Test that the www2 image is not allowed to load]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/generic/eval-typecheck-callout-order.tentative.html.ini b/tests/wpt/metadata/content-security-policy/generic/eval-typecheck-callout-order.tentative.html.ini
new file mode 100644
index 00000000000..57259f7087f
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/generic/eval-typecheck-callout-order.tentative.html.ini
@@ -0,0 +1,2 @@
+[eval-typecheck-callout-order.tentative.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/generic/filesystem-urls-do-not-match-self.sub.html.ini b/tests/wpt/metadata/content-security-policy/generic/filesystem-urls-do-not-match-self.sub.html.ini
new file mode 100644
index 00000000000..0cd6e8c281c
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/generic/filesystem-urls-do-not-match-self.sub.html.ini
@@ -0,0 +1,8 @@
+[filesystem-urls-do-not-match-self.sub.html]
+ expected: TIMEOUT
+ [Expecting logs: ["violated-directive=script-src-elem"\]]
+ expected: NOTRUN
+
+ [filesystem-urls-do-not-match-self]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/generic/filesystem-urls-match-filesystem.sub.html.ini b/tests/wpt/metadata/content-security-policy/generic/filesystem-urls-match-filesystem.sub.html.ini
new file mode 100644
index 00000000000..8046609a6f0
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/generic/filesystem-urls-match-filesystem.sub.html.ini
@@ -0,0 +1,4 @@
+[filesystem-urls-match-filesystem.sub.html]
+ [Expecting logs: ["PASS (1/1)"\]]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/generic/generic-0_1-img-src.html.ini b/tests/wpt/metadata/content-security-policy/generic/generic-0_1-img-src.html.ini
new file mode 100644
index 00000000000..9b64431c880
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/generic/generic-0_1-img-src.html.ini
@@ -0,0 +1,8 @@
+[generic-0_1-img-src.html]
+ expected: TIMEOUT
+ [Should fire violation events for every failed violation]
+ expected: NOTRUN
+
+ [Verify cascading of default-src to img-src policy]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/generic/generic-0_1-script-src.html.ini b/tests/wpt/metadata/content-security-policy/generic/generic-0_1-script-src.html.ini
new file mode 100644
index 00000000000..8752df89b32
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/generic/generic-0_1-script-src.html.ini
@@ -0,0 +1,8 @@
+[generic-0_1-script-src.html]
+ expected: TIMEOUT
+ [Verify cascading of default-src to script-src policy: block]
+ expected: FAIL
+
+ [Should fire violation events for every failed violation]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/generic/generic-0_10_1.sub.html.ini b/tests/wpt/metadata/content-security-policy/generic/generic-0_10_1.sub.html.ini
new file mode 100644
index 00000000000..ad9cc0e71a2
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/generic/generic-0_10_1.sub.html.ini
@@ -0,0 +1,8 @@
+[generic-0_10_1.sub.html]
+ expected: TIMEOUT
+ [Prevents access to external scripts.]
+ expected: FAIL
+
+ [Should fire violation events for every failed violation]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/generic/generic-0_2_2.sub.html.ini b/tests/wpt/metadata/content-security-policy/generic/generic-0_2_2.sub.html.ini
new file mode 100644
index 00000000000..a05b0441612
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/generic/generic-0_2_2.sub.html.ini
@@ -0,0 +1,8 @@
+[generic-0_2_2.sub.html]
+ expected: TIMEOUT
+ [Prevents access to external scripts.]
+ expected: FAIL
+
+ [Should fire violation events for every failed violation]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/generic/generic-0_2_3.html.ini b/tests/wpt/metadata/content-security-policy/generic/generic-0_2_3.html.ini
new file mode 100644
index 00000000000..428c670d1e8
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/generic/generic-0_2_3.html.ini
@@ -0,0 +1,8 @@
+[generic-0_2_3.html]
+ expected: TIMEOUT
+ [Prevents access to external scripts.]
+ expected: FAIL
+
+ [Should fire violation events for every failed violation]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/generic/generic-0_8_1.sub.html.ini b/tests/wpt/metadata/content-security-policy/generic/generic-0_8_1.sub.html.ini
new file mode 100644
index 00000000000..d438280042d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/generic/generic-0_8_1.sub.html.ini
@@ -0,0 +1,7 @@
+[generic-0_8_1.sub.html]
+ [Wildcard host matching works.]
+ expected: FAIL
+
+ [Should fire violation events for every failed violation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/generic/only-valid-whitespaces-are-allowed.html.ini b/tests/wpt/metadata/content-security-policy/generic/only-valid-whitespaces-are-allowed.html.ini
new file mode 100644
index 00000000000..5538b81b900
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/generic/only-valid-whitespaces-are-allowed.html.ini
@@ -0,0 +1,55 @@
+[only-valid-whitespaces-are-allowed.html]
+ [Should not load image with 'none' CSP - meta tag]
+ expected: FAIL
+
+ [U+000D CR should be properly parsed between directive name and value - meta tag]
+ expected: FAIL
+
+ [U+000C FF should be properly parsed inside directive value - meta tag]
+ expected: FAIL
+
+ [U+000A LF should be properly parsed between directive name and value - meta tag]
+ expected: FAIL
+
+ [U+0020 SPACE should be properly parsed inside directive value - HTTP header]
+ expected: FAIL
+
+ [U+0009 TAB should be properly parsed between directive name and value - HTTP header]
+ expected: FAIL
+
+ [U+000C FF should be properly parsed between directive name and value - meta tag]
+ expected: FAIL
+
+ [U+000D CR should be properly parsed inside directive value - meta tag]
+ expected: FAIL
+
+ [U+0020 SPACE should be properly parsed between directive name and value - meta tag]
+ expected: FAIL
+
+ [U+000A LF should be properly parsed inside directive value - meta tag]
+ expected: FAIL
+
+ [U+0020 SPACE should be properly parsed inside directive value - meta tag]
+ expected: FAIL
+
+ [U+000C FF should be properly parsed inside directive value - HTTP header]
+ expected: FAIL
+
+ [Should not load image with 'none' CSP - HTTP header]
+ expected: FAIL
+
+ [U+0009 TAB should be properly parsed inside directive value - HTTP header]
+ expected: FAIL
+
+ [U+000C FF should be properly parsed between directive name and value - HTTP header]
+ expected: FAIL
+
+ [U+0009 TAB should be properly parsed between directive name and value - meta tag]
+ expected: FAIL
+
+ [U+0009 TAB should be properly parsed inside directive value - meta tag]
+ expected: FAIL
+
+ [U+0020 SPACE should be properly parsed between directive name and value - HTTP header]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html.ini b/tests/wpt/metadata/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html.ini
new file mode 100644
index 00000000000..4286a88b9c9
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html.ini
@@ -0,0 +1,8 @@
+[policy-inherited-correctly-by-plznavigate.html]
+ expected: ERROR
+ [Violation report status OK.]
+ expected: FAIL
+
+ [iframe still inherits correct CSP]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/img-src/icon-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/img-src/icon-blocked.sub.html.ini
new file mode 100644
index 00000000000..3e9710c355d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/img-src/icon-blocked.sub.html.ini
@@ -0,0 +1,5 @@
+[icon-blocked.sub.html]
+ expected: TIMEOUT
+ [Test that spv event is fired]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/img-src/img-src-full-host-wildcard-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/img-src/img-src-full-host-wildcard-blocked.sub.html.ini
new file mode 100644
index 00000000000..a98dfa416ac
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/img-src/img-src-full-host-wildcard-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[img-src-full-host-wildcard-blocked.sub.html]
+ [img src does not match full host and wildcard csp directive]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/img-src/img-src-none-blocks.html.ini b/tests/wpt/metadata/content-security-policy/img-src/img-src-none-blocks.html.ini
new file mode 100644
index 00000000000..3fc641b1398
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/img-src/img-src-none-blocks.html.ini
@@ -0,0 +1,4 @@
+[img-src-none-blocks.html]
+ [img-src with 'none' source should not match]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/img-src/img-src-self-unique-origin.html.ini b/tests/wpt/metadata/content-security-policy/img-src/img-src-self-unique-origin.html.ini
new file mode 100644
index 00000000000..9b2a21012d0
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/img-src/img-src-self-unique-origin.html.ini
@@ -0,0 +1,5 @@
+[img-src-self-unique-origin.html]
+ expected: TIMEOUT
+ [Image's url must not match with 'self'. Image must be blocked.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/img-src/report-blocked-data-uri.sub.html.ini b/tests/wpt/metadata/content-security-policy/img-src/report-blocked-data-uri.sub.html.ini
new file mode 100644
index 00000000000..a312f653f37
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/img-src/report-blocked-data-uri.sub.html.ini
@@ -0,0 +1,4 @@
+[report-blocked-data-uri.sub.html]
+ [Expecting logs: ["violated-directive=img-src"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/inheritance/blob-url-in-child-frame-self-navigate-inherits.sub.html.ini b/tests/wpt/metadata/content-security-policy/inheritance/blob-url-in-child-frame-self-navigate-inherits.sub.html.ini
new file mode 100644
index 00000000000..85d16731b83
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/inheritance/blob-url-in-child-frame-self-navigate-inherits.sub.html.ini
@@ -0,0 +1,4 @@
+[blob-url-in-child-frame-self-navigate-inherits.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/inheritance/blob-url-in-main-window-self-navigate-inherits.sub.html.ini b/tests/wpt/metadata/content-security-policy/inheritance/blob-url-in-main-window-self-navigate-inherits.sub.html.ini
new file mode 100644
index 00000000000..e72da5c191c
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/inheritance/blob-url-in-main-window-self-navigate-inherits.sub.html.ini
@@ -0,0 +1,4 @@
+[blob-url-in-main-window-self-navigate-inherits.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/inheritance/document-write-iframe.html.ini b/tests/wpt/metadata/content-security-policy/inheritance/document-write-iframe.html.ini
new file mode 100644
index 00000000000..1f316b7293f
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/inheritance/document-write-iframe.html.ini
@@ -0,0 +1,11 @@
+[document-write-iframe.html]
+ expected: TIMEOUT
+ [Image loaded in srcdoc iframe using document.write is blocked]
+ expected: NOTRUN
+
+ [Image loaded in normal iframe using document.write is blocked]
+ expected: NOTRUN
+
+ [Image loaded directly in simple srcdoc iframe is blocked]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/inheritance/frame-src-javascript-url.html.ini b/tests/wpt/metadata/content-security-policy/inheritance/frame-src-javascript-url.html.ini
new file mode 100644
index 00000000000..04d6287085d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/inheritance/frame-src-javascript-url.html.ini
@@ -0,0 +1,5 @@
+[frame-src-javascript-url.html]
+ expected: TIMEOUT
+ [<iframe src='javascript:...'>'s inherits policy (dynamically inserted <iframe> is blocked)]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/inheritance/iframe-all-local-schemes.sub.html.ini b/tests/wpt/metadata/content-security-policy/inheritance/iframe-all-local-schemes.sub.html.ini
new file mode 100644
index 00000000000..d6576a3af3d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/inheritance/iframe-all-local-schemes.sub.html.ini
@@ -0,0 +1,31 @@
+[iframe-all-local-schemes.sub.html]
+ [<iframe src='blob:...'>'s inherits policy.]
+ expected: FAIL
+
+ [<iframe src='data:...'>'s inherits policy.]
+ expected: FAIL
+
+ [<iframe sandbox src='blob:...'>'s inherits policy. (opaque origin sandbox)]
+ expected: FAIL
+
+ [window url='blob:...' inherits policy.]
+ expected: FAIL
+
+ [window about:blank inherits policy.]
+ expected: FAIL
+
+ [<iframe srcdoc>'s inherits policy.]
+ expected: FAIL
+
+ [<iframe>'s about:blank inherits policy.]
+ expected: FAIL
+
+ [window url='javascript:...'>'s inherits policy (static <img> is blocked)]
+ expected: FAIL
+
+ [<iframe src='javascript:...'>'s inherits policy (dynamically inserted <img> is blocked)]
+ expected: FAIL
+
+ [<iframe src='javascript:...'>'s inherits policy (static <img> is blocked)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/inheritance/iframe-srcdoc-inheritance.html.ini b/tests/wpt/metadata/content-security-policy/inheritance/iframe-srcdoc-inheritance.html.ini
new file mode 100644
index 00000000000..50d27dd43f2
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/inheritance/iframe-srcdoc-inheritance.html.ini
@@ -0,0 +1,8 @@
+[iframe-srcdoc-inheritance.html]
+ expected: TIMEOUT
+ [First image should be blocked]
+ expected: FAIL
+
+ [Second image should be blocked]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/inheritance/inherited-csp-list-modifications-are-local.html.ini b/tests/wpt/metadata/content-security-policy/inheritance/inherited-csp-list-modifications-are-local.html.ini
new file mode 100644
index 00000000000..5e26169c70e
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/inheritance/inherited-csp-list-modifications-are-local.html.ini
@@ -0,0 +1,8 @@
+[inherited-csp-list-modifications-are-local.html]
+ expected: TIMEOUT
+ [Test that embedded iframe document image does not load]
+ expected: FAIL
+
+ [Test that spv event is fired]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/inheritance/sandboxed-blob-scheme.html.ini b/tests/wpt/metadata/content-security-policy/inheritance/sandboxed-blob-scheme.html.ini
new file mode 100644
index 00000000000..e15265977ca
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/inheritance/sandboxed-blob-scheme.html.ini
@@ -0,0 +1,2 @@
+[sandboxed-blob-scheme.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/inheritance/sandboxed-data-scheme.html.ini b/tests/wpt/metadata/content-security-policy/inheritance/sandboxed-data-scheme.html.ini
new file mode 100644
index 00000000000..cc5c042e925
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/inheritance/sandboxed-data-scheme.html.ini
@@ -0,0 +1,2 @@
+[sandboxed-data-scheme.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/inheritance/unsandboxed-blob-scheme.html.ini b/tests/wpt/metadata/content-security-policy/inheritance/unsandboxed-blob-scheme.html.ini
new file mode 100644
index 00000000000..f6f00ebc17d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/inheritance/unsandboxed-blob-scheme.html.ini
@@ -0,0 +1,2 @@
+[unsandboxed-blob-scheme.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/inheritance/unsandboxed-data-scheme.html.ini b/tests/wpt/metadata/content-security-policy/inheritance/unsandboxed-data-scheme.html.ini
new file mode 100644
index 00000000000..c57a56862c6
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/inheritance/unsandboxed-data-scheme.html.ini
@@ -0,0 +1,2 @@
+[unsandboxed-data-scheme.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/inheritance/window.html.ini b/tests/wpt/metadata/content-security-policy/inheritance/window.html.ini
new file mode 100644
index 00000000000..722340674fd
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/inheritance/window.html.ini
@@ -0,0 +1,13 @@
+[window.html]
+ [window.open('javascript:...') inherits policy.]
+ expected: FAIL
+
+ [window.open() inherits policy.]
+ expected: FAIL
+
+ [window.open('blob:...') inherits policy.]
+ expected: FAIL
+
+ [`document.write` into `window.open()` inherits policy.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/inside-worker/dedicated-script.html.ini b/tests/wpt/metadata/content-security-policy/inside-worker/dedicated-script.html.ini
new file mode 100644
index 00000000000..47c09626b7d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/inside-worker/dedicated-script.html.ini
@@ -0,0 +1,55 @@
+[dedicated-script.html]
+ [Cross-origin `importScripts()` blocked in http:?pipe=sub|header(Content-Security-Policy,script-src%20%27none%27)]
+ expected: FAIL
+
+ [`eval()` blocked in http:]
+ expected: FAIL
+
+ [`setTimeout([string\])` blocked in http:?pipe=sub|header(Content-Security-Policy,default-src%20*)]
+ expected: FAIL
+
+ [`eval()` blocked in http:?pipe=sub|header(Content-Security-Policy,script-src%20*)]
+ expected: FAIL
+
+ [Cross-origin `importScripts()` blocked in http:]
+ expected: FAIL
+
+ [`setTimeout([string\])` blocked in http:]
+ expected: FAIL
+
+ [`eval()` blocked in http:?pipe=sub|header(Content-Security-Policy,default-src%20*)]
+ expected: FAIL
+
+ [Cross-origin `importScripts()` blocked in http:?pipe=sub|header(Content-Security-Policy,default-src%20%27none%27)]
+ expected: FAIL
+
+ [`eval()` blocked in http:?pipe=sub|header(Content-Security-Policy,script-src%20%27none%27)]
+ expected: FAIL
+
+ [Cross-origin `importScripts()` blocked in http:?pipe=sub|header(Content-Security-Policy,script-src%20*)]
+ expected: FAIL
+
+ [`eval()` blocked in blob:]
+ expected: FAIL
+
+ [`setTimeout([string\])` blocked in blob:]
+ expected: FAIL
+
+ [`setTimeout([string\])` blocked in http:?pipe=sub|header(Content-Security-Policy,script-src%20%27none%27)]
+ expected: FAIL
+
+ [`eval()` blocked in http:?pipe=sub|header(Content-Security-Policy,default-src%20%27none%27)]
+ expected: FAIL
+
+ [Cross-origin `importScripts()` blocked in http:?pipe=sub|header(Content-Security-Policy,default-src%20*)]
+ expected: FAIL
+
+ [`setTimeout([string\])` blocked in http:?pipe=sub|header(Content-Security-Policy,default-src%20%27none%27)]
+ expected: FAIL
+
+ [Cross-origin `importScripts()` blocked in blob:]
+ expected: FAIL
+
+ [`setTimeout([string\])` blocked in http:?pipe=sub|header(Content-Security-Policy,script-src%20*)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/inside-worker/shared-inheritance.html.ini b/tests/wpt/metadata/content-security-policy/inside-worker/shared-inheritance.html.ini
new file mode 100644
index 00000000000..471caa45118
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/inside-worker/shared-inheritance.html.ini
@@ -0,0 +1,2 @@
+[shared-inheritance.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata/content-security-policy/inside-worker/shared-script.html.ini b/tests/wpt/metadata/content-security-policy/inside-worker/shared-script.html.ini
new file mode 100644
index 00000000000..5487576462b
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/inside-worker/shared-script.html.ini
@@ -0,0 +1,2 @@
+[shared-script.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata/content-security-policy/media-src/media-src-7_1_2.sub.html.ini b/tests/wpt/metadata/content-security-policy/media-src/media-src-7_1_2.sub.html.ini
new file mode 100644
index 00000000000..b891516fb47
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/media-src/media-src-7_1_2.sub.html.ini
@@ -0,0 +1,8 @@
+[media-src-7_1_2.sub.html]
+ expected: TIMEOUT
+ [Disallowed async video src]
+ expected: FAIL
+
+ [Test that securitypolicyviolation events are fired]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/media-src/media-src-7_2_2.sub.html.ini b/tests/wpt/metadata/content-security-policy/media-src/media-src-7_2_2.sub.html.ini
new file mode 100644
index 00000000000..2dc1119c63d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/media-src/media-src-7_2_2.sub.html.ini
@@ -0,0 +1,8 @@
+[media-src-7_2_2.sub.html]
+ expected: TIMEOUT
+ [Test that securitypolicyviolation events are fired]
+ expected: NOTRUN
+
+ [Disallaowed audio src]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/media-src/media-src-7_3_2.sub.html.ini b/tests/wpt/metadata/content-security-policy/media-src/media-src-7_3_2.sub.html.ini
new file mode 100644
index 00000000000..47d7dd3e0d0
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/media-src/media-src-7_3_2.sub.html.ini
@@ -0,0 +1,8 @@
+[media-src-7_3_2.sub.html]
+ expected: TIMEOUT
+ [Test that securitypolicyviolation events are fired]
+ expected: NOTRUN
+
+ [Disallowed track element onerror handler fires.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/media-src/media-src-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/media-src/media-src-blocked.sub.html.ini
new file mode 100644
index 00000000000..5b714ab31ac
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/media-src/media-src-blocked.sub.html.ini
@@ -0,0 +1,11 @@
+[media-src-blocked.sub.html]
+ expected: TIMEOUT
+ [Disallaowed audio src]
+ expected: FAIL
+
+ [Test that securitypolicyviolation events are fired]
+ expected: NOTRUN
+
+ [Disallowed async video src]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/meta/combine-header-and-meta-policies.sub.html.ini b/tests/wpt/metadata/content-security-policy/meta/combine-header-and-meta-policies.sub.html.ini
new file mode 100644
index 00000000000..3d9b0999d16
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/meta/combine-header-and-meta-policies.sub.html.ini
@@ -0,0 +1,4 @@
+[combine-header-and-meta-policies.sub.html]
+ [Expecting logs: ["TEST COMPLETE", "violated-directive=img-src", "violated-directive=style-src-elem"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/meta/meta-img-src.html.ini b/tests/wpt/metadata/content-security-policy/meta/meta-img-src.html.ini
new file mode 100644
index 00000000000..b5e96e2060c
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/meta/meta-img-src.html.ini
@@ -0,0 +1,4 @@
+[meta-img-src.html]
+ [Expecting logs: ["PASS","TEST COMPLETE"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/meta/meta-modified.html.ini b/tests/wpt/metadata/content-security-policy/meta/meta-modified.html.ini
new file mode 100644
index 00000000000..3cf079a714a
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/meta/meta-modified.html.ini
@@ -0,0 +1,4 @@
+[meta-modified.html]
+ [Expecting logs: ["PASS", "PASS","TEST COMPLETE"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/child-navigates-parent-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/child-navigates-parent-blocked.sub.html.ini
new file mode 100644
index 00000000000..87a99c7182a
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/child-navigates-parent-blocked.sub.html.ini
@@ -0,0 +1,7 @@
+[child-navigates-parent-blocked.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that the child can't navigate the parent because the relevant policy belongs to the navigation initiator (in this case the child which has the policy `navigate-to 'none'`)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/form-action/form-action-blocks-navigate-to-allows.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/form-action/form-action-blocks-navigate-to-allows.sub.html.ini
new file mode 100644
index 00000000000..9e2a1d94a30
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/form-action/form-action-blocks-navigate-to-allows.sub.html.ini
@@ -0,0 +1,4 @@
+[form-action-blocks-navigate-to-allows.sub.html]
+ [Test that form-action overrides navigate-to when present.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/form-action/form-action-blocks-navigate-to-blocks.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/form-action/form-action-blocks-navigate-to-blocks.sub.html.ini
new file mode 100644
index 00000000000..626d107375d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/form-action/form-action-blocks-navigate-to-blocks.sub.html.ini
@@ -0,0 +1,4 @@
+[form-action-blocks-navigate-to-blocks.sub.html]
+ [Test that form-action overrides navigate-to when present.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/form-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/form-blocked.sub.html.ini
new file mode 100644
index 00000000000..d6ff30e2d0b
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/form-blocked.sub.html.ini
@@ -0,0 +1,7 @@
+[form-blocked.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that the child iframe navigation is not allowed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/form-cross-origin-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/form-cross-origin-blocked.sub.html.ini
new file mode 100644
index 00000000000..bc1087faed6
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/form-cross-origin-blocked.sub.html.ini
@@ -0,0 +1,7 @@
+[form-cross-origin-blocked.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that the child iframe navigation is not allowed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/form-redirected-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/form-redirected-blocked.sub.html.ini
new file mode 100644
index 00000000000..59455bdc3e6
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/form-redirected-blocked.sub.html.ini
@@ -0,0 +1,7 @@
+[form-redirected-blocked.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that the child iframe navigation is not allowed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/href-location-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/href-location-blocked.sub.html.ini
new file mode 100644
index 00000000000..0e32e7b8306
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/href-location-blocked.sub.html.ini
@@ -0,0 +1,7 @@
+[href-location-blocked.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that the child iframe navigation is not allowed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/href-location-cross-origin-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/href-location-cross-origin-blocked.sub.html.ini
new file mode 100644
index 00000000000..9a764842f88
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/href-location-cross-origin-blocked.sub.html.ini
@@ -0,0 +1,7 @@
+[href-location-cross-origin-blocked.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that the child iframe navigation is not allowed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/href-location-redirected-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/href-location-redirected-blocked.sub.html.ini
new file mode 100644
index 00000000000..dcd2b5bab5a
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/href-location-redirected-blocked.sub.html.ini
@@ -0,0 +1,7 @@
+[href-location-redirected-blocked.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that the child iframe navigation is not allowed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/link-click-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/link-click-blocked.sub.html.ini
new file mode 100644
index 00000000000..59583d54cce
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/link-click-blocked.sub.html.ini
@@ -0,0 +1,7 @@
+[link-click-blocked.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that the child iframe navigation is not allowed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/link-click-cross-origin-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/link-click-cross-origin-blocked.sub.html.ini
new file mode 100644
index 00000000000..fa7834350c9
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/link-click-cross-origin-blocked.sub.html.ini
@@ -0,0 +1,7 @@
+[link-click-cross-origin-blocked.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that the child iframe navigation is not allowed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/link-click-redirected-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/link-click-redirected-blocked.sub.html.ini
new file mode 100644
index 00000000000..c3f830f7dcc
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/link-click-redirected-blocked.sub.html.ini
@@ -0,0 +1,7 @@
+[link-click-redirected-blocked.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that the child iframe navigation is not allowed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-allowed.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-allowed.html.ini
new file mode 100644
index 00000000000..6c941f06d82
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-allowed.html.ini
@@ -0,0 +1,5 @@
+[meta-refresh-allowed.html]
+ expected: TIMEOUT
+ [Test that the child iframe navigation is allowed]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-blocked.sub.html.ini
new file mode 100644
index 00000000000..485f7865f39
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-blocked.sub.html.ini
@@ -0,0 +1,8 @@
+[meta-refresh-blocked.sub.html]
+ expected: TIMEOUT
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that the child iframe navigation is not allowed]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-cross-origin-allowed.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-cross-origin-allowed.sub.html.ini
new file mode 100644
index 00000000000..7901f5c74a2
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-cross-origin-allowed.sub.html.ini
@@ -0,0 +1,5 @@
+[meta-refresh-cross-origin-allowed.sub.html]
+ expected: TIMEOUT
+ [Test that the child iframe navigation is allowed]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-cross-origin-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-cross-origin-blocked.sub.html.ini
new file mode 100644
index 00000000000..54b4ea245ff
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-cross-origin-blocked.sub.html.ini
@@ -0,0 +1,8 @@
+[meta-refresh-cross-origin-blocked.sub.html]
+ expected: TIMEOUT
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that the child iframe navigation is not allowed]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-redirected-allowed.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-redirected-allowed.html.ini
new file mode 100644
index 00000000000..6b25714ce50
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-redirected-allowed.html.ini
@@ -0,0 +1,5 @@
+[meta-refresh-redirected-allowed.html]
+ expected: TIMEOUT
+ [Test that the child iframe navigation is allowed]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-redirected-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-redirected-blocked.sub.html.ini
new file mode 100644
index 00000000000..1e8ff5663d2
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/meta-refresh-redirected-blocked.sub.html.ini
@@ -0,0 +1,8 @@
+[meta-refresh-redirected-blocked.sub.html]
+ expected: TIMEOUT
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that the child iframe navigation is not allowed]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/parent-navigates-child-blocked.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/parent-navigates-child-blocked.html.ini
new file mode 100644
index 00000000000..955e5d3a1d5
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/parent-navigates-child-blocked.html.ini
@@ -0,0 +1,7 @@
+[parent-navigates-child-blocked.html]
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that the parent can't navigate the child because the relevant policy belongs to the navigation initiator (in this case the parent, which has the policy `navigate-to support/wait_for_navigation.html;`)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/spv-only-sent-to-initiator.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/spv-only-sent-to-initiator.sub.html.ini
new file mode 100644
index 00000000000..76afc48f8e6
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/spv-only-sent-to-initiator.sub.html.ini
@@ -0,0 +1,5 @@
+[spv-only-sent-to-initiator.sub.html]
+ expected: TIMEOUT
+ [Test that no spv event is raised]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/navigate-to/unsafe-allow-redirects/blocked-end-of-chain.sub.html.ini b/tests/wpt/metadata/content-security-policy/navigate-to/unsafe-allow-redirects/blocked-end-of-chain.sub.html.ini
new file mode 100644
index 00000000000..9121f4738e0
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigate-to/unsafe-allow-redirects/blocked-end-of-chain.sub.html.ini
@@ -0,0 +1,4 @@
+[blocked-end-of-chain.sub.html]
+ [Test that the child iframe navigation is blocked]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigation/javascript-url-navigation-inherits-csp.html.ini b/tests/wpt/metadata/content-security-policy/navigation/javascript-url-navigation-inherits-csp.html.ini
new file mode 100644
index 00000000000..0b8bc002868
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigation/javascript-url-navigation-inherits-csp.html.ini
@@ -0,0 +1,4 @@
+[javascript-url-navigation-inherits-csp.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigation/to-javascript-parent-initiated-parent-csp-disallow.html.ini b/tests/wpt/metadata/content-security-policy/navigation/to-javascript-parent-initiated-parent-csp-disallow.html.ini
new file mode 100644
index 00000000000..b9ca83c1c3a
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigation/to-javascript-parent-initiated-parent-csp-disallow.html.ini
@@ -0,0 +1,4 @@
+[to-javascript-parent-initiated-parent-csp-disallow.html]
+ [Should not have executed the javascript url]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigation/to-javascript-parent-initiated-parent-csp.html.ini b/tests/wpt/metadata/content-security-policy/navigation/to-javascript-parent-initiated-parent-csp.html.ini
new file mode 100644
index 00000000000..ab9268c5aa4
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigation/to-javascript-parent-initiated-parent-csp.html.ini
@@ -0,0 +1,4 @@
+[to-javascript-parent-initiated-parent-csp.html]
+ [Should not have executed the javascript url]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/navigation/to-javascript-url-script-src.html.ini b/tests/wpt/metadata/content-security-policy/navigation/to-javascript-url-script-src.html.ini
new file mode 100644
index 00000000000..2562c9cf786
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/navigation/to-javascript-url-script-src.html.ini
@@ -0,0 +1,13 @@
+[to-javascript-url-script-src.html]
+ [<iframe> navigated to 'javascript:' blocked without 'unsafe-inline'.]
+ expected: FAIL
+
+ [<iframe src='javascript:'> blocked without 'unsafe-inline'.]
+ expected: FAIL
+
+ [<iframe src='...'> without 'unsafe-inline' navigated to 'javascript:' blocked in this document.]
+ expected: FAIL
+
+ [<iframe src='...'> with 'unsafe-inline' navigated to 'javascript:' blocked in this document]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/nonce-hiding/nonces.html.ini b/tests/wpt/metadata/content-security-policy/nonce-hiding/nonces.html.ini
new file mode 100644
index 00000000000..834242c050c
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/nonce-hiding/nonces.html.ini
@@ -0,0 +1,55 @@
+[nonces.html]
+ [Test empty nonces for meh in SVG namespace]
+ expected: FAIL
+
+ [Test empty nonces for script in SVG namespace]
+ expected: FAIL
+
+ [Ensure that removal of content attribute does not affect IDL attribute for meh in HTML namespace]
+ expected: FAIL
+
+ [Ensure that removal of content attribute does not affect IDL attribute for div in HTML namespace]
+ expected: FAIL
+
+ [Ensure that removal of content attribute does not affect IDL attribute for meh in SVG namespace]
+ expected: FAIL
+
+ [Ensure that removal of content attribute does not affect IDL attribute for script in SVG namespace]
+ expected: FAIL
+
+ [Basic nonce tests for script in HTML namespace]
+ expected: FAIL
+
+ [Basic nonce tests for script in SVG namespace]
+ expected: FAIL
+
+ [Test empty nonces for meh in HTML namespace]
+ expected: FAIL
+
+ [Ensure that removal of content attribute does not affect IDL attribute for script in HTML namespace]
+ expected: FAIL
+
+ [Test empty nonces for svg in SVG namespace]
+ expected: FAIL
+
+ [Basic nonce tests for div in HTML namespace]
+ expected: FAIL
+
+ [Test empty nonces for div in HTML namespace]
+ expected: FAIL
+
+ [Basic nonce tests for meh in HTML namespace]
+ expected: FAIL
+
+ [Test empty nonces for script in HTML namespace]
+ expected: FAIL
+
+ [Basic nonce tests for meh in SVG namespace]
+ expected: FAIL
+
+ [Basic nonce tests for svg in SVG namespace]
+ expected: FAIL
+
+ [Ensure that removal of content attribute does not affect IDL attribute for svg in SVG namespace]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/nonce-hiding/script-nonces-hidden-meta.sub.html.ini b/tests/wpt/metadata/content-security-policy/nonce-hiding/script-nonces-hidden-meta.sub.html.ini
new file mode 100644
index 00000000000..9f9890d4893
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/nonce-hiding/script-nonces-hidden-meta.sub.html.ini
@@ -0,0 +1,22 @@
+[script-nonces-hidden-meta.sub.html]
+ [Cloned node retains nonce.]
+ expected: FAIL
+
+ [Writing 'nonce' content attribute.]
+ expected: FAIL
+
+ [Cloned node retains nonce when inserted.]
+ expected: FAIL
+
+ [Reading 'nonce' content attribute and IDL attribute.]
+ expected: FAIL
+
+ [Document-written script's nonce value.]
+ expected: FAIL
+
+ [setAttribute('nonce') overwrites '.nonce' upon insertion.]
+ expected: FAIL
+
+ [createElement.setAttribute.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/nonce-hiding/script-nonces-hidden.html.ini b/tests/wpt/metadata/content-security-policy/nonce-hiding/script-nonces-hidden.html.ini
new file mode 100644
index 00000000000..ff9dfde9974
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/nonce-hiding/script-nonces-hidden.html.ini
@@ -0,0 +1,2 @@
+[script-nonces-hidden.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.sub.html.ini b/tests/wpt/metadata/content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.sub.html.ini
new file mode 100644
index 00000000000..86dc4fcae36
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.sub.html.ini
@@ -0,0 +1,20 @@
+[svgscript-nonces-hidden-meta.sub.html]
+ expected: TIMEOUT
+ [Cloned node retains nonce.]
+ expected: FAIL
+
+ [Writing 'nonce' content attribute.]
+ expected: FAIL
+
+ [Cloned node retains nonce when inserted.]
+ expected: FAIL
+
+ [Reading 'nonce' content attribute and IDL attribute.]
+ expected: FAIL
+
+ [Document-written script executes.]
+ expected: NOTRUN
+
+ [createElement.setAttribute.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/nonce-hiding/svgscript-nonces-hidden.html.ini b/tests/wpt/metadata/content-security-policy/nonce-hiding/svgscript-nonces-hidden.html.ini
new file mode 100644
index 00000000000..404a9aa6f78
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/nonce-hiding/svgscript-nonces-hidden.html.ini
@@ -0,0 +1,2 @@
+[svgscript-nonces-hidden.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/object-src/object-src-no-url-blocked.html.ini b/tests/wpt/metadata/content-security-policy/object-src/object-src-no-url-blocked.html.ini
new file mode 100644
index 00000000000..240833d6a3f
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/object-src/object-src-no-url-blocked.html.ini
@@ -0,0 +1,5 @@
+[object-src-no-url-blocked.html]
+ expected: TIMEOUT
+ [Should block the object and fire a spv]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/object-src/object-src-url-blocked.html.ini b/tests/wpt/metadata/content-security-policy/object-src/object-src-url-blocked.html.ini
new file mode 100644
index 00000000000..5a51e576ff2
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/object-src/object-src-url-blocked.html.ini
@@ -0,0 +1,5 @@
+[object-src-url-blocked.html]
+ expected: TIMEOUT
+ [Should block the object and fire a spv]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/object-src/object-src-url-embed-blocked.html.ini b/tests/wpt/metadata/content-security-policy/object-src/object-src-url-embed-blocked.html.ini
new file mode 100644
index 00000000000..33b1f43fd76
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/object-src/object-src-url-embed-blocked.html.ini
@@ -0,0 +1,5 @@
+[object-src-url-embed-blocked.html]
+ expected: TIMEOUT
+ [Should block the object and fire a spv]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/object-src/object-src-url-redirect-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/object-src/object-src-url-redirect-blocked.sub.html.ini
new file mode 100644
index 00000000000..0be45bda8a7
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/object-src/object-src-url-redirect-blocked.sub.html.ini
@@ -0,0 +1,5 @@
+[object-src-url-redirect-blocked.sub.html]
+ expected: TIMEOUT
+ [Should block the object and fire a spv]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-empty.sub.html.ini b/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-empty.sub.html.ini
new file mode 100644
index 00000000000..7659375d1d9
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-empty.sub.html.ini
@@ -0,0 +1,5 @@
+[plugintypes-empty.sub.html]
+ expected: TIMEOUT
+ [Should not load the object because plugin-types allows no plugins]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-mismatched-data.html.ini b/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-mismatched-data.html.ini
new file mode 100644
index 00000000000..c803675faf1
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-mismatched-data.html.ini
@@ -0,0 +1,5 @@
+[plugintypes-mismatched-data.html]
+ expected: TIMEOUT
+ [Should not load the object because its declared type does not match its actual type]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-mismatched-url.html.ini b/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-mismatched-url.html.ini
new file mode 100644
index 00000000000..a3cff41425d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-mismatched-url.html.ini
@@ -0,0 +1,5 @@
+[plugintypes-mismatched-url.html]
+ expected: TIMEOUT
+ [Should not load the object because its declared type does not match its actual type]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-notype-data.html.ini b/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-notype-data.html.ini
new file mode 100644
index 00000000000..17ac0ab1e0b
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-notype-data.html.ini
@@ -0,0 +1,5 @@
+[plugintypes-notype-data.html]
+ expected: TIMEOUT
+ [Should not load the object because it does not have a declared type]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-notype-url.html.ini b/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-notype-url.html.ini
new file mode 100644
index 00000000000..f9ef1071a54
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-notype-url.html.ini
@@ -0,0 +1,5 @@
+[plugintypes-notype-url.html]
+ expected: TIMEOUT
+ [Should not load the object because it does not have a declared type]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-nourl-blocked.html.ini b/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-nourl-blocked.html.ini
new file mode 100644
index 00000000000..059584240d4
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/plugin-types/plugintypes-nourl-blocked.html.ini
@@ -0,0 +1,5 @@
+[plugintypes-nourl-blocked.html]
+ expected: TIMEOUT
+ [Should not load the object because it does not match plugin-types]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-allowed.html.ini b/tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-allowed.html.ini
new file mode 100644
index 00000000000..046b33bef60
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-allowed.html.ini
@@ -0,0 +1,8 @@
+[prefetch-allowed.html]
+ expected: TIMEOUT
+ [Prefetch succeeds when allowed by prefetch-src]
+ expected: TIMEOUT
+
+ [Browser supports prefetch.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-blocked.html.ini b/tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-blocked.html.ini
new file mode 100644
index 00000000000..6b95fb2b215
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-blocked.html.ini
@@ -0,0 +1,8 @@
+[prefetch-blocked.html]
+ expected: TIMEOUT
+ [Blocked prefetch generates report.]
+ expected: TIMEOUT
+
+ [Browser supports prefetch.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-header-allowed.html.ini b/tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-header-allowed.html.ini
new file mode 100644
index 00000000000..b4f3e40a56d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-header-allowed.html.ini
@@ -0,0 +1,8 @@
+[prefetch-header-allowed.html]
+ expected: TIMEOUT
+ [Prefetch via `Link` header succeeds when allowed by prefetch-src]
+ expected: TIMEOUT
+
+ [Browser supports prefetch.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-header-blocked.html.ini b/tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-header-blocked.html.ini
new file mode 100644
index 00000000000..8b21463a7b4
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/prefetch-src/prefetch-header-blocked.html.ini
@@ -0,0 +1,8 @@
+[prefetch-header-blocked.html]
+ expected: TIMEOUT
+ [Prefetch via `Link` header succeeds when allowed by prefetch-src]
+ expected: TIMEOUT
+
+ [Browser supports prefetch.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-only-sends-reports-on-violation.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-only-sends-reports-on-violation.https.sub.html.ini
new file mode 100644
index 00000000000..eac35fb2a35
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-only-sends-reports-on-violation.https.sub.html.ini
@@ -0,0 +1,8 @@
+[reporting-api-report-only-sends-reports-on-violation.https.sub.html]
+ expected: TIMEOUT
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Event is fired]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-to-only-sends-reports-to-first-endpoint.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-to-only-sends-reports-to-first-endpoint.https.sub.html.ini
new file mode 100644
index 00000000000..13d41a0f924
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-to-only-sends-reports-to-first-endpoint.https.sub.html.ini
@@ -0,0 +1,8 @@
+[reporting-api-report-to-only-sends-reports-to-first-endpoint.https.sub.html]
+ expected: TIMEOUT
+ [Test that image does not load]
+ expected: NOTRUN
+
+ [Event is fired]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-1.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-1.https.sub.html.ini
new file mode 100644
index 00000000000..5d5da997c61
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-1.https.sub.html.ini
@@ -0,0 +1,8 @@
+[reporting-api-report-to-overrides-report-uri-1.https.sub.html]
+ expected: TIMEOUT
+ [Test that image does not load]
+ expected: NOTRUN
+
+ [Event is fired]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-2.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-2.https.sub.html.ini
new file mode 100644
index 00000000000..af70e8e285e
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-2.https.sub.html.ini
@@ -0,0 +1,8 @@
+[reporting-api-report-to-overrides-report-uri-2.https.sub.html]
+ expected: TIMEOUT
+ [Test that image does not load]
+ expected: NOTRUN
+
+ [Event is fired]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation.https.sub.html.ini
new file mode 100644
index 00000000000..bf0723b73dc
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation.https.sub.html.ini
@@ -0,0 +1,14 @@
+[reporting-api-sends-reports-on-violation.https.sub.html]
+ expected: TIMEOUT
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test that image does not load]
+ expected: NOTRUN
+
+ [Event is fired]
+ expected: TIMEOUT
+
+ [Report is observable to ReportingObserver]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-works-on-frame-src.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-works-on-frame-src.https.sub.html.ini
new file mode 100644
index 00000000000..65ef4cf00c3
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting-api/reporting-api-works-on-frame-src.https.sub.html.ini
@@ -0,0 +1,8 @@
+[reporting-api-works-on-frame-src.https.sub.html]
+ expected: TIMEOUT
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Event is fired]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/multiple-report-policies.html.ini b/tests/wpt/metadata/content-security-policy/reporting/multiple-report-policies.html.ini
new file mode 100644
index 00000000000..005bf7a5d50
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/multiple-report-policies.html.ini
@@ -0,0 +1,7 @@
+[multiple-report-policies.html]
+ [1-Violation report status OK]
+ expected: FAIL
+
+ [2-Violation report status OK]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/post-redirect-stacktrace.https.html.ini b/tests/wpt/metadata/content-security-policy/reporting/post-redirect-stacktrace.https.html.ini
new file mode 100644
index 00000000000..93674004c4d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/post-redirect-stacktrace.https.html.ini
@@ -0,0 +1,14 @@
+[post-redirect-stacktrace.https.html]
+ expected: ERROR
+ [StackTrace do not leak cross-origin post-redirect URL]
+ expected: FAIL
+
+ [CSP report do not leak cross-site post-redirect URL]
+ expected: NOTRUN
+
+ [StackTrace do not leak cross-site post-redirect URL]
+ expected: FAIL
+
+ [CSP report do not leak cross-origin post-redirect URL]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-and-enforce.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-and-enforce.html.ini
new file mode 100644
index 00000000000..383e819e7d7
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-and-enforce.html.ini
@@ -0,0 +1,7 @@
+[report-and-enforce.html]
+ [The image should be blocked]
+ expected: FAIL
+
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-blocked-data-uri.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-blocked-data-uri.html.ini
new file mode 100644
index 00000000000..9d0ebda5300
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-blocked-data-uri.html.ini
@@ -0,0 +1,4 @@
+[report-blocked-data-uri.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-blocked-uri-cross-origin.sub.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-blocked-uri-cross-origin.sub.html.ini
new file mode 100644
index 00000000000..250f752d24b
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-blocked-uri-cross-origin.sub.html.ini
@@ -0,0 +1,4 @@
+[report-blocked-uri-cross-origin.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-blocked-uri.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-blocked-uri.html.ini
new file mode 100644
index 00000000000..c3306b07a4a
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-blocked-uri.html.ini
@@ -0,0 +1,4 @@
+[report-blocked-uri.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-clips-sample.https.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-clips-sample.https.html.ini
new file mode 100644
index 00000000000..264a407a3a0
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-clips-sample.https.html.ini
@@ -0,0 +1,10 @@
+[report-clips-sample.https.html]
+ [Unsafe eval violation sample is clipped to 40 characters.]
+ expected: FAIL
+
+ [Trusted Types violation sample is clipped to 40 characters excluded the sink name.]
+ expected: FAIL
+
+ [Function constructor - the other kind of eval - is clipped.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-cross-origin-no-cookies.sub.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-cross-origin-no-cookies.sub.html.ini
new file mode 100644
index 00000000000..05075d976b2
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-cross-origin-no-cookies.sub.html.ini
@@ -0,0 +1,4 @@
+[report-cross-origin-no-cookies.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-multiple-violations-01.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-multiple-violations-01.html.ini
new file mode 100644
index 00000000000..6b1d2e5a9df
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-multiple-violations-01.html.ini
@@ -0,0 +1,7 @@
+[report-multiple-violations-01.html]
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test number of sent reports.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-multiple-violations-02.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-multiple-violations-02.html.ini
new file mode 100644
index 00000000000..c19bdccbb0a
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-multiple-violations-02.html.ini
@@ -0,0 +1,7 @@
+[report-multiple-violations-02.html]
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test number of sent reports.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-only-unsafe-eval.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-only-unsafe-eval.html.ini
new file mode 100644
index 00000000000..7c8ccb6316a
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-only-unsafe-eval.html.ini
@@ -0,0 +1,7 @@
+[report-only-unsafe-eval.html]
+ [SPV event is still raised]
+ expected: FAIL
+
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-original-url-on-mixed-content-frame.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-original-url-on-mixed-content-frame.https.sub.html.ini
new file mode 100644
index 00000000000..1c956fc52bc
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-original-url-on-mixed-content-frame.https.sub.html.ini
@@ -0,0 +1,4 @@
+[report-original-url-on-mixed-content-frame.https.sub.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-original-url.sub.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-original-url.sub.html.ini
new file mode 100644
index 00000000000..e9d10ba25e5
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-original-url.sub.html.ini
@@ -0,0 +1,17 @@
+[report-original-url.sub.html]
+ expected: TIMEOUT
+ [Direct block, cross-origin = full URL in report]
+ expected: TIMEOUT
+
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Direct block, same-origin = full URL in report]
+ expected: TIMEOUT
+
+ [Block after redirect, same-origin = original URL in report]
+ expected: TIMEOUT
+
+ [Block after redirect, cross-origin = original URL in report]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-same-origin-with-cookies.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-same-origin-with-cookies.html.ini
new file mode 100644
index 00000000000..ae7da9ac080
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-same-origin-with-cookies.html.ini
@@ -0,0 +1,10 @@
+[report-same-origin-with-cookies.html]
+ [Image should not load]
+ expected: FAIL
+
+ [Violation report status OK.]
+ expected: FAIL
+
+ [Test report cookies.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-strips-fragment.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-strips-fragment.html.ini
new file mode 100644
index 00000000000..67d328b6f63
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-strips-fragment.html.ini
@@ -0,0 +1,5 @@
+[report-strips-fragment.html]
+ expected: TIMEOUT
+ [Reported document URI does not contain fragments.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-uri-effective-directive.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-uri-effective-directive.html.ini
new file mode 100644
index 00000000000..cba39edc192
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-uri-effective-directive.html.ini
@@ -0,0 +1,4 @@
+[report-uri-effective-directive.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-uri-from-child-frame.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-uri-from-child-frame.html.ini
new file mode 100644
index 00000000000..3299f9ce096
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-uri-from-child-frame.html.ini
@@ -0,0 +1,4 @@
+[report-uri-from-child-frame.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-uri-from-inline-javascript.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-uri-from-inline-javascript.html.ini
new file mode 100644
index 00000000000..13657e030c2
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-uri-from-inline-javascript.html.ini
@@ -0,0 +1,4 @@
+[report-uri-from-inline-javascript.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-uri-from-javascript.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-uri-from-javascript.html.ini
new file mode 100644
index 00000000000..c3f9d154393
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-uri-from-javascript.html.ini
@@ -0,0 +1,4 @@
+[report-uri-from-javascript.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-uri-multiple-reversed.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-uri-multiple-reversed.html.ini
new file mode 100644
index 00000000000..226dd1f79ba
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-uri-multiple-reversed.html.ini
@@ -0,0 +1,4 @@
+[report-uri-multiple-reversed.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-uri-multiple.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-uri-multiple.html.ini
new file mode 100644
index 00000000000..4be477f38a4
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-uri-multiple.html.ini
@@ -0,0 +1,4 @@
+[report-uri-multiple.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/reporting/report-uri-scheme-relative.html.ini b/tests/wpt/metadata/content-security-policy/reporting/report-uri-scheme-relative.html.ini
new file mode 100644
index 00000000000..642aee68014
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/reporting/report-uri-scheme-relative.html.ini
@@ -0,0 +1,4 @@
+[report-uri-scheme-relative.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/sandbox/sandbox-empty-subframe.sub.html.ini b/tests/wpt/metadata/content-security-policy/sandbox/sandbox-empty-subframe.sub.html.ini
new file mode 100644
index 00000000000..f8c34cf2d20
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/sandbox/sandbox-empty-subframe.sub.html.ini
@@ -0,0 +1,4 @@
+[sandbox-empty-subframe.sub.html]
+ [Expecting logs: ["PASS2"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/sandbox/window-reuse-unsandboxed.html.ini b/tests/wpt/metadata/content-security-policy/sandbox/window-reuse-unsandboxed.html.ini
new file mode 100644
index 00000000000..627b6992c7a
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/sandbox/window-reuse-unsandboxed.html.ini
@@ -0,0 +1,4 @@
+[window-reuse-unsandboxed.html]
+ [Window object should be reused]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-attr-blocked-src-allowed.html.ini b/tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-attr-blocked-src-allowed.html.ini
new file mode 100644
index 00000000000..1dee29b3d0b
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-attr-blocked-src-allowed.html.ini
@@ -0,0 +1,5 @@
+[script-src-attr-blocked-src-allowed.html]
+ expected: TIMEOUT
+ [Should fire a security policy violation event]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-elem-allowed-attr-blocked.html.ini b/tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-elem-allowed-attr-blocked.html.ini
new file mode 100644
index 00000000000..5f3909c964d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-elem-allowed-attr-blocked.html.ini
@@ -0,0 +1,5 @@
+[script-src-elem-allowed-attr-blocked.html]
+ expected: TIMEOUT
+ [Should fire a security policy violation for the attribute]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-elem-blocked-attr-allowed.html.ini b/tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-elem-blocked-attr-allowed.html.ini
new file mode 100644
index 00000000000..41b92385e96
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-elem-blocked-attr-allowed.html.ini
@@ -0,0 +1,5 @@
+[script-src-elem-blocked-attr-allowed.html]
+ expected: TIMEOUT
+ [Should fire a security policy violation for the attribute]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-elem-blocked-src-allowed.html.ini b/tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-elem-blocked-src-allowed.html.ini
new file mode 100644
index 00000000000..ad54d44a5c4
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src-attr-elem/script-src-elem-blocked-src-allowed.html.ini
@@ -0,0 +1,5 @@
+[script-src-elem-blocked-src-allowed.html]
+ expected: TIMEOUT
+ [Should fire a spv event]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src-attr-elem/strict-dynamic-elem-blocked-src-allowed.sub.html.ini b/tests/wpt/metadata/content-security-policy/script-src-attr-elem/strict-dynamic-elem-blocked-src-allowed.sub.html.ini
new file mode 100644
index 00000000000..e087ef988ee
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src-attr-elem/strict-dynamic-elem-blocked-src-allowed.sub.html.ini
@@ -0,0 +1,4 @@
+[strict-dynamic-elem-blocked-src-allowed.sub.html]
+ [Should fire a security policy violation event]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/eval-allowed-in-report-only-mode-and-sends-report.html.ini b/tests/wpt/metadata/content-security-policy/script-src/eval-allowed-in-report-only-mode-and-sends-report.html.ini
new file mode 100644
index 00000000000..a7195b48c10
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/eval-allowed-in-report-only-mode-and-sends-report.html.ini
@@ -0,0 +1,4 @@
+[eval-allowed-in-report-only-mode-and-sends-report.html]
+ [Violation report status OK.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/injected-inline-script-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/script-src/injected-inline-script-blocked.sub.html.ini
new file mode 100644
index 00000000000..45db29d6b6a
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/injected-inline-script-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[injected-inline-script-blocked.sub.html]
+ [Expecting logs: ["violated-directive=script-src-elem",\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/javascript-window-open-blocked.html.ini b/tests/wpt/metadata/content-security-policy/script-src/javascript-window-open-blocked.html.ini
new file mode 100644
index 00000000000..5f40c0d5aaa
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/javascript-window-open-blocked.html.ini
@@ -0,0 +1,2 @@
+[javascript-window-open-blocked.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/nonce-enforce-blocked.html.ini b/tests/wpt/metadata/content-security-policy/script-src/nonce-enforce-blocked.html.ini
new file mode 100644
index 00000000000..758872f46cc
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/nonce-enforce-blocked.html.ini
@@ -0,0 +1,4 @@
+[nonce-enforce-blocked.html]
+ [Unnonced scripts generate reports.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-1_1.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-1_1.html.ini
new file mode 100644
index 00000000000..5354c7f83f2
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-1_1.html.ini
@@ -0,0 +1,11 @@
+[script-src-1_1.html]
+ expected: TIMEOUT
+ [Inline script block]
+ expected: FAIL
+
+ [Should fire policy violation events]
+ expected: NOTRUN
+
+ [Inline event handler]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-1_10.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-1_10.html.ini
new file mode 100644
index 00000000000..bfdb19f055d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-1_10.html.ini
@@ -0,0 +1,8 @@
+[script-src-1_10.html]
+ expected: TIMEOUT
+ [Verify that data: as script src doesn't run with this policy]
+ expected: FAIL
+
+ [Test that securitypolicyviolation event is fired]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-1_2.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-1_2.html.ini
new file mode 100644
index 00000000000..b21723257e0
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-1_2.html.ini
@@ -0,0 +1,11 @@
+[script-src-1_2.html]
+ expected: TIMEOUT
+ [Inline script block]
+ expected: FAIL
+
+ [Should fire policy violation events]
+ expected: NOTRUN
+
+ [Inline event handler]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-1_2_1.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-1_2_1.html.ini
new file mode 100644
index 00000000000..518d01b46a6
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-1_2_1.html.ini
@@ -0,0 +1,2 @@
+[script-src-1_2_1.html]
+ expected: CRASH
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-1_4.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-1_4.html.ini
new file mode 100644
index 00000000000..f5bf0b22e43
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-1_4.html.ini
@@ -0,0 +1,11 @@
+[script-src-1_4.html]
+ expected: TIMEOUT
+ [eval() should not run without 'unsafe-eval' script-src directive.]
+ expected: FAIL
+
+ [eval() should throw without 'unsafe-eval' keyword source in script-src directive.]
+ expected: FAIL
+
+ [Test that securitypolicyviolation event is fired]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-1_4_1.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-1_4_1.html.ini
new file mode 100644
index 00000000000..d226b8725e1
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-1_4_1.html.ini
@@ -0,0 +1,11 @@
+[script-src-1_4_1.html]
+ expected: TIMEOUT
+ [window.setTimeout()]
+ expected: FAIL
+
+ [window.setInterval()]
+ expected: FAIL
+
+ [Test that securitypolicyviolation event is fired]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-1_4_2.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-1_4_2.html.ini
new file mode 100644
index 00000000000..ad590f2e990
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-1_4_2.html.ini
@@ -0,0 +1,8 @@
+[script-src-1_4_2.html]
+ expected: TIMEOUT
+ [Unsafe eval ran in Function() constructor.]
+ expected: FAIL
+
+ [Test that securitypolicyviolation event is fired]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-multiple-policies-multiple-hashing-algorithms.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-multiple-policies-multiple-hashing-algorithms.html.ini
new file mode 100644
index 00000000000..ba610098ab5
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-multiple-policies-multiple-hashing-algorithms.html.ini
@@ -0,0 +1,2 @@
+[script-src-multiple-policies-multiple-hashing-algorithms.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-multiple-policies-one-using-hashing-algorithms.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-multiple-policies-one-using-hashing-algorithms.html.ini
new file mode 100644
index 00000000000..0b0a4508234
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-multiple-policies-one-using-hashing-algorithms.html.ini
@@ -0,0 +1,2 @@
+[script-src-multiple-policies-one-using-hashing-algorithms.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-report-only-policy-works-with-external-hash-policy.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-report-only-policy-works-with-external-hash-policy.html.ini
new file mode 100644
index 00000000000..5195cd40028
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-report-only-policy-works-with-external-hash-policy.html.ini
@@ -0,0 +1,2 @@
+[script-src-report-only-policy-works-with-external-hash-policy.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-report-only-policy-works-with-hash-policy.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-report-only-policy-works-with-hash-policy.html.ini
new file mode 100644
index 00000000000..e3693470d59
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-report-only-policy-works-with-hash-policy.html.ini
@@ -0,0 +1,2 @@
+[script-src-report-only-policy-works-with-hash-policy.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-sri_hash.sub.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-sri_hash.sub.html.ini
new file mode 100644
index 00000000000..5980b7acc32
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-sri_hash.sub.html.ini
@@ -0,0 +1,2 @@
+[script-src-sri_hash.sub.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html.ini
new file mode 100644
index 00000000000..25a790cd117
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_eval.html.ini
@@ -0,0 +1,2 @@
+[script-src-strict_dynamic_and_unsafe_eval_eval.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function.html.ini
new file mode 100644
index 00000000000..ced31054486
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_and_unsafe_eval_new_function.html.ini
@@ -0,0 +1,2 @@
+[script-src-strict_dynamic_and_unsafe_eval_new_function.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_discard_source_expressions.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_discard_source_expressions.html.ini
new file mode 100644
index 00000000000..44f3c512bb6
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_discard_source_expressions.html.ini
@@ -0,0 +1,4 @@
+[script-src-strict_dynamic_discard_source_expressions.html]
+ [Allowed scripts without a correct nonce are not permitted with `strict-dynamic`.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce.html.ini
new file mode 100644
index 00000000000..4c84ffdc50b
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_double_policy_different_nonce.html.ini
@@ -0,0 +1,2 @@
+[script-src-strict_dynamic_double_policy_different_nonce.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_source_expressions.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_source_expressions.html.ini
new file mode 100644
index 00000000000..ab023c8c763
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_double_policy_honor_source_expressions.html.ini
@@ -0,0 +1,2 @@
+[script-src-strict_dynamic_double_policy_honor_source_expressions.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html.ini
new file mode 100644
index 00000000000..5bb552f6f7d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_double_policy_report_only.html.ini
@@ -0,0 +1,2 @@
+[script-src-strict_dynamic_double_policy_report_only.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_eval.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_eval.html.ini
new file mode 100644
index 00000000000..bcb3bfe3f0e
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_eval.html.ini
@@ -0,0 +1,2 @@
+[script-src-strict_dynamic_eval.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_javascript_uri.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_javascript_uri.html.ini
new file mode 100644
index 00000000000..3bfc55aabd6
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_javascript_uri.html.ini
@@ -0,0 +1,2 @@
+[script-src-strict_dynamic_javascript_uri.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_new_function.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_new_function.html.ini
new file mode 100644
index 00000000000..28d88ad260c
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_new_function.html.ini
@@ -0,0 +1,2 @@
+[script-src-strict_dynamic_new_function.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html.ini
new file mode 100644
index 00000000000..85aab66dd41
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted.html.ini
@@ -0,0 +1,2 @@
+[script-src-strict_dynamic_non_parser_inserted.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html.ini
new file mode 100644
index 00000000000..019f756bc93
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html.ini
@@ -0,0 +1,2 @@
+[script-src-strict_dynamic_non_parser_inserted_incorrect_nonce.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html.ini
new file mode 100644
index 00000000000..e674891198b
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted.html.ini
@@ -0,0 +1,2 @@
+[script-src-strict_dynamic_parser_inserted.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce.html.ini
new file mode 100644
index 00000000000..c7f30fcb5fc
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted_correct_nonce.html.ini
@@ -0,0 +1,2 @@
+[script-src-strict_dynamic_parser_inserted_correct_nonce.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_worker.https.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_worker.https.html.ini
new file mode 100644
index 00000000000..0db705186c5
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-strict_dynamic_worker.https.html.ini
@@ -0,0 +1,8 @@
+[script-src-strict_dynamic_worker.https.html]
+ expected: ERROR
+ [Service worker is allowed via 'strict-dynamic']
+ expected: FAIL
+
+ [Shared worker is allowed via 'strict-dynamic']
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/script-src-wildcards-disallowed.html.ini b/tests/wpt/metadata/content-security-policy/script-src/script-src-wildcards-disallowed.html.ini
new file mode 100644
index 00000000000..643590a472a
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/script-src-wildcards-disallowed.html.ini
@@ -0,0 +1,7 @@
+[script-src-wildcards-disallowed.html]
+ [blob: URIs should not match *]
+ expected: FAIL
+
+ [data: URIs should not match *]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/scripthash-basic-blocked-error-event.html.ini b/tests/wpt/metadata/content-security-policy/script-src/scripthash-basic-blocked-error-event.html.ini
new file mode 100644
index 00000000000..8f76a9b2a60
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/scripthash-basic-blocked-error-event.html.ini
@@ -0,0 +1,2 @@
+[scripthash-basic-blocked-error-event.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata/content-security-policy/script-src/scripthash-changed-2.html.ini b/tests/wpt/metadata/content-security-policy/script-src/scripthash-changed-2.html.ini
new file mode 100644
index 00000000000..3b9577a8bf1
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/scripthash-changed-2.html.ini
@@ -0,0 +1,4 @@
+[scripthash-changed-2.html]
+ [scr2.innerText before modification should be blocked]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/scripthash-unicode-normalization.sub.html.ini b/tests/wpt/metadata/content-security-policy/script-src/scripthash-unicode-normalization.sub.html.ini
new file mode 100644
index 00000000000..bc1db0dd873
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/scripthash-unicode-normalization.sub.html.ini
@@ -0,0 +1,8 @@
+[scripthash-unicode-normalization.sub.html]
+ expected: TIMEOUT
+ [Only matching content runs even with NFC normalization.]
+ expected: FAIL
+
+ [Should fire securitypolicyviolation]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/scriptnonce-and-scripthash.sub.html.ini b/tests/wpt/metadata/content-security-policy/script-src/scriptnonce-and-scripthash.sub.html.ini
new file mode 100644
index 00000000000..bf1adfaefb4
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/scriptnonce-and-scripthash.sub.html.ini
@@ -0,0 +1,4 @@
+[scriptnonce-and-scripthash.sub.html]
+ [Expecting alerts: ["PASS (1/3)","PASS (2/3)","PASS (3/3)"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/scriptnonce-basic-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/script-src/scriptnonce-basic-blocked.sub.html.ini
new file mode 100644
index 00000000000..8b56b947cb2
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/scriptnonce-basic-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[scriptnonce-basic-blocked.sub.html]
+ [Expecting alerts: ["PASS (closely-quoted nonce)","PASS (nonce w/whitespace)", "violated-directive=script-src-elem", "violated-directive=script-src-elem", "violated-directive=script-src-elem"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/scriptnonce-changed-2.html.ini b/tests/wpt/metadata/content-security-policy/script-src/scriptnonce-changed-2.html.ini
new file mode 100644
index 00000000000..8e7eb6e8a1b
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/scriptnonce-changed-2.html.ini
@@ -0,0 +1,4 @@
+[scriptnonce-changed-2.html]
+ [scr2 nonce before modification should be blocked]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/scriptnonce-ignore-unsafeinline.sub.html.ini b/tests/wpt/metadata/content-security-policy/script-src/scriptnonce-ignore-unsafeinline.sub.html.ini
new file mode 100644
index 00000000000..5fd49e14f7c
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/scriptnonce-ignore-unsafeinline.sub.html.ini
@@ -0,0 +1,4 @@
+[scriptnonce-ignore-unsafeinline.sub.html]
+ [Expecting alerts: ["PASS (1/2)","PASS (2/2)", "violated-directive=script-src-elem"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/srcdoc-doesnt-bypass-script-src.sub.html.ini b/tests/wpt/metadata/content-security-policy/script-src/srcdoc-doesnt-bypass-script-src.sub.html.ini
new file mode 100644
index 00000000000..ef16dd649df
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/srcdoc-doesnt-bypass-script-src.sub.html.ini
@@ -0,0 +1,4 @@
+[srcdoc-doesnt-bypass-script-src.sub.html]
+ [Expecting logs: ["violated-directive=script-src-elem"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/worker-eval-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/script-src/worker-eval-blocked.sub.html.ini
new file mode 100644
index 00000000000..28fdcbc0307
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/worker-eval-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[worker-eval-blocked.sub.html]
+ [Expecting logs: ["eval blocked"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/worker-function-function-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/script-src/worker-function-function-blocked.sub.html.ini
new file mode 100644
index 00000000000..ae5e74d7369
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/worker-function-function-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[worker-function-function-blocked.sub.html]
+ [Expecting logs: ["Function() function blocked"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/worker-importscripts-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/script-src/worker-importscripts-blocked.sub.html.ini
new file mode 100644
index 00000000000..58d08d644e5
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/worker-importscripts-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[worker-importscripts-blocked.sub.html]
+ [worker-importscripts-blocked]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/script-src/worker-set-timeout-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/script-src/worker-set-timeout-blocked.sub.html.ini
new file mode 100644
index 00000000000..4b125b42e3f
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/script-src/worker-set-timeout-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[worker-set-timeout-blocked.sub.html]
+ [Expecting alerts: ["setTimeout blocked"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/blockeduri-eval.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/blockeduri-eval.html.ini
new file mode 100644
index 00000000000..8ed1b09b93f
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/blockeduri-eval.html.ini
@@ -0,0 +1,4 @@
+[blockeduri-eval.html]
+ [Eval violations have a blockedURI of 'eval']
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/blockeduri-inline.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/blockeduri-inline.html.ini
new file mode 100644
index 00000000000..a966001bcd6
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/blockeduri-inline.html.ini
@@ -0,0 +1,8 @@
+[blockeduri-inline.html]
+ expected: TIMEOUT
+ [Blocked script shouldn't execute.]
+ expected: FAIL
+
+ [Inline violations have a blockedURI of 'inline']
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/constructor-required-fields.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/constructor-required-fields.html.ini
new file mode 100644
index 00000000000..d29d2c98aee
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/constructor-required-fields.html.ini
@@ -0,0 +1,43 @@
+[constructor-required-fields.html]
+ [SecurityPolicyViolationEvent constructor does not require sourceFile]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent constructor does not require sample]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent constructor works with an init dict]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent constructor does not require referrer]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent constructor should throw with no parameters]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent constructor does not require lineNumber]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent constructor requires statusCode]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent constructor requires effectiveDirective]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent constructor requires originalPolicy]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent constructor does not require blockedURI]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent constructor requires violatedDirective]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent constructor requires disposition]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent constructor does not require columnNumber]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent constructor requires documentURI]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/idlharness.window.js.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/idlharness.window.js.ini
new file mode 100644
index 00000000000..6b1f0f27775
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/idlharness.window.js.ini
@@ -0,0 +1,172 @@
+[idlharness.window.html]
+ [CSPViolationReportBody interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "sample" with the proper type]
+ expected: FAIL
+
+ [CSPViolationReportBody interface: attribute sample]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "sourceFile" with the proper type]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "lineNumber" with the proper type]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "statusCode" with the proper type]
+ expected: FAIL
+
+ [CSPViolationReportBody interface: attribute effectiveDirective]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute sourceFile]
+ expected: FAIL
+
+ [CSPViolationReportBody interface: attribute disposition]
+ expected: FAIL
+
+ [Stringification of new SecurityPolicyViolationEvent("securitypolicyviolation")]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface object length]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute columnNumber]
+ expected: FAIL
+
+ [CSPViolationReportBody interface: attribute lineNumber]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "referrer" with the proper type]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "colno" with the proper type]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "originalPolicy" with the proper type]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "columnNumber" with the proper type]
+ expected: FAIL
+
+ [CSPViolationReportBody interface: existence and properties of interface object]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute disposition]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute lineno]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute colno]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "blockedURL" with the proper type]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute originalPolicy]
+ expected: FAIL
+
+ [CSPViolationReportBody interface object length]
+ expected: FAIL
+
+ [CSPViolationReportBody interface: attribute blockedURL]
+ expected: FAIL
+
+ [CSPViolationReportBody interface: attribute sourceFile]
+ expected: FAIL
+
+ [CSPViolationReportBody interface: attribute documentURL]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute referrer]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "documentURI" with the proper type]
+ expected: FAIL
+
+ [CSPViolationReportBody interface: attribute referrer]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute effectiveDirective]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute documentURL]
+ expected: FAIL
+
+ [CSPViolationReportBody interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute statusCode]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "documentURL" with the proper type]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "effectiveDirective" with the proper type]
+ expected: FAIL
+
+ [CSPViolationReportBody interface: attribute statusCode]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute sample]
+ expected: FAIL
+
+ [CSPViolationReportBody interface: attribute originalPolicy]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute documentURI]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute lineNumber]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute blockedURI]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent must be primary interface of new SecurityPolicyViolationEvent("securitypolicyviolation")]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute violatedDirective]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: attribute blockedURL]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "lineno" with the proper type]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "violatedDirective" with the proper type]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [CSPViolationReportBody interface object name]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "disposition" with the proper type]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: existence and properties of interface object]
+ expected: FAIL
+
+ [CSPViolationReportBody interface: attribute columnNumber]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent("securitypolicyviolation") must inherit property "blockedURI" with the proper type]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [SecurityPolicyViolationEvent interface object name]
+ expected: FAIL
+
+ [CSPViolationReportBody interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/img-src-redirect-upgrade-reporting.https.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/img-src-redirect-upgrade-reporting.https.html.ini
new file mode 100644
index 00000000000..cb79b81b03f
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/img-src-redirect-upgrade-reporting.https.html.ini
@@ -0,0 +1,5 @@
+[img-src-redirect-upgrade-reporting.https.html]
+ expected: TIMEOUT
+ [Image that redirects to http:// URL prohibited by Report-Only must generate a violation report, even with upgrade-insecure-requests]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/inside-dedicated-worker.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/inside-dedicated-worker.html.ini
new file mode 100644
index 00000000000..91250fb63b4
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/inside-dedicated-worker.html.ini
@@ -0,0 +1,8 @@
+[inside-dedicated-worker.html]
+ expected: TIMEOUT
+ [SecurityPolicyViolation event fired on global with the correct blockedURI.]
+ expected: TIMEOUT
+
+ [SecurityPolicyViolation event fired on global.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/inside-service-worker.https.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/inside-service-worker.https.html.ini
new file mode 100644
index 00000000000..e23adfab4d0
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/inside-service-worker.https.html.ini
@@ -0,0 +1,2 @@
+[inside-service-worker.https.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/inside-shared-worker.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/inside-shared-worker.html.ini
new file mode 100644
index 00000000000..ccf09801bc1
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/inside-shared-worker.html.ini
@@ -0,0 +1,2 @@
+[inside-shared-worker.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/script-sample-no-opt-in.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/script-sample-no-opt-in.html.ini
new file mode 100644
index 00000000000..d53c1cae6bf
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/script-sample-no-opt-in.html.ini
@@ -0,0 +1,14 @@
+[script-sample-no-opt-in.html]
+ expected: ERROR
+ [Inline event handlers should not have a sample.]
+ expected: TIMEOUT
+
+ [eval()-alikes should not have a sample.]
+ expected: TIMEOUT
+
+ [JavaScript URLs in iframes should not have a sample.]
+ expected: TIMEOUT
+
+ [Inline script should not have a sample.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/script-sample.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/script-sample.html.ini
new file mode 100644
index 00000000000..586989e04bf
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/script-sample.html.ini
@@ -0,0 +1,20 @@
+[script-sample.html]
+ expected: ERROR
+ [Inline event handlers should have a sample.]
+ expected: TIMEOUT
+
+ [setTimeout() should have a sample.]
+ expected: TIMEOUT
+
+ [eval() should have a sample.]
+ expected: TIMEOUT
+
+ [setInterval() should have a sample.]
+ expected: TIMEOUT
+
+ [Inline script should have a sample.]
+ expected: TIMEOUT
+
+ [JavaScript URLs in iframes should have a sample.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image-from-script.sub.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image-from-script.sub.html.ini
new file mode 100644
index 00000000000..773d2f3fa07
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image-from-script.sub.html.ini
@@ -0,0 +1,5 @@
+[securitypolicyviolation-block-cross-origin-image-from-script.sub.html]
+ expected: TIMEOUT
+ [Non-redirected cross-origin URLs are not stripped.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image.sub.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image.sub.html.ini
new file mode 100644
index 00000000000..b6ab7f07d87
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image.sub.html.ini
@@ -0,0 +1,5 @@
+[securitypolicyviolation-block-cross-origin-image.sub.html]
+ expected: TIMEOUT
+ [Non-redirected cross-origin URLs are not stripped.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image-from-script.sub.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image-from-script.sub.html.ini
new file mode 100644
index 00000000000..520711ce10c
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image-from-script.sub.html.ini
@@ -0,0 +1,5 @@
+[securitypolicyviolation-block-image-from-script.sub.html]
+ expected: TIMEOUT
+ [Non-redirected cross-origin URLs are not stripped.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image.sub.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image.sub.html.ini
new file mode 100644
index 00000000000..09bdcf438f9
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image.sub.html.ini
@@ -0,0 +1,5 @@
+[securitypolicyviolation-block-image.sub.html]
+ expected: TIMEOUT
+ [Non-redirected same-origin URLs are not stripped.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/style-sample-no-opt-in.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/style-sample-no-opt-in.html.ini
new file mode 100644
index 00000000000..122a3c0dad5
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/style-sample-no-opt-in.html.ini
@@ -0,0 +1,8 @@
+[style-sample-no-opt-in.html]
+ expected: TIMEOUT
+ [Inline style blocks should not have a sample.]
+ expected: TIMEOUT
+
+ [Inline style attributes should not have a sample.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/style-sample.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/style-sample.html.ini
new file mode 100644
index 00000000000..401f93114da
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/style-sample.html.ini
@@ -0,0 +1,8 @@
+[style-sample.html]
+ expected: TIMEOUT
+ [Inline style attributes should have a sample.]
+ expected: TIMEOUT
+
+ [Inline style blocks should have a sample.]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/targeting.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/targeting.html.ini
new file mode 100644
index 00000000000..bb36c37fd83
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/targeting.html.ini
@@ -0,0 +1,17 @@
+[targeting.html]
+ expected: ERROR
+ [Inline violations target the right element.]
+ expected: TIMEOUT
+
+ [Elements created in this document, but pushed into a same-origin frame trigger on that frame's document, not on this frame's document.]
+ expected: TIMEOUT
+
+ [Correct targeting inside shadow tree (inline handler).]
+ expected: FAIL
+
+ [Correct targeting inside shadow tree (style).]
+ expected: FAIL
+
+ [These tests should not fail.]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html.ini b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html.ini
new file mode 100644
index 00000000000..05234f00690
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html.ini
@@ -0,0 +1,11 @@
+[upgrade-insecure-requests-reporting.https.html]
+ expected: TIMEOUT
+ [Upgraded image is reported]
+ expected: FAIL
+
+ [Upgraded iframe is reported]
+ expected: TIMEOUT
+
+ [Navigated iframe is upgraded and reported]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-attr-blocked-src-allowed.html.ini b/tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-attr-blocked-src-allowed.html.ini
new file mode 100644
index 00000000000..632ca55fc43
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-attr-blocked-src-allowed.html.ini
@@ -0,0 +1,8 @@
+[style-src-attr-blocked-src-allowed.html]
+ expected: TIMEOUT
+ [The attribute style should not be applied]
+ expected: FAIL
+
+ [Should fire a security policy violation event]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-elem-allowed-attr-blocked.html.ini b/tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-elem-allowed-attr-blocked.html.ini
new file mode 100644
index 00000000000..54c6bb8e33d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-elem-allowed-attr-blocked.html.ini
@@ -0,0 +1,8 @@
+[style-src-elem-allowed-attr-blocked.html]
+ expected: TIMEOUT
+ [The attribute style should not be applied and the inline style should be applied]
+ expected: FAIL
+
+ [Should fire a security policy violation for the attribute]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-elem-blocked-attr-allowed.html.ini b/tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-elem-blocked-attr-allowed.html.ini
new file mode 100644
index 00000000000..58f0e64ec17
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-elem-blocked-attr-allowed.html.ini
@@ -0,0 +1,8 @@
+[style-src-elem-blocked-attr-allowed.html]
+ expected: TIMEOUT
+ [Should fire a security policy violation for the inline block]
+ expected: NOTRUN
+
+ [The inline style should not be applied and the attribute style should be applied]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-elem-blocked-src-allowed.html.ini b/tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-elem-blocked-src-allowed.html.ini
new file mode 100644
index 00000000000..b48c74a2bae
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src-attr-elem/style-src-elem-blocked-src-allowed.html.ini
@@ -0,0 +1,8 @@
+[style-src-elem-blocked-src-allowed.html]
+ expected: TIMEOUT
+ [Should fire a security policy violation event]
+ expected: NOTRUN
+
+ [The inline style should not be applied]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/injected-inline-style-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/style-src/injected-inline-style-blocked.sub.html.ini
new file mode 100644
index 00000000000..dcb71397322
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/injected-inline-style-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[injected-inline-style-blocked.sub.html]
+ [Expecting logs: ["violated-directive=style-src-elem","PASS"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub.html.ini b/tests/wpt/metadata/content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub.html.ini
new file mode 100644
index 00000000000..5eec51c6062
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub.html.ini
@@ -0,0 +1,14 @@
+[inline-style-allowed-while-cloning-objects.sub.html]
+ expected: TIMEOUT
+ [inline-style-allowed-while-cloning-objects 12]
+ expected: FAIL
+
+ [inline-style-allowed-while-cloning-objects 14]
+ expected: FAIL
+
+ [non-HTML namespace]
+ expected: FAIL
+
+ [Test that violation report event was fired]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/inline-style-attribute-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/style-src/inline-style-attribute-blocked.sub.html.ini
new file mode 100644
index 00000000000..d9f2cb97e5b
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/inline-style-attribute-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[inline-style-attribute-blocked.sub.html]
+ [Expecting logs: ["violated-directive=style-src-attr","PASS"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/inline-style-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/style-src/inline-style-blocked.sub.html.ini
new file mode 100644
index 00000000000..7ee7c4ac446
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/inline-style-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[inline-style-blocked.sub.html]
+ [Expecting logs: ["PASS"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/style-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/style-src/style-blocked.sub.html.ini
new file mode 100644
index 00000000000..5e358cf9d9f
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/style-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[style-blocked.sub.html]
+ [Expecting logs: ["violated-directive=style-src","PASS"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/style-src-error-event-fires.html.ini b/tests/wpt/metadata/content-security-policy/style-src/style-src-error-event-fires.html.ini
new file mode 100644
index 00000000000..d49324342f3
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/style-src-error-event-fires.html.ini
@@ -0,0 +1,8 @@
+[style-src-error-event-fires.html]
+ expected: TIMEOUT
+ [Test error event fires on inline style]
+ expected: NOTRUN
+
+ [Test error event fires on stylesheet link]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/style-src-hash-blocked.html.ini b/tests/wpt/metadata/content-security-policy/style-src/style-src-hash-blocked.html.ini
new file mode 100644
index 00000000000..efae17d2eac
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/style-src-hash-blocked.html.ini
@@ -0,0 +1,8 @@
+[style-src-hash-blocked.html]
+ expected: TIMEOUT
+ [Should fire a securitypolicyviolation event]
+ expected: NOTRUN
+
+ [Should not load style that does not match hash]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/style-src-imported-style-blocked.html.ini b/tests/wpt/metadata/content-security-policy/style-src/style-src-imported-style-blocked.html.ini
new file mode 100644
index 00000000000..f09448c1ffc
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/style-src-imported-style-blocked.html.ini
@@ -0,0 +1,5 @@
+[style-src-imported-style-blocked.html]
+ expected: TIMEOUT
+ [Should fire a securitypolicyviolation event]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/style-src-injected-inline-style-blocked.html.ini b/tests/wpt/metadata/content-security-policy/style-src/style-src-injected-inline-style-blocked.html.ini
new file mode 100644
index 00000000000..a60639a0441
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/style-src-injected-inline-style-blocked.html.ini
@@ -0,0 +1,8 @@
+[style-src-injected-inline-style-blocked.html]
+ expected: TIMEOUT
+ [Should fire a securitypolicyviolation event]
+ expected: NOTRUN
+
+ [Injected style attributes should not be applied]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/style-src-injected-stylesheet-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/style-src/style-src-injected-stylesheet-blocked.sub.html.ini
new file mode 100644
index 00000000000..3f4ea96cf8c
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/style-src-injected-stylesheet-blocked.sub.html.ini
@@ -0,0 +1,8 @@
+[style-src-injected-stylesheet-blocked.sub.html]
+ expected: TIMEOUT
+ [Should fire a securitypolicyviolation event]
+ expected: NOTRUN
+
+ [Programatically injected stylesheet should not load]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-attribute-blocked.html.ini b/tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-attribute-blocked.html.ini
new file mode 100644
index 00000000000..e9f45e11b20
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-attribute-blocked.html.ini
@@ -0,0 +1,8 @@
+[style-src-inline-style-attribute-blocked.html]
+ expected: TIMEOUT
+ [Should fire a securitypolicyviolation event]
+ expected: NOTRUN
+
+ [Inline style attribute should not be applied without 'unsafe-inline']
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-blocked.html.ini b/tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-blocked.html.ini
new file mode 100644
index 00000000000..a5df24fd0b0
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-blocked.html.ini
@@ -0,0 +1,8 @@
+[style-src-inline-style-blocked.html]
+ expected: TIMEOUT
+ [Should fire a securitypolicyviolation event]
+ expected: NOTRUN
+
+ [Inline style element should not load without 'unsafe-inline']
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-nonce-blocked-error-event.html.ini b/tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-nonce-blocked-error-event.html.ini
new file mode 100644
index 00000000000..e8430283380
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-nonce-blocked-error-event.html.ini
@@ -0,0 +1,8 @@
+[style-src-inline-style-nonce-blocked-error-event.html]
+ expected: TIMEOUT
+ [Should fire a securitypolicyviolation event]
+ expected: NOTRUN
+
+ [Test that paragraph remains unmodified and error events received.]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-nonce-blocked.html.ini b/tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-nonce-blocked.html.ini
new file mode 100644
index 00000000000..29ab7bb7972
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/style-src-inline-style-nonce-blocked.html.ini
@@ -0,0 +1,8 @@
+[style-src-inline-style-nonce-blocked.html]
+ expected: TIMEOUT
+ [Should fire a securitypolicyviolation event]
+ expected: NOTRUN
+
+ [Should not load inline style element with invalid nonce]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/style-src-none-blocked.html.ini b/tests/wpt/metadata/content-security-policy/style-src/style-src-none-blocked.html.ini
new file mode 100644
index 00000000000..6884544631d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/style-src-none-blocked.html.ini
@@ -0,0 +1,8 @@
+[style-src-none-blocked.html]
+ expected: TIMEOUT
+ [Should fire a securitypolicyviolation event]
+ expected: NOTRUN
+
+ [Should not stylesheet when style-src is 'none']
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/style-src-stylesheet-nonce-blocked.html.ini b/tests/wpt/metadata/content-security-policy/style-src/style-src-stylesheet-nonce-blocked.html.ini
new file mode 100644
index 00000000000..8932a591233
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/style-src-stylesheet-nonce-blocked.html.ini
@@ -0,0 +1,8 @@
+[style-src-stylesheet-nonce-blocked.html]
+ expected: TIMEOUT
+ [Should fire a securitypolicyviolation event]
+ expected: NOTRUN
+
+ [Should not load stylesheet without correct nonce]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/stylehash-basic-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/style-src/stylehash-basic-blocked.sub.html.ini
new file mode 100644
index 00000000000..4af53c4b354
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/stylehash-basic-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[stylehash-basic-blocked.sub.html]
+ [Expecting alerts: ["PASS: The 'p' element's text is green, which means the style was correctly applied.", "violated-directive=style-src-elem"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/stylenonce-allowed.sub.html.ini b/tests/wpt/metadata/content-security-policy/style-src/stylenonce-allowed.sub.html.ini
new file mode 100644
index 00000000000..a7cea270282
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/stylenonce-allowed.sub.html.ini
@@ -0,0 +1,8 @@
+[stylenonce-allowed.sub.html]
+ expected: TIMEOUT
+ [stylenonce-allowed]
+ expected: FAIL
+
+ [Should fire securitypolicyviolation]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/style-src/stylenonce-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/style-src/stylenonce-blocked.sub.html.ini
new file mode 100644
index 00000000000..8a219293cd2
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/style-src/stylenonce-blocked.sub.html.ini
@@ -0,0 +1,8 @@
+[stylenonce-blocked.sub.html]
+ expected: TIMEOUT
+ [stylenonce-blocked]
+ expected: FAIL
+
+ [Should fire securitypolicyviolation]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/svg/object-in-svg-foreignobject.sub.html.ini b/tests/wpt/metadata/content-security-policy/svg/object-in-svg-foreignobject.sub.html.ini
new file mode 100644
index 00000000000..889c8b0d45b
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/svg/object-in-svg-foreignobject.sub.html.ini
@@ -0,0 +1,5 @@
+[object-in-svg-foreignobject.sub.html]
+ expected: TIMEOUT
+ [Should throw a securitypolicyviolation]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/content-security-policy/svg/svg-inline.sub.html.ini b/tests/wpt/metadata/content-security-policy/svg/svg-inline.sub.html.ini
new file mode 100644
index 00000000000..7517a91a482
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/svg/svg-inline.sub.html.ini
@@ -0,0 +1,5 @@
+[svg-inline.sub.html]
+ expected: TIMEOUT
+ [Should fire violation event]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-eval/eval-blocked-and-sends-report.sub.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-eval/eval-blocked-and-sends-report.sub.html.ini
new file mode 100644
index 00000000000..317780a05ac
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-eval/eval-blocked-and-sends-report.sub.html.ini
@@ -0,0 +1,7 @@
+[eval-blocked-and-sends-report.sub.html]
+ [Expecting logs: ["PASS: eval() blocked.","violated-directive=script-src"\]]
+ expected: FAIL
+
+ [eval-blocked-and-sends-report]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-eval/eval-blocked-in-about-blank-iframe.sub.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-eval/eval-blocked-in-about-blank-iframe.sub.html.ini
new file mode 100644
index 00000000000..016b514fcea
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-eval/eval-blocked-in-about-blank-iframe.sub.html.ini
@@ -0,0 +1,4 @@
+[eval-blocked-in-about-blank-iframe.sub.html]
+ [Expecting logs: ["violated-directive=script-src","PASS"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-eval/eval-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-eval/eval-blocked.sub.html.ini
new file mode 100644
index 00000000000..a97cd4d90ae
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-eval/eval-blocked.sub.html.ini
@@ -0,0 +1,10 @@
+[eval-blocked.sub.html]
+ [Expecting logs: ["PASS EvalError","PASS EvalError", "violated-directive=script-src"\]]
+ expected: FAIL
+
+ [eval-blocked 1]
+ expected: FAIL
+
+ [eval-blocked]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-eval/eval-scripts-setInterval-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-eval/eval-scripts-setInterval-blocked.sub.html.ini
new file mode 100644
index 00000000000..da775f86ba3
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-eval/eval-scripts-setInterval-blocked.sub.html.ini
@@ -0,0 +1,7 @@
+[eval-scripts-setInterval-blocked.sub.html]
+ [eval-scripts-setInterval-blocked]
+ expected: FAIL
+
+ [Expecting logs: ["PASS","violated-directive=script-src"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-eval/eval-scripts-setTimeout-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-eval/eval-scripts-setTimeout-blocked.sub.html.ini
new file mode 100644
index 00000000000..cac8027b779
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-eval/eval-scripts-setTimeout-blocked.sub.html.ini
@@ -0,0 +1,7 @@
+[eval-scripts-setTimeout-blocked.sub.html]
+ [eval-scripts-setTimeout-blocked]
+ expected: FAIL
+
+ [Expecting logs: ["PASS","violated-directive=script-src"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-eval/function-constructor-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-eval/function-constructor-blocked.sub.html.ini
new file mode 100644
index 00000000000..4bd3c37056b
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-eval/function-constructor-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[function-constructor-blocked.sub.html]
+ [Expecting logs: ["PASS EvalError","violated-directive=script-src"\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-href.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-href.html.ini
new file mode 100644
index 00000000000..7f9f73c9156
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-href.html.ini
@@ -0,0 +1,5 @@
+[javascript_src_denied_missing_unsafe_hashes-href.html]
+ expected: TIMEOUT
+ [Test that the javascript: src is not allowed to run]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-href_blank.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-href_blank.html.ini
new file mode 100644
index 00000000000..c28f6f37b62
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-href_blank.html.ini
@@ -0,0 +1,5 @@
+[javascript_src_denied_missing_unsafe_hashes-href_blank.html]
+ expected: TIMEOUT
+ [Test that the javascript: src is not allowed to run]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-window_location.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-window_location.html.ini
new file mode 100644
index 00000000000..cbf4d0ba481
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-window_location.html.ini
@@ -0,0 +1,4 @@
+[javascript_src_denied_missing_unsafe_hashes-window_location.html]
+ [Test that the javascript: src is not allowed to run]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-window_open.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-window_open.html.ini
new file mode 100644
index 00000000000..9c44346be02
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-window_open.html.ini
@@ -0,0 +1,4 @@
+[javascript_src_denied_missing_unsafe_hashes-window_open.html]
+ [Test that the javascript: src is not allowed to run]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-href.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-href.html.ini
new file mode 100644
index 00000000000..395dc6d129b
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-href.html.ini
@@ -0,0 +1,5 @@
+[javascript_src_denied_wrong_hash-href.html]
+ expected: TIMEOUT
+ [Test that the javascript: src is not allowed to run]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-href_blank.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-href_blank.html.ini
new file mode 100644
index 00000000000..fd883f3c20b
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-href_blank.html.ini
@@ -0,0 +1,5 @@
+[javascript_src_denied_wrong_hash-href_blank.html]
+ expected: TIMEOUT
+ [Test that the javascript: src is not allowed to run]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-window_location.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-window_location.html.ini
new file mode 100644
index 00000000000..6daea8f0845
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-window_location.html.ini
@@ -0,0 +1,4 @@
+[javascript_src_denied_wrong_hash-window_location.html]
+ [Test that the javascript: src is not allowed to run]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-window_open.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-window_open.html.ini
new file mode 100644
index 00000000000..ce02f3be542
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-window_open.html.ini
@@ -0,0 +1,4 @@
+[javascript_src_denied_wrong_hash-window_open.html]
+ [Test that the javascript: src is not allowed to run]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-hashes/script_event_handlers_denied_missing_unsafe_hashes.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-hashes/script_event_handlers_denied_missing_unsafe_hashes.html.ini
new file mode 100644
index 00000000000..f692bd56f56
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-hashes/script_event_handlers_denied_missing_unsafe_hashes.html.ini
@@ -0,0 +1,5 @@
+[script_event_handlers_denied_missing_unsafe_hashes.html]
+ expected: TIMEOUT
+ [Test that the inline event handler is not allowed to run]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-hashes/script_event_handlers_denied_wrong_hash.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-hashes/script_event_handlers_denied_wrong_hash.html.ini
new file mode 100644
index 00000000000..1a96220bc31
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-hashes/script_event_handlers_denied_wrong_hash.html.ini
@@ -0,0 +1,5 @@
+[script_event_handlers_denied_wrong_hash.html]
+ expected: TIMEOUT
+ [Test that the inline event handler is not allowed to run]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-hashes/style_attribute_allowed.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-hashes/style_attribute_allowed.html.ini
new file mode 100644
index 00000000000..35ee25ebc9a
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-hashes/style_attribute_allowed.html.ini
@@ -0,0 +1,4 @@
+[style_attribute_allowed.html]
+ [Test that the inline style attribute is loaded]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-hashes/style_attribute_denied_missing_unsafe_hashes.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-hashes/style_attribute_denied_missing_unsafe_hashes.html.ini
new file mode 100644
index 00000000000..3a27ebb6e3a
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-hashes/style_attribute_denied_missing_unsafe_hashes.html.ini
@@ -0,0 +1,5 @@
+[style_attribute_denied_missing_unsafe_hashes.html]
+ expected: TIMEOUT
+ [Test that the inline style attribute is blocked]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/unsafe-hashes/style_attribute_denied_wrong_hash.html.ini b/tests/wpt/metadata/content-security-policy/unsafe-hashes/style_attribute_denied_wrong_hash.html.ini
new file mode 100644
index 00000000000..0f28a2a270b
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/unsafe-hashes/style_attribute_denied_wrong_hash.html.ini
@@ -0,0 +1,5 @@
+[style_attribute_denied_wrong_hash.html]
+ expected: TIMEOUT
+ [Test that the inline style attribute is blocked]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/dedicated-none.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/dedicated-none.sub.html.ini
new file mode 100644
index 00000000000..dd098643ee7
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/dedicated-none.sub.html.ini
@@ -0,0 +1,7 @@
+[dedicated-none.sub.html]
+ [Same-origin dedicated worker blocked by host-source expression.]
+ expected: FAIL
+
+ [blob: dedicated worker blocked by 'blob:'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/dedicated-worker-src-child-fallback-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/dedicated-worker-src-child-fallback-blocked.sub.html.ini
new file mode 100644
index 00000000000..5b4b1c203d6
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/dedicated-worker-src-child-fallback-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[dedicated-worker-src-child-fallback-blocked.sub.html]
+ [Same-origin dedicated worker allowed by worker-src 'self'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/service-child.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/service-child.https.sub.html.ini
new file mode 100644
index 00000000000..0845bf56ae2
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/service-child.https.sub.html.ini
@@ -0,0 +1,5 @@
+[service-child.https.sub.html]
+ expected: ERROR
+ [Same-origin service worker allowed by host-source expression.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/service-fallback.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/service-fallback.https.sub.html.ini
new file mode 100644
index 00000000000..ee09be9ece2
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/service-fallback.https.sub.html.ini
@@ -0,0 +1,5 @@
+[service-fallback.https.sub.html]
+ expected: ERROR
+ [Same-origin service worker allowed by host-source expression.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/service-list.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/service-list.https.sub.html.ini
new file mode 100644
index 00000000000..48041ebb704
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/service-list.https.sub.html.ini
@@ -0,0 +1,5 @@
+[service-list.https.sub.html]
+ expected: ERROR
+ [Same-origin service worker allowed by host-source expression.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/service-none.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/service-none.https.sub.html.ini
new file mode 100644
index 00000000000..89d15c7b3aa
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/service-none.https.sub.html.ini
@@ -0,0 +1,4 @@
+[service-none.https.sub.html]
+ [Same-origin service worker blocked by 'none'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/service-self.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/service-self.https.sub.html.ini
new file mode 100644
index 00000000000..4c4f445c0fa
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/service-self.https.sub.html.ini
@@ -0,0 +1,5 @@
+[service-self.https.sub.html]
+ expected: ERROR
+ [Same-origin service worker allowed by 'self'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-child-fallback-blocked.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-child-fallback-blocked.https.sub.html.ini
new file mode 100644
index 00000000000..795c853807d
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-child-fallback-blocked.https.sub.html.ini
@@ -0,0 +1,4 @@
+[service-worker-src-child-fallback-blocked.https.sub.html]
+ [Same-origin service worker allowed by child-src 'self'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-child-fallback.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-child-fallback.https.sub.html.ini
new file mode 100644
index 00000000000..54151644d07
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-child-fallback.https.sub.html.ini
@@ -0,0 +1,5 @@
+[service-worker-src-child-fallback.https.sub.html]
+ expected: ERROR
+ [Same-origin service worker allowed by child-src 'self'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-default-fallback.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-default-fallback.https.sub.html.ini
new file mode 100644
index 00000000000..4c2a56feadc
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-default-fallback.https.sub.html.ini
@@ -0,0 +1,5 @@
+[service-worker-src-default-fallback.https.sub.html]
+ expected: ERROR
+ [Same-origin service worker allowed by default-src 'self'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-script-fallback.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-script-fallback.https.sub.html.ini
new file mode 100644
index 00000000000..1603727b943
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-script-fallback.https.sub.html.ini
@@ -0,0 +1,5 @@
+[service-worker-src-script-fallback.https.sub.html]
+ expected: ERROR
+ [Same-origin service worker allowed by script-src 'self'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-self-fallback.https.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-self-fallback.https.sub.html.ini
new file mode 100644
index 00000000000..769c2339ee7
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/service-worker-src-self-fallback.https.sub.html.ini
@@ -0,0 +1,5 @@
+[service-worker-src-self-fallback.https.sub.html]
+ expected: ERROR
+ [Same-origin service worker allowed by worker-src 'self'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/shared-child.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/shared-child.sub.html.ini
new file mode 100644
index 00000000000..a4e5089b526
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/shared-child.sub.html.ini
@@ -0,0 +1,7 @@
+[shared-child.sub.html]
+ [Same-origin dedicated worker allowed by 'self'.]
+ expected: FAIL
+
+ [blob: dedicated worker allowed by 'blob:'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/shared-fallback.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/shared-fallback.sub.html.ini
new file mode 100644
index 00000000000..bdb4bb1b66b
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/shared-fallback.sub.html.ini
@@ -0,0 +1,7 @@
+[shared-fallback.sub.html]
+ [Same-origin dedicated worker allowed by 'self'.]
+ expected: FAIL
+
+ [blob: dedicated worker allowed by 'blob:'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/shared-list.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/shared-list.sub.html.ini
new file mode 100644
index 00000000000..f03ed799931
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/shared-list.sub.html.ini
@@ -0,0 +1,7 @@
+[shared-list.sub.html]
+ [Same-origin dedicated worker allowed by 'self'.]
+ expected: FAIL
+
+ [blob: dedicated worker allowed by 'blob:'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/shared-none.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/shared-none.sub.html.ini
new file mode 100644
index 00000000000..a2d5d1639f5
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/shared-none.sub.html.ini
@@ -0,0 +1,7 @@
+[shared-none.sub.html]
+ [blob: shared worker blocked by 'none'.]
+ expected: FAIL
+
+ [Same-origin shared worker blocked by 'none'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/shared-self.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/shared-self.sub.html.ini
new file mode 100644
index 00000000000..73a35faeb66
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/shared-self.sub.html.ini
@@ -0,0 +1,4 @@
+[shared-self.sub.html]
+ [Same-origin dedicated worker allowed by 'self'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-child-fallback-blocked.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-child-fallback-blocked.sub.html.ini
new file mode 100644
index 00000000000..df7f12480e4
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-child-fallback-blocked.sub.html.ini
@@ -0,0 +1,4 @@
+[shared-worker-src-child-fallback-blocked.sub.html]
+ [Same-origin shared worker allowed by child-src 'self'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-child-fallback.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-child-fallback.sub.html.ini
new file mode 100644
index 00000000000..0d7081c678e
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-child-fallback.sub.html.ini
@@ -0,0 +1,4 @@
+[shared-worker-src-child-fallback.sub.html]
+ [Same-origin shared worker allowed by child-src 'self'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-default-fallback.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-default-fallback.sub.html.ini
new file mode 100644
index 00000000000..b095188e25f
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-default-fallback.sub.html.ini
@@ -0,0 +1,4 @@
+[shared-worker-src-default-fallback.sub.html]
+ [Same-origin shared worker allowed by default-src 'self'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-script-fallback.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-script-fallback.sub.html.ini
new file mode 100644
index 00000000000..dcebe205e02
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-script-fallback.sub.html.ini
@@ -0,0 +1,4 @@
+[shared-worker-src-script-fallback.sub.html]
+ [Same-origin shared worker allowed by script-src 'self'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-self-fallback.sub.html.ini b/tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-self-fallback.sub.html.ini
new file mode 100644
index 00000000000..58ffeba1f6f
--- /dev/null
+++ b/tests/wpt/metadata/content-security-policy/worker-src/shared-worker-src-self-fallback.sub.html.ini
@@ -0,0 +1,4 @@
+[shared-worker-src-self-fallback.sub.html]
+ [Same-origin shared worker allowed by worker-src 'self'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini b/tests/wpt/metadata/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini
deleted file mode 100644
index 8efb7024ae4..00000000000
--- a/tests/wpt/metadata/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[hit-test-anonymous-block.html]
- [Hit test beside line of text inside anonymous block]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-list-001.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-list-001.html.ini
index 668c3f52a5b..c364dd10b5c 100644
--- a/tests/wpt/metadata/css/cssom-view/elementFromPoint-list-001.html.ini
+++ b/tests/wpt/metadata/css/cssom-view/elementFromPoint-list-001.html.ini
@@ -14,3 +14,6 @@
[<li>Outside 3</li>]
expected: FAIL
+ [<li>Inside 1</li>]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom-view/offsetTopLeft-border-box.html.ini b/tests/wpt/metadata/css/cssom-view/offsetTopLeft-border-box.html.ini
new file mode 100644
index 00000000000..239c35135e4
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/offsetTopLeft-border-box.html.ini
@@ -0,0 +1,7 @@
+[offsetTopLeft-border-box.html]
+ [container: 1]
+ expected: FAIL
+
+ [container: 0]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/content-type/script.window.js.ini b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
index ac4cbcba706..6c5549b531c 100644
--- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
@@ -58,4 +58,3 @@
[separate text/javascript x/x]
expected: FAIL
-
diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
index aa6eb8f6085..d01a49ab2da 100644
--- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -13,4 +13,3 @@
[X-Content-Type-Options%3A%20'NosniFF']
expected: FAIL
-
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
deleted file mode 100644
index dc2e45516de..00000000000
--- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[traverse_the_history_5.html]
- [Multiple history traversals, last would be aborted]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini
index 16fa2c5cfc1..dec4c579137 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini
@@ -1,4 +1,5 @@
[creating_browsing_context_test_01.html]
+ expected: TIMEOUT
[first argument: absolute url]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
index 4bc0524f105..3f7e3e9544f 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
@@ -1,6 +1,5 @@
[iframe_sandbox_popups_nonescaping-1.html]
type: testharness
- expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit.html.ini
new file mode 100644
index 00000000000..b193c33c2b6
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit.html.ini
@@ -0,0 +1,4 @@
+[form-double-submit.html]
+ [default submit action should supersede onclick submit()]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini
deleted file mode 100644
index a9677391662..00000000000
--- a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[DOMContentLoaded-defer.html]
- [The end: DOMContentLoaded and defer scripts]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini
index a1effd5f801..5ddb9bfeff6 100644
--- a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini
+++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini
@@ -1,9 +1,10 @@
[promise-job-entry.html]
+ expected: TIMEOUT
[Fulfillment handler on fulfilled promise]
expected: FAIL
[Rejection handler on pending-then-rejected promise]
- expected: FAIL
+ expected: TIMEOUT
[Sanity check: this all works as expected with no promises involved]
expected: FAIL
@@ -15,5 +16,5 @@
expected: FAIL
[Fulfillment handler on pending-then-fulfilled promise]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini
index 66bd350083b..a56bad443a2 100644
--- a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini
@@ -1,4 +1,5 @@
[realtimeanalyser-fft-scaling.html]
+ expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL