summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/mixed-content/gen/top.http-rp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/mixed-content/gen/top.http-rp
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/mixed-content/gen/top.http-rp')
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/beacon.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/beacon.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/fetch.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/fetch.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/img-tag.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/img-tag.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-css-tag.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-css-tag.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/object-tag.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/object-tag.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/picture-tag.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/picture-tag.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag-dynamic-import.https.html42
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag-dynamic-import.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-classic.https.html62
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-classic.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import-data.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import-data.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-module.https.html62
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-module.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/video-tag.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/video-tag.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/websocket.https.html52
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/websocket.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-classic.https.html62
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-classic.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import-data.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import-data.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-module.https.html62
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-module.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint.https.html.headers1
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/xhr.https.html122
-rw-r--r--testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/xhr.https.html.headers1
58 files changed, 3177 insertions, 0 deletions
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html
new file mode 100644
index 0000000000..599f8eb9b5
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "audio-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for audio-tag to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "audio-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for audio-tag to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "audio-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for audio-tag to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "audio-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for audio-tag to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "audio-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for audio-tag to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "audio-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for audio-tag to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "audio-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for audio-tag to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "audio-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for audio-tag to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "audio-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for audio-tag to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "audio-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for audio-tag to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/beacon.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/beacon.https.html
new file mode 100644
index 0000000000..b09f6332dd
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/beacon.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "beacon",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for beacon to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "beacon",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for beacon to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "beacon",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for beacon to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "beacon",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for beacon to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "beacon",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for beacon to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "beacon",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for beacon to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "beacon",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for beacon to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "beacon",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for beacon to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "beacon",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for beacon to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "beacon",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for beacon to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/beacon.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/beacon.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/beacon.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/fetch.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/fetch.https.html
new file mode 100644
index 0000000000..508a9d2bd7
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/fetch.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for fetch to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for fetch to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for fetch to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for fetch to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for fetch to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for fetch to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for fetch to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for fetch to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "fetch",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for fetch to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/fetch.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/fetch.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/fetch.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/img-tag.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/img-tag.https.html
new file mode 100644
index 0000000000..eda0043651
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/img-tag.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "img-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for img-tag to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "img-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for img-tag to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "img-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for img-tag to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "img-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for img-tag to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "img-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for img-tag to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "img-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for img-tag to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "img-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for img-tag to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "img-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for img-tag to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "img-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for img-tag to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "img-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for img-tag to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/img-tag.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/img-tag.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/img-tag.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-css-tag.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-css-tag.https.html
new file mode 100644
index 0000000000..237ec0ca78
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-css-tag.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-css-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for link-css-tag to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-css-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for link-css-tag to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-css-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-css-tag to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-css-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-css-tag to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-css-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-css-tag to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-css-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-css-tag to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-css-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-css-tag to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-css-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-css-tag to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-css-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-css-tag to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-css-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-css-tag to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-css-tag.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-css-tag.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-css-tag.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag.https.html
new file mode 100644
index 0000000000..0efd1429a7
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-prefetch-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for link-prefetch-tag to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-prefetch-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for link-prefetch-tag to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-prefetch-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-prefetch-tag to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-prefetch-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-prefetch-tag to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-prefetch-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-prefetch-tag to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-prefetch-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-prefetch-tag to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-prefetch-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-prefetch-tag to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-prefetch-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-prefetch-tag to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-prefetch-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-prefetch-tag to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "link-prefetch-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for link-prefetch-tag to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/object-tag.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/object-tag.https.html
new file mode 100644
index 0000000000..6bc8f75f65
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/object-tag.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "object-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for object-tag to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "object-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for object-tag to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "object-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for object-tag to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "object-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for object-tag to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "object-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for object-tag to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "object-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for object-tag to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "object-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for object-tag to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "object-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for object-tag to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "object-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for object-tag to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "object-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for object-tag to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/object-tag.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/object-tag.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/object-tag.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/picture-tag.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/picture-tag.https.html
new file mode 100644
index 0000000000..088c6c410a
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/picture-tag.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "picture-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for picture-tag to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "picture-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for picture-tag to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "picture-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for picture-tag to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "picture-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for picture-tag to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "picture-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for picture-tag to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "picture-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for picture-tag to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "picture-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for picture-tag to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "picture-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for picture-tag to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "picture-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for picture-tag to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "picture-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for picture-tag to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/picture-tag.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/picture-tag.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/picture-tag.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag-dynamic-import.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag-dynamic-import.https.html
new file mode 100644
index 0000000000..0ce2794c56
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag-dynamic-import.https.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "script-tag-dynamic-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for script-tag-dynamic-import to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "script-tag-dynamic-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for script-tag-dynamic-import to same-https origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag-dynamic-import.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag-dynamic-import.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag-dynamic-import.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag.https.html
new file mode 100644
index 0000000000..d806e9c0bc
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "script-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for script-tag to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "script-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for script-tag to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "script-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for script-tag to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "script-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for script-tag to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "script-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for script-tag to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "script-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for script-tag to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "script-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for script-tag to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "script-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for script-tag to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "script-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for script-tag to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "script-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for script-tag to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/script-tag.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-classic.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-classic.https.html
new file mode 100644
index 0000000000..896c0297d5
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-classic.https.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-classic",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for sharedworker-classic to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-classic",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for sharedworker-classic to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-classic",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-classic to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-classic",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-classic to same-http origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-classic.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-classic.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-classic.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import-data.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import-data.https.html
new file mode 100644
index 0000000000..2784b2bf13
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import-data.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for sharedworker-import-data to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for sharedworker-import-data to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import-data to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import-data to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import-data to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import-data to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import-data to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import-data to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import-data to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import-data to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import-data.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import-data.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import-data.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import.https.html
new file mode 100644
index 0000000000..0644d1f03e
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for sharedworker-import to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for sharedworker-import to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-import to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-import.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-module.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-module.https.html
new file mode 100644
index 0000000000..1a371ce028
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-module.https.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-module",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for sharedworker-module to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-module",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for sharedworker-module to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-module",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-module to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "sharedworker-module",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for sharedworker-module to same-http origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-module.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-module.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/sharedworker-module.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/video-tag.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/video-tag.https.html
new file mode 100644
index 0000000000..ff176ab6d1
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/video-tag.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "video-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for video-tag to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "video-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for video-tag to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "video-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for video-tag to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "video-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for video-tag to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "video-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for video-tag to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "video-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for video-tag to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "video-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for video-tag to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "video-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for video-tag to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "video-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for video-tag to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "video-tag",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for video-tag to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/video-tag.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/video-tag.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/video-tag.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/websocket.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/websocket.https.html
new file mode 100644
index 0000000000..49b80c448f
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/websocket.https.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-wss",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-ws",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for websocket to cross-ws origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-ws",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "websocket",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for websocket to same-ws origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/websocket.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/websocket.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/websocket.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-classic.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-classic.https.html
new file mode 100644
index 0000000000..2717be37cc
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-classic.https.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-classic",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worker-classic to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-classic",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worker-classic to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-classic",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-classic to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-classic",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-classic to same-http origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-classic.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-classic.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-classic.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import-data.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import-data.https.html
new file mode 100644
index 0000000000..a44eee0468
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import-data.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worker-import-data to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worker-import-data to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import-data to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import-data to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import-data to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import-data to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import-data to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import-data to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import-data to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import-data to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import-data.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import-data.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import-data.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import.https.html
new file mode 100644
index 0000000000..5499322818
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worker-import to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worker-import to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-import",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-import to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-import.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-module.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-module.https.html
new file mode 100644
index 0000000000..6cf33d54f5
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-module.https.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-module",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worker-module to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-module",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worker-module to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-module",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-module to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worker-module",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worker-module to same-http origin and no-redirect redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-module.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-module.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worker-module.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data.https.html
new file mode 100644
index 0000000000..165cbf6d14
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-animation-import-data to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-animation-import-data to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation-import-data to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation-import-data to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation-import-data to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation-import-data to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation-import-data to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation-import-data to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation-import-data to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation-import-data to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation.https.html
new file mode 100644
index 0000000000..67926809f2
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-animation to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-animation to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-animation",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-animation to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-animation.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data.https.html
new file mode 100644
index 0000000000..72ebea2ff2
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-audio-import-data to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-audio-import-data to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio-import-data to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio-import-data to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio-import-data to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio-import-data to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio-import-data to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio-import-data to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio-import-data to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio-import-data to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio.https.html
new file mode 100644
index 0000000000..3c31d0d998
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-audio to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-audio to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-audio",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-audio to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-audio.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data.https.html
new file mode 100644
index 0000000000..ae84f3d1ef
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-layout-import-data to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-layout-import-data to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout-import-data to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout-import-data to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout-import-data to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout-import-data to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout-import-data to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout-import-data to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout-import-data to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout-import-data to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout.https.html
new file mode 100644
index 0000000000..8a39e2d9d3
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-layout to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-layout to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-layout",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-layout to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-layout.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data.https.html
new file mode 100644
index 0000000000..918051440e
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-paint-import-data to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-paint-import-data to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint-import-data to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint-import-data to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint-import-data to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint-import-data to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint-import-data to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint-import-data to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint-import-data to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint-import-data",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint-import-data to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint.https.html
new file mode 100644
index 0000000000..c270a2b70a
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-paint to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for worklet-paint to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "worklet-paint",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for worklet-paint to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/worklet-paint.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/xhr.https.html b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/xhr.https.html
new file mode 100644
index 0000000000..22f4aa06b5
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/xhr.https.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec mixed-content/` -->
+<html>
+ <head>
+ <meta charset="utf-8">
+ <meta name="timeout" content="long">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/common/security-features/resources/common.sub.js"></script>
+ <script src="../../../generic/test-case.sub.js"></script>
+ </head>
+ <body>
+ <script>
+ TestCase(
+ [
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for xhr to same-https origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "allowed",
+ "origin": "same-https",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for xhr to cross-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for xhr to cross-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for xhr to cross-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "cross-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for xhr to cross-https origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "keep-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for xhr to same-http origin and keep-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "no-redirect",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for xhr to same-http origin and no-redirect redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-http",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for xhr to same-http origin and swap-scheme redirection from https context."
+ },
+ {
+ "expectation": "blocked",
+ "origin": "same-https",
+ "redirection": "swap-scheme",
+ "source_context_list": [],
+ "source_scheme": "https",
+ "subresource": "xhr",
+ "subresource_policy_deliveries": [],
+ "test_description": "Mixed-Content: Expects blocked for xhr to same-https origin and swap-scheme redirection from https context."
+ }
+ ],
+ new SanityChecker()
+ ).start();
+ </script>
+ <div id="log"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/xhr.https.html.headers b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/xhr.https.html.headers
new file mode 100644
index 0000000000..46e2255e38
--- /dev/null
+++ b/testing/web-platform/tests/mixed-content/gen/top.http-rp/opt-in/xhr.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: block-all-mixed-content