[WPT/upgrade-insecure-requests] Regenerate files

Follow-up of
https://chromium-review.googlesource.com/c/chromium/src/+/1788551.

- Generate gen/ files (mechanical)
- Remove old test files
- Update TestExpectations (manual)
    - Added crbug.com/1001374 lines, as this CL adds test coverage
      for <iframe src="(mixed-content)"> inside <iframe src="">
      that is affected by crbug.com/1001374.

Bug: 1001422, 1001374, 917554
Change-Id: I17dae578b18b943c5962222f2e0e2c81e6190aa6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1788553
Commit-Queue: Hiroshige Hayashizaki <hiroshige@chromium.org>
Reviewed-by: Kenichi Ishibashi <bashi@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Cr-Commit-Position: refs/heads/master@{#703184}
diff --git a/upgrade-insecure-requests/animation-worklet-import-upgrade.https.html b/upgrade-insecure-requests/animation-worklet-import-upgrade.https.html
deleted file mode 100644
index 410322a..0000000
--- a/upgrade-insecure-requests/animation-worklet-import-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: animation-worklet.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateModuleImportTests(ResourceType.WORKLET, false);
-tests.forEach(test => testMap['animation-worklet'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/animation-worklet-redirect-upgrade.https.html b/upgrade-insecure-requests/animation-worklet-redirect-upgrade.https.html
deleted file mode 100644
index 78ec628..0000000
--- a/upgrade-insecure-requests/animation-worklet-redirect-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: animation-worklet.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateRedirectTests(ResourceType.WORKLET, false);
-tests.forEach(test => testMap['animation-worklet'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/animation-worklet-upgrade.https.html b/upgrade-insecure-requests/animation-worklet-upgrade.https.html
deleted file mode 100644
index 3d451fe..0000000
--- a/upgrade-insecure-requests/animation-worklet-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: animation-worklet.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateTests(ResourceType.WORKLET, false);
-tests.forEach(test => testMap['animation-worklet'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/audio-worklet-import-upgrade.https.html b/upgrade-insecure-requests/audio-worklet-import-upgrade.https.html
deleted file mode 100644
index 3786b3b..0000000
--- a/upgrade-insecure-requests/audio-worklet-import-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: audio-worklet.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateModuleImportTests(ResourceType.WORKLET, false);
-tests.forEach(test => testMap['audio-worklet'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/audio-worklet-redirect-upgrade.https.html b/upgrade-insecure-requests/audio-worklet-redirect-upgrade.https.html
deleted file mode 100644
index ecdc506..0000000
--- a/upgrade-insecure-requests/audio-worklet-redirect-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: audio-worklet.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateRedirectTests(ResourceType.WORKLET, false);
-tests.forEach(test => testMap['audio-worklet'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/audio-worklet-upgrade.https.html b/upgrade-insecure-requests/audio-worklet-upgrade.https.html
deleted file mode 100644
index 704bba9..0000000
--- a/upgrade-insecure-requests/audio-worklet-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: audio-worklet.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateTests(ResourceType.WORKLET, false);
-tests.forEach(test => testMap['audio-worklet'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..b85583f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..df420b3
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/cross-https.downgrade.https.html
new file mode 100644
index 0000000..d4bb05e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..6d15509
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..7a7fa66
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/same-https.downgrade.https.html
new file mode 100644
index 0000000..f4a2cf3
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/fetch/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..77d852e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..8ddeada
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/cross-https.downgrade.https.html
new file mode 100644
index 0000000..ae8d161
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..32f330f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..52dd2db
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/same-https.downgrade.https.html
new file mode 100644
index 0000000..8846365
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..4e663d5
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..3fe338d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/cross-https.downgrade.https.html
new file mode 100644
index 0000000..d3b84f0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..e6f8e35
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..0ad5ed1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/same-https.downgrade.https.html
new file mode 100644
index 0000000..bd2ed05
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/img-tag/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/sharedworker-classic/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/sharedworker-classic/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..86b0170
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/sharedworker-classic/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-classic to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/sharedworker-classic/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/sharedworker-classic/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..274908b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/sharedworker-classic/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-classic to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/sharedworker-classic/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/sharedworker-classic/same-https.downgrade.https.html
new file mode 100644
index 0000000..763fbd6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/sharedworker-classic/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-classic to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..fe77266
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..7e27068
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for websocket to same-ws-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-classic/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-classic/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..1144a7b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-classic/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-classic to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-classic/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-classic/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..47ecc6f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-classic/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-classic to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-classic/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-classic/same-https.downgrade.https.html
new file mode 100644
index 0000000..3a75e26
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-classic/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-classic to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..cfb4519
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..79e6ad2
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..68064dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..fdb0f73
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..df11191
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..e3e47cf
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-import-data/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-module/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-module/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..5976eb1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-module/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-module to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-module/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-module/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..6193235
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-module/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-module to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-module/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-module/same-https.downgrade.https.html
new file mode 100644
index 0000000..6c0cc3a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worker-module/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-module to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..73f1ba5
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..0267b81
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..dc014de
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..781d3c6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..9475c53
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..7e574f9
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation-import-data/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..8e0e431
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..7031459
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/cross-https.downgrade.https.html
new file mode 100644
index 0000000..126a81d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..9c4e0e2
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..1360503
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/same-https.downgrade.https.html
new file mode 100644
index 0000000..5ed3552
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-animation/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..a61c8f7
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..61b78e8
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..e4d12ee
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..806e148
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..11890a3
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..4158e4e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio-import-data/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..032ddc9
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..63081ef
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/cross-https.downgrade.https.html
new file mode 100644
index 0000000..abd52ef
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..9c7b931
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..4cfa501
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/same-https.downgrade.https.html
new file mode 100644
index 0000000..a4aebcb
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-audio/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..8eb246c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..ce5fcdc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..a765c02
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..d83ecef
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..d7d6ff4
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..34b9b4a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout-import-data/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..45715ea
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..99a80ac
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/cross-https.downgrade.https.html
new file mode 100644
index 0000000..2776905
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..275dc05
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..3f72a04
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/same-https.downgrade.https.html
new file mode 100644
index 0000000..e038c8e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-layout/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..367bedf
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..45c8a2c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..8b3ad88
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..9d9fe1d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..d08ddfb
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..e9e26b1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint-import-data/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..37d16b6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..3336529
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/cross-https.downgrade.https.html
new file mode 100644
index 0000000..35ffbd7
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..b92163e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..bab2213
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/same-https.downgrade.https.html
new file mode 100644
index 0000000..7a1e3f5
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/worklet-paint/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..87f334e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..077f00c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/cross-https.downgrade.https.html
new file mode 100644
index 0000000..112f3c0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..fa4303f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..066aae1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/same-https.downgrade.https.html
new file mode 100644
index 0000000..7611729
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/xhr/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..4d815c0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..cde4f05
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/cross-https.downgrade.https.html
new file mode 100644
index 0000000..3ef1807
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..1162d57
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..a001d36
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/same-https.downgrade.https.html
new file mode 100644
index 0000000..c120ee1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..ddc7514
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..f55db96
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/cross-https.downgrade.https.html
new file mode 100644
index 0000000..f16e215
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..461d81f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..cfb5a66
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/same-https.downgrade.https.html
new file mode 100644
index 0000000..eef7cf4
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..4b45675
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..1305ce8
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/cross-https.downgrade.https.html
new file mode 100644
index 0000000..eac2bbf
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..6a03e57
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..2a38cb5
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/same-https.downgrade.https.html
new file mode 100644
index 0000000..9e3e1bf
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..884844f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..5f4ef1d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic/same-https.downgrade.https.html
new file mode 100644
index 0000000..800de21
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..ccbff1f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..6fcd983
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..c033a44
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..99cee0b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic/same-https.downgrade.https.html
new file mode 100644
index 0000000..b542ddc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..a11b956
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..0369b4d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..b10b8bc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..276c608
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..a817882
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..1c88f00
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..80299bb
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..2d7a207
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module/same-https.downgrade.https.html
new file mode 100644
index 0000000..a73e68b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-module to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..f3b00d6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..4b42be9
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..279fb69
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..302bc0c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..5f90729
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..b639698
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..ce203e6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..efb1987
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/cross-https.downgrade.https.html
new file mode 100644
index 0000000..6baa7f4
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..439a7c9
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..3fad5f1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/same-https.downgrade.https.html
new file mode 100644
index 0000000..ff5bd87
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..350f8a6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..5662c12
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..5fb887f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..36d14f7
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..35298ee
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..ecc03d2
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..4dff0bf
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..14206c8
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/cross-https.downgrade.https.html
new file mode 100644
index 0000000..82b7ecb
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..a5885ba
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..47337cd
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/same-https.downgrade.https.html
new file mode 100644
index 0000000..2a03d16
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..7fe5ae1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..b6b6e02
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..abd8f26
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..14bcb5f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..241ef91
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..0b3ea13
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..0102344
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..ced106f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/cross-https.downgrade.https.html
new file mode 100644
index 0000000..96bb1c7
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..d63911d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..f7dd011
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/same-https.downgrade.https.html
new file mode 100644
index 0000000..072e5d3
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..89f8613
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..ded8c83
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..7ebca39
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..266bb33
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..2d2cbdc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..b37b7ad
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..9e8c20c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..cc521e7
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/cross-https.downgrade.https.html
new file mode 100644
index 0000000..59b4555
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..e0a2a80
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..0c0fe5c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/same-https.downgrade.https.html
new file mode 100644
index 0000000..8d3ab70
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..4bbdbc0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..e2c199e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/cross-https.downgrade.https.html
new file mode 100644
index 0000000..614e6e8
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..ee3bfda
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..969e0cf
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/same-https.downgrade.https.html
new file mode 100644
index 0000000..af181e9
--- /dev/null
+++ b/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "iframe-blank"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..6f165b8
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..c154ae6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/cross-https.downgrade.https.html
new file mode 100644
index 0000000..19cada4
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..7cfede2
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..54a5e9a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/same-https.downgrade.https.html
new file mode 100644
index 0000000..9ec1a67
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/fetch/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..9b4828a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..f6342e1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/cross-https.downgrade.https.html
new file mode 100644
index 0000000..4896679
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..efa9eba
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..2e78cec
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/same-https.downgrade.https.html
new file mode 100644
index 0000000..7c3d637
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..ec4bc93
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..139b07b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/cross-https.downgrade.https.html
new file mode 100644
index 0000000..0c325ea
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..e82d1c1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..64ba3c2
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/same-https.downgrade.https.html
new file mode 100644
index 0000000..f7251e7
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/img-tag/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/sharedworker-classic/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/sharedworker-classic/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..4eb3197
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/sharedworker-classic/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-classic to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/sharedworker-classic/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/sharedworker-classic/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..91eb40e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/sharedworker-classic/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-classic to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/sharedworker-classic/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/sharedworker-classic/same-https.downgrade.https.html
new file mode 100644
index 0000000..36554b7
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/sharedworker-classic/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-classic to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..8212f34
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..5cb9d5f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for websocket to same-ws-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-classic/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-classic/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..7d6a1f9
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-classic/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-classic to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-classic/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-classic/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..106ec53
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-classic/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-classic to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-classic/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-classic/same-https.downgrade.https.html
new file mode 100644
index 0000000..ca8c3d6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-classic/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-classic to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..dbd24d3
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..6514b98
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..18f4960
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..0c16aff
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..524b56d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..c6339c9
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-import-data/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-module/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-module/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..da5ea1a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-module/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-module to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-module/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-module/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..3896037
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-module/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-module to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-module/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-module/same-https.downgrade.https.html
new file mode 100644
index 0000000..039baf9
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worker-module/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-module to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..0309cb0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..2434b96
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..ba6f778
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..6ebeaa6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..c1c8635
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..9298d15
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation-import-data/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..a26939d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..2a4cf1e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/cross-https.downgrade.https.html
new file mode 100644
index 0000000..154b6d0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..bb1c98a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..1c7729e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/same-https.downgrade.https.html
new file mode 100644
index 0000000..9672cfa
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-animation/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..673dcb3
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..4ef84c7
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..6b6d8d9
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..c7e3806
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..e25c166
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..911ba14
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio-import-data/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..e436271
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..0248efb
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/cross-https.downgrade.https.html
new file mode 100644
index 0000000..06194f2
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..bf9cada
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..413116b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/same-https.downgrade.https.html
new file mode 100644
index 0000000..c067eba
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-audio/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..141146d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..075d6d2
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..5f93b90
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..494acbe
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..8342a27
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..de0e3f5
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout-import-data/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..ca849d8
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..276e785
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/cross-https.downgrade.https.html
new file mode 100644
index 0000000..0cb383a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..eb79935
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..823e1f1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/same-https.downgrade.https.html
new file mode 100644
index 0000000..d28a67c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-layout/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..8afab24
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..95bfb17
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..c54e3fa
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..0608f35
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..6d1eaad
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..31a8aec
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint-import-data/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..dd9c10d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..c7db718
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/cross-https.downgrade.https.html
new file mode 100644
index 0000000..d1f554f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..474b54b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..a72e46f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/same-https.downgrade.https.html
new file mode 100644
index 0000000..212288d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/worklet-paint/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..8647515
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..e1eb57b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/cross-https.downgrade.https.html
new file mode 100644
index 0000000..bb11019
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..8edb94b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..38d91f2
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/same-https.downgrade.https.html
new file mode 100644
index 0000000..2bce883
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/xhr/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..a551418
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..f4d9cc7
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/cross-https.downgrade.https.html
new file mode 100644
index 0000000..123b1eb
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..c64f245
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..f9d1194
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/same-https.downgrade.https.html
new file mode 100644
index 0000000..5b132dd
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..6b0f777
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..fc07cfc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/cross-https.downgrade.https.html
new file mode 100644
index 0000000..06b2b8e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..0c84e45
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..9430c55
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/same-https.downgrade.https.html
new file mode 100644
index 0000000..5d78db1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..818f018
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..3c5eb7f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/cross-https.downgrade.https.html
new file mode 100644
index 0000000..d636efd
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..24eb4fc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..c71a1f2
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/same-https.downgrade.https.html
new file mode 100644
index 0000000..1b20088
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..24badc0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..3b90431
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic/same-https.downgrade.https.html
new file mode 100644
index 0000000..d8df110
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..b1f5b39
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..64e96fd
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..90368ad
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..7155bca
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic/same-https.downgrade.https.html
new file mode 100644
index 0000000..1293e4b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..f045f76
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..4e84631
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..c1c95cc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..d9bcd01
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..26eeefb
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..2208f88
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..6a09e8c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..c249771
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module/same-https.downgrade.https.html
new file mode 100644
index 0000000..42b62af
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-module to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..90fe184
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..1288c7c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..07c27fe
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..b7a12e0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..5f27dc4
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..a0fa92b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..fd35b79
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..ee34404
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/cross-https.downgrade.https.html
new file mode 100644
index 0000000..db38f14
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..504cf09
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..698a985
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/same-https.downgrade.https.html
new file mode 100644
index 0000000..5d7e021
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..d3a6c68
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..f50e00e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..effd4a2
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..f19484b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..db00900
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..706e439
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..581cbcd
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..1dfadd6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/cross-https.downgrade.https.html
new file mode 100644
index 0000000..9f56262
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..bcfec76
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..71d5629
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/same-https.downgrade.https.html
new file mode 100644
index 0000000..ad67ada
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..aa302da
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..f108bda
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..6b05e64
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..6b5418d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..81c6958
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..29acc0e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..7fe4009
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..0a03c48
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/cross-https.downgrade.https.html
new file mode 100644
index 0000000..1d2c593
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..b3ebc43
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..26279c5
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/same-https.downgrade.https.html
new file mode 100644
index 0000000..5e1a4ec
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..46cee95
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..b2b9bbd
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..e5dd3eb
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..6c64290
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..6ac8293
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..f17b252
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..1df14a9
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..b2f2dbb
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/cross-https.downgrade.https.html
new file mode 100644
index 0000000..189232b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..8adac34
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..91e1935
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/same-https.downgrade.https.html
new file mode 100644
index 0000000..79dd7c5
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..15443fa
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..d72acbf
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/cross-https.downgrade.https.html
new file mode 100644
index 0000000..b22b35d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..e3a5967
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..dd4c6d8
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/same-https.downgrade.https.html
new file mode 100644
index 0000000..3068ecc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "srcdoc"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..2a7790c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..6911881
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-https.downgrade.https.html
new file mode 100644
index 0000000..bf18d02
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/cross-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..5f031da
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..63e6c10
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-https.downgrade.https.html
new file mode 100644
index 0000000..4769b3e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..c8da091
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..0ad59eb
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-https.downgrade.https.html
new file mode 100644
index 0000000..128fe83
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/cross-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..d11fcf9
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..6032303
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-https.downgrade.https.html
new file mode 100644
index 0000000..661356c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..c412844
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..fff93a9
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-https.downgrade.https.html
new file mode 100644
index 0000000..b63847a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/cross-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..5f53c2b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..0d890c4
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-https.downgrade.https.html
new file mode 100644
index 0000000..bfcb628
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..9eccbf0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..8e5ea4a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-https.downgrade.https.html
new file mode 100644
index 0000000..470727e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..4a52dfc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/same-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/same-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..805622a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/same-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/same-ws-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/same-ws-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket/same-ws-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..71761b8
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..abd781b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-https.downgrade.https.html
new file mode 100644
index 0000000..514ea38
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..3b56e7a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..2d0474e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..71353a3
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/cross-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..8490d93
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..cf8591f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..9117f94
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..f01a9c0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..1f7b24c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-https.downgrade.https.html
new file mode 100644
index 0000000..4dda1d0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-module to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..668bde7
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..6c94064
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..89a5aef
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..0cbf66c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..6e4e8ab
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..ab1f02a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..8960779
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..49b7df1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-https.downgrade.https.html
new file mode 100644
index 0000000..8e4b923
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/cross-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..d4a9535
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..a8c88f4
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-https.downgrade.https.html
new file mode 100644
index 0000000..2f39bbb
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..5f9500e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..18cd96e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..ba6ed32
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..309dd78
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..12f598f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..20c901c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..9b59f0a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..feae96d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-https.downgrade.https.html
new file mode 100644
index 0000000..636ab9d7
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/cross-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..bff934a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..3d8d86a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-https.downgrade.https.html
new file mode 100644
index 0000000..5d78867
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..cb0d12c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..cddebab
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..e4bd2b6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..34daf23
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..015697f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..f7fca44
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..4361785
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..9c4a613
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-https.downgrade.https.html
new file mode 100644
index 0000000..771fa29
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/cross-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..6aa3f62
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..8190133
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-https.downgrade.https.html
new file mode 100644
index 0000000..3251746
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..d7c86b0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..ca62ab7
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..d2378fc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..74b9a4a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..d94776f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..aa33297
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..0619d47
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..a91c13c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-https.downgrade.https.html
new file mode 100644
index 0000000..a1d2892
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/cross-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..56a8227
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..6c551a5
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-https.downgrade.https.html
new file mode 100644
index 0000000..41d1547
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..0278c5e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..cdacbb0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-https.downgrade.https.html
new file mode 100644
index 0000000..711b035
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/cross-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..c3f5fc8
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..234c639
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.no-redirect.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.no-redirect.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-http-downgrade.no-redirect.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-https.downgrade.https.html
new file mode 100644
index 0000000..d926e881
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-https.downgrade.https.html.headers b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-https.downgrade.https.html.headers
new file mode 100644
index 0000000..602d9dc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr/same-https.downgrade.https.html.headers
@@ -0,0 +1 @@
+Content-Security-Policy: upgrade-insecure-requests
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/fetch/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/fetch/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..fca4a5a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/fetch/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..25294d3
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/fetch/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/fetch/cross-https.downgrade.https.html
new file mode 100644
index 0000000..5e8853d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/fetch/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/fetch/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/fetch/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..4518ced
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/fetch/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/fetch/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/fetch/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..2ad6b43
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/fetch/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/fetch/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/fetch/same-https.downgrade.https.html
new file mode 100644
index 0000000..6ed6f53
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/fetch/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..93dd9d9
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..707c260
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/cross-https.downgrade.https.html
new file mode 100644
index 0000000..49a3a0d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..7b308e3
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..84afe5c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/same-https.downgrade.https.html
new file mode 100644
index 0000000..e00d307
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/img-tag/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/img-tag/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..8bcf542
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/img-tag/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/img-tag/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/img-tag/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..8ca7ccb
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/img-tag/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/img-tag/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/img-tag/cross-https.downgrade.https.html
new file mode 100644
index 0000000..caaefae
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/img-tag/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/img-tag/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/img-tag/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..61aca5a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/img-tag/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/img-tag/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/img-tag/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..3288cbe
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/img-tag/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/img-tag/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/img-tag/same-https.downgrade.https.html
new file mode 100644
index 0000000..3c0208c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/img-tag/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for img-tag to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/sharedworker-classic/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/sharedworker-classic/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..67ae9a7
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/sharedworker-classic/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-classic to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/sharedworker-classic/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/sharedworker-classic/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..71ca833
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/sharedworker-classic/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-classic to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/sharedworker-classic/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/sharedworker-classic/same-https.downgrade.https.html
new file mode 100644
index 0000000..88826a8
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/sharedworker-classic/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-classic to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..123bc13
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..a5bc2c8
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for websocket to same-ws-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worker-classic/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worker-classic/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..075e9d5
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worker-classic/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-classic to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worker-classic/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worker-classic/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..bec6561
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worker-classic/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-classic to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worker-classic/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worker-classic/same-https.downgrade.https.html
new file mode 100644
index 0000000..d9bb535
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worker-classic/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-classic to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..bf16f45
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..23ad040
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..c10b93b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..b40c22f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..c13ca34
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..e14ba51
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worker-import-data/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worker-module/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worker-module/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..3f31344
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worker-module/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-module to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worker-module/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worker-module/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..fe106b2
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worker-module/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-module to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worker-module/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worker-module/same-https.downgrade.https.html
new file mode 100644
index 0000000..0116fd8
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worker-module/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worker-module to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..41db74a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..48d9592
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..9d32ee1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..f16f22c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..9933d1d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..0977204
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation-import-data/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..5da525d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..3391cc8
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/cross-https.downgrade.https.html
new file mode 100644
index 0000000..dedd217
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..f07dad1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..61569fd
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/same-https.downgrade.https.html
new file mode 100644
index 0000000..ace49d0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-animation/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-animation to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..c266298
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..db6a187
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..1e1a8fa
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..fec20a0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..aef2b52
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..d358584
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio-import-data/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..3a6e93d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..47fd0a4
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/cross-https.downgrade.https.html
new file mode 100644
index 0000000..67a22ed
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..055606e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..34f1d79
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/same-https.downgrade.https.html
new file mode 100644
index 0000000..23707ba
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-audio/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-audio to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..0b5cbe6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..7fa1f6e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..40658ef
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..5a66689
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..4b15e55
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..ca8c71f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout-import-data/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..6ee26e1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..08ae852
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/cross-https.downgrade.https.html
new file mode 100644
index 0000000..669fadb
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..751ff7e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..3867169
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/same-https.downgrade.https.html
new file mode 100644
index 0000000..6986a78
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-layout/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-layout to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..a29f620
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..93383d5
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..346bb6b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..869fc00
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..542c183
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..eba63c3
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint-import-data/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint-import-data to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..1dc5f08
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..01a84d6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/cross-https.downgrade.https.html
new file mode 100644
index 0000000..8589ff6b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..30314fc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..daa420b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/same-https.downgrade.https.html
new file mode 100644
index 0000000..383f42e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/worklet-paint/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for worklet-paint to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/xhr/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/xhr/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..beae338
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/xhr/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..685ebe4
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/xhr/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/xhr/cross-https.downgrade.https.html
new file mode 100644
index 0000000..4bbfd75
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/xhr/cross-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/xhr/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/xhr/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..cb5cc3a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/xhr/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/xhr/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/unset/xhr/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..a5325b3
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/xhr/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/unset/xhr/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/unset/xhr/same-https.downgrade.https.html
new file mode 100644
index 0000000..cfe8614
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/unset/xhr/same-https.downgrade.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..f9750e1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..3b08b72
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/cross-https.downgrade.https.html
new file mode 100644
index 0000000..8d0a80a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/cross-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..d5ebb85
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..5d6d8f5
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/same-https.downgrade.https.html
new file mode 100644
index 0000000..63b5c8c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/fetch/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..09be764
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..e86f753
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/cross-https.downgrade.https.html
new file mode 100644
index 0000000..4f2e231
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/cross-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..86958e9
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..70507d3
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/same-https.downgrade.https.html
new file mode 100644
index 0000000..71764a1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "iframe-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..c0c141a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..baef52d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/cross-https.downgrade.https.html
new file mode 100644
index 0000000..25f2948
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/cross-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..ab64980
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..066d34c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/same-https.downgrade.https.html
new file mode 100644
index 0000000..073a0ae
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for img-tag to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "img-tag",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..00cd0d4
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..5d0e23e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic/same-https.downgrade.https.html
new file mode 100644
index 0000000..08bf866
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "sharedworker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..8858a09
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..dfebfd1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..344837e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..cf36e01
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic/same-https.downgrade.https.html
new file mode 100644
index 0000000..7b863f6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-classic",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..52c9277
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..81a16de
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..94ffe6c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..c83cb3a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..26eb205
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..18316c6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worker-module/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-module/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..e86ab02
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-module/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worker-module/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-module/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..d671b9d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-module/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worker-module/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-module/same-https.downgrade.https.html
new file mode 100644
index 0000000..7441428
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worker-module/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worker-module to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worker-module",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..b81d616
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..e24be56
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..5783bb8
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..fad7c7c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..fb7fa4d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..6c340d9
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..e01c62a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..3550747
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/cross-https.downgrade.https.html
new file mode 100644
index 0000000..ca0d0e6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/cross-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..49557f2
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..3fd3641
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/same-https.downgrade.https.html
new file mode 100644
index 0000000..02b1038
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-animation",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..8c17faf
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..415ca3d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..d36faeb
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..329b41e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..09f9a35
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..5face3b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..5ca6b71
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..9addf82
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/cross-https.downgrade.https.html
new file mode 100644
index 0000000..00228ef
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/cross-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..000ce5e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..5216ccb
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/same-https.downgrade.https.html
new file mode 100644
index 0000000..464b8d5
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-audio",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..369e519
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..cb97e53
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..d7706cc
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..7b49006
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..18995bd
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..6b8c53a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..8acdd3c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..26167e1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/cross-https.downgrade.https.html
new file mode 100644
index 0000000..13ef09c
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/cross-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..cc56f51
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..7b622c2
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/same-https.downgrade.https.html
new file mode 100644
index 0000000..2ce3df1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-layout",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..7516c16
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..404386e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html
new file mode 100644
index 0000000..53b77d6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/cross-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..69d4741
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..9a1585d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/same-https.downgrade.https.html
new file mode 100644
index 0000000..da6197f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint-import-data",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..ab1c859
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..937aaaa
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/cross-https.downgrade.https.html
new file mode 100644
index 0000000..99e1072
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/cross-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..1d152f6
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..d6babfe
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/same-https.downgrade.https.html
new file mode 100644
index 0000000..a0c28b0
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "worklet-paint",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..9c7776e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..8300d8f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/cross-https.downgrade.https.html
new file mode 100644
index 0000000..96e7c41
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/cross-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..146599f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..eb6c568
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/same-https.downgrade.https.html
new file mode 100644
index 0000000..2fe37db
--- /dev/null
+++ b/upgrade-insecure-requests/gen/top.meta/upgrade/xhr/same-https.downgrade.https.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..e24fc08
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..b065f13
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/cross-https.downgrade.https.html
new file mode 100644
index 0000000..6ef001b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..c236aa3
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..ba07fe7
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/same-https.downgrade.https.html
new file mode 100644
index 0000000..04fb348
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/fetch/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for fetch to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..85b2a84
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/websocket/cross-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..47a6635
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/websocket/same-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for websocket to same-ws-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..53c56a1
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to cross-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..b4b9b6f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/cross-https.downgrade.https.html
new file mode 100644
index 0000000..4a92b5e
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/cross-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to cross-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..0bb47da
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to same-http-downgrade origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..4a7ea8a
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to same-http-downgrade origin and no-redirect redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/same-https.downgrade.https.html
new file mode 100644
index 0000000..67d232b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/unset/xhr/same-https.downgrade.https.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="No upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for xhr to same-https origin and downgrade redirection from https context.">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "blocked",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..30a0959
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..c726a18
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/cross-https.downgrade.https.html
new file mode 100644
index 0000000..8d273ac
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..8c50860
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..364e95b
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/same-https.downgrade.https.html
new file mode 100644
index 0000000..f07d94d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "fetch",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..fa6232d
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/websocket/cross-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..2da6643
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/websocket/same-ws-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-ws-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "websocket",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..46518de
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/cross-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..3e8fe26
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/cross-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/cross-https.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/cross-https.downgrade.https.html
new file mode 100644
index 0000000..4c2853f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/cross-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "cross-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html
new file mode 100644
index 0000000..e3dbf9f
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/same-http-downgrade.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html
new file mode 100644
index 0000000..002ed40
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/same-http-downgrade.no-redirect.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-http-downgrade",
+          "redirection": "no-redirect",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/same-https.downgrade.https.html b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/same-https.downgrade.https.html
new file mode 100644
index 0000000..43c8dcf
--- /dev/null
+++ b/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr/same-https.downgrade.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by upgrade-insecure-requests/generic/tools/generate.py using common/security-features/tools/template/test.release.html.template. -->
+<html>
+  <head>
+    <title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
+    <meta charset='utf-8'>
+    <meta name="description" content="With upgrade-insecure-request">
+    <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
+    <link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
+    <meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.">
+    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="/upgrade-insecure-requests/generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        {
+          "expectation": "allowed",
+          "origin": "same-https",
+          "redirection": "downgrade",
+          "source_context_list": [
+            {
+              "policyDeliveries": [],
+              "sourceContextType": "worker-classic-data"
+            }
+          ],
+          "source_scheme": "https",
+          "subresource": "xhr",
+          "subresource_policy_deliveries": []
+        },
+        document.querySelector("meta[name=assert]").content,
+        new SanityChecker()
+      ).start();
+      </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/upgrade-insecure-requests/iframe-redirect-upgrade.https.html b/upgrade-insecure-requests/iframe-redirect-upgrade.https.html
deleted file mode 100644
index 7d0a310..0000000
--- a/upgrade-insecure-requests/iframe-redirect-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: iframe.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateRedirectTests(ResourceType.FRAME, false);
-tests.forEach(test => testMap['iframe'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/iframe-upgrade.https.html b/upgrade-insecure-requests/iframe-upgrade.https.html
deleted file mode 100644
index d9ba69e..0000000
--- a/upgrade-insecure-requests/iframe-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: iframe.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateTests(ResourceType.FRAME, false);
-tests.forEach(test => testMap['iframe'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/image-redirect-upgrade.https.html b/upgrade-insecure-requests/image-redirect-upgrade.https.html
deleted file mode 100644
index d72b621..0000000
--- a/upgrade-insecure-requests/image-redirect-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: image.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateRedirectTests(ResourceType.IMAGE, false);
-tests.forEach(test => testMap['image'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/image-upgrade.https.html b/upgrade-insecure-requests/image-upgrade.https.html
deleted file mode 100644
index 75d4b59..0000000
--- a/upgrade-insecure-requests/image-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: image.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateTests(ResourceType.IMAGE, false);
-tests.forEach(test => testMap['image'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/layout-worklet-import-upgrade.https.html b/upgrade-insecure-requests/layout-worklet-import-upgrade.https.html
deleted file mode 100644
index 9d97377..0000000
--- a/upgrade-insecure-requests/layout-worklet-import-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: layout-worklet.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateModuleImportTests(ResourceType.WORKLET, false);
-tests.forEach(test => testMap['layout-worklet'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/layout-worklet-redirect-upgrade.https.html b/upgrade-insecure-requests/layout-worklet-redirect-upgrade.https.html
deleted file mode 100644
index dca6abc..0000000
--- a/upgrade-insecure-requests/layout-worklet-redirect-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: layout-worklet.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateRedirectTests(ResourceType.WORKLET, false);
-tests.forEach(test => testMap['layout-worklet'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/layout-worklet-upgrade.https.html b/upgrade-insecure-requests/layout-worklet-upgrade.https.html
deleted file mode 100644
index 876bf84..0000000
--- a/upgrade-insecure-requests/layout-worklet-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: layout-worklet.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateTests(ResourceType.WORKLET, false);
-tests.forEach(test => testMap['layout-worklet'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/module-worker-import-upgrade.https.html b/upgrade-insecure-requests/module-worker-import-upgrade.https.html
deleted file mode 100644
index ef103ab..0000000
--- a/upgrade-insecure-requests/module-worker-import-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: module-worker.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateModuleImportTests(ResourceType.WORKER, true);
-tests.forEach(test => testMap['module-worker'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/module-worker-redirect-upgrade.https.html b/upgrade-insecure-requests/module-worker-redirect-upgrade.https.html
deleted file mode 100644
index 216f202..0000000
--- a/upgrade-insecure-requests/module-worker-redirect-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: module-worker.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateRedirectTests(ResourceType.WORKER, true);
-tests.forEach(test => testMap['module-worker'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/module-worker-upgrade.https.html b/upgrade-insecure-requests/module-worker-upgrade.https.html
deleted file mode 100644
index e81fd10..0000000
--- a/upgrade-insecure-requests/module-worker-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: module-worker.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateTests(ResourceType.WORKER, true);
-tests.forEach(test => testMap['module-worker'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/paint-worklet-import-upgrade.https.html b/upgrade-insecure-requests/paint-worklet-import-upgrade.https.html
deleted file mode 100644
index eda2f28..0000000
--- a/upgrade-insecure-requests/paint-worklet-import-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: paint-worklet.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateModuleImportTests(ResourceType.WORKLET, false);
-tests.forEach(test => testMap['paint-worklet'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/paint-worklet-redirect-upgrade.https.html b/upgrade-insecure-requests/paint-worklet-redirect-upgrade.https.html
deleted file mode 100644
index b6da978..0000000
--- a/upgrade-insecure-requests/paint-worklet-redirect-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: paint-worklet.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateRedirectTests(ResourceType.WORKLET, false);
-tests.forEach(test => testMap['paint-worklet'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/paint-worklet-upgrade.https.html b/upgrade-insecure-requests/paint-worklet-upgrade.https.html
deleted file mode 100644
index 98bdd0e..0000000
--- a/upgrade-insecure-requests/paint-worklet-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: paint-worklet.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateTests(ResourceType.WORKLET, false);
-tests.forEach(test => testMap['paint-worklet'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/shared-worker-redirect-upgrade.https.html b/upgrade-insecure-requests/shared-worker-redirect-upgrade.https.html
deleted file mode 100644
index 28fea03..0000000
--- a/upgrade-insecure-requests/shared-worker-redirect-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: shared-worker.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateRedirectTests(ResourceType.SHARED_WORKER, true);
-tests.forEach(test => testMap['shared-worker'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/shared-worker-upgrade.https.html b/upgrade-insecure-requests/shared-worker-upgrade.https.html
deleted file mode 100644
index cf1d3c3..0000000
--- a/upgrade-insecure-requests/shared-worker-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: shared-worker.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateTests(ResourceType.SHARED_WORKER, true);
-tests.forEach(test => testMap['shared-worker'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/websocket-upgrade.https.html b/upgrade-insecure-requests/websocket-upgrade.https.html
deleted file mode 100644
index aa7237d..0000000
--- a/upgrade-insecure-requests/websocket-upgrade.https.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<title>Upgrade Insecure Requests: WebSockets.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-var tests = [
-  generateURL(Host.SAME_ORIGIN, Protocol.INSECURE, ResourceType.WEBSOCKET),
-  generateURL(Host.SAME_ORIGIN, Protocol.SECURE, ResourceType.WEBSOCKET),
-  generateURL(Host.CROSS_ORIGIN, Protocol.INSECURE, ResourceType.WEBSOCKET),
-  generateURL(Host.CROSS_ORIGIN, Protocol.SECURE, ResourceType.WEBSOCKET),
-];
-
-tests.forEach(test => {
-  async_test(t => assert_websocket_loads(t, test.url), test.name);
-});
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/worker-redirect-upgrade.https.html b/upgrade-insecure-requests/worker-redirect-upgrade.https.html
deleted file mode 100644
index 8349042..0000000
--- a/upgrade-insecure-requests/worker-redirect-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: worker.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateRedirectTests(ResourceType.WORKER, true);
-tests.forEach(test => testMap['worker'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/worker-subresource-fetch-redirect-upgrade.https.html b/upgrade-insecure-requests/worker-subresource-fetch-redirect-upgrade.https.html
deleted file mode 100644
index 31cec13..0000000
--- a/upgrade-insecure-requests/worker-subresource-fetch-redirect-upgrade.https.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<meta name="timeout" content="long">
-<title>Upgrade Insecure Requests: worker-subresource-fetch.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateRedirectTests(ResourceType.FETCH, false);
-tests.forEach(test => testMap['worker-subresource-fetch'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/worker-subresource-fetch-upgrade.https.html b/upgrade-insecure-requests/worker-subresource-fetch-upgrade.https.html
deleted file mode 100644
index e559246..0000000
--- a/upgrade-insecure-requests/worker-subresource-fetch-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: worker-subresource-fetch.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateTests(ResourceType.FETCH, false);
-tests.forEach(test => testMap['worker-subresource-fetch'](test));
-</script>
-</body>
-</html>
diff --git a/upgrade-insecure-requests/worker-upgrade.https.html b/upgrade-insecure-requests/worker-upgrade.https.html
deleted file mode 100644
index 5a1d583..0000000
--- a/upgrade-insecure-requests/worker-upgrade.https.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->
-<title>Upgrade Insecure Requests: worker.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="./support/testharness-helper.sub.js"></script>
-<script src="/common/security-features/resources/common.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
-</head>
-<body>
-<script>
-const tests = generateTests(ResourceType.WORKER, true);
-tests.forEach(test => testMap['worker'](test));
-</script>
-</body>
-</html>