[WPT] Add referrer policy tests for dynamic imports (#30341)

This CL adds `script-tag-dynamic-import` subresource type
(dynamic imports triggered by script elements)
to `common/security-features` tests, and
adds referrer policy tests for it.

`req.attr` tests are failing on Chromium
because referrer policy of the initiating script
(set by <script referrerpolicy> attributes)
is ignored when plumbing to dynamic imports
due to crbug.com/1235205.

Bug: 1235205
Change-Id: I09c20bad56ffdd932aaa7400a742c3e79ace315d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3123722
Commit-Queue: Hiroshige Hayashizaki <hiroshige@chromium.org>
Reviewed-by: Dominic Farolino <dom@chromium.org>
Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/main@{#918913}

Co-authored-by: Hiroshige Hayashizaki <hiroshige@chromium.org>
diff --git a/common/security-features/resources/common.sub.js b/common/security-features/resources/common.sub.js
index 402ce9b..d0f88f1 100644
--- a/common/security-features/resources/common.sub.js
+++ b/common/security-features/resources/common.sub.js
@@ -631,6 +631,24 @@
 }
 
 /**
+ * Creates a new script element that performs a dynamic import to `url`, and
+ * appends the script element to {@code document.body}.
+ * @param {string} url The src URL.
+ * @return {Promise} The promise for success/error events.
+ */
+function requestViaDynamicImport(url, additionalAttributes) {
+  const scriptUrl = `data:text/javascript,import("${url}");`;
+  const script = createElement(
+      "script",
+      Object.assign({"src": scriptUrl}, additionalAttributes),
+      document.body,
+      false);
+
+  return bindEvents2(window, "message", script, "error", window, "error")
+    .then(event => wrapResult(event.data));
+}
+
+/**
  * Creates a new form element, sets attributes, appends it to
  *     {@code document.body} and submits the form.
  * @param {string} url The URL to submit to.
@@ -866,6 +884,10 @@
     path: "/common/security-features/subresource/script.py",
     invoker: requestViaScript,
   },
+  "script-tag-dynamic-import": {
+    path: "/common/security-features/subresource/script.py",
+    invoker: requestViaDynamicImport,
+  },
   "video-tag": {
     path: "/common/security-features/subresource/video.py",
     invoker: requestViaVideo,
diff --git a/common/security-features/tools/spec.src.json b/common/security-features/tools/spec.src.json
index 0a46a1c..cca5def 100644
--- a/common/security-features/tools/spec.src.json
+++ b/common/security-features/tools/spec.src.json
@@ -106,6 +106,7 @@
         "object-tag",
         "picture-tag",
         "script-tag",
+        "script-tag-dynamic-import",
         "sharedworker-classic",
         "sharedworker-import",
         "sharedworker-import-data",
@@ -550,6 +551,7 @@
       "object-tag",
       "picture-tag",
       "script-tag",
+      "script-tag-dynamic-import",
       "sharedworker-classic",
       "sharedworker-import",
       "sharedworker-import-data",
diff --git a/common/security-features/tools/spec_validator.py b/common/security-features/tools/spec_validator.py
index 15f0e1e..5339172 100755
--- a/common/security-features/tools/spec_validator.py
+++ b/common/security-features/tools/spec_validator.py
@@ -115,7 +115,7 @@
     valid_subresource_names = [
         "a-tag", "area-tag", "audio-tag", "form-tag", "iframe-tag", "img-tag",
         "link-css-tag", "link-prefetch-tag", "object-tag", "picture-tag",
-        "script-tag", "video-tag"
+        "script-tag", "script-tag-dynamic-import", "video-tag"
     ] + ["beacon", "fetch", "xhr", "websocket"] + [
         "worker-classic", "worker-module", "worker-import",
         "worker-import-data", "sharedworker-classic", "sharedworker-module",
diff --git a/referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag-dynamic-import.http.html b/referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..809bb23
--- /dev/null
+++ b/referrer-policy/gen/req.attr/no-referrer-when-downgrade/script-tag-dynamic-import.http.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="unsafe-url">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer-when-downgrade"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer-when-downgrade"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer-when-downgrade"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer-when-downgrade"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer-when-downgrade"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer-when-downgrade"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer-when-downgrade"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer-when-downgrade"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer-when-downgrade"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer-when-downgrade"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer-when-downgrade"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer-when-downgrade"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/req.attr/no-referrer/script-tag-dynamic-import.http.html b/referrer-policy/gen/req.attr/no-referrer/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..a362bbb
--- /dev/null
+++ b/referrer-policy/gen/req.attr/no-referrer/script-tag-dynamic-import.http.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="unsafe-url">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "no-referrer"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag-dynamic-import.http.html b/referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..f4a932e
--- /dev/null
+++ b/referrer-policy/gen/req.attr/origin-when-cross-origin/script-tag-dynamic-import.http.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="unsafe-url">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/req.attr/origin/script-tag-dynamic-import.http.html b/referrer-policy/gen/req.attr/origin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..5d28404
--- /dev/null
+++ b/referrer-policy/gen/req.attr/origin/script-tag-dynamic-import.http.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="unsafe-url">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/req.attr/same-origin/script-tag-dynamic-import.http.html b/referrer-policy/gen/req.attr/same-origin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..1b35dd4
--- /dev/null
+++ b/referrer-policy/gen/req.attr/same-origin/script-tag-dynamic-import.http.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="unsafe-url">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "same-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "same-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "same-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "same-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "same-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "same-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "same-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "same-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "same-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "same-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag-dynamic-import.http.html b/referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..f880f0c
--- /dev/null
+++ b/referrer-policy/gen/req.attr/strict-origin-when-cross-origin/script-tag-dynamic-import.http.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="unsafe-url">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin-when-cross-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/req.attr/strict-origin/script-tag-dynamic-import.http.html b/referrer-policy/gen/req.attr/strict-origin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..f7899fd
--- /dev/null
+++ b/referrer-policy/gen/req.attr/strict-origin/script-tag-dynamic-import.http.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="unsafe-url">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "strict-origin"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/req.attr/unsafe-url/script-tag-dynamic-import.http.html b/referrer-policy/gen/req.attr/unsafe-url/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..a944f1e
--- /dev/null
+++ b/referrer-policy/gen/req.attr/unsafe-url/script-tag-dynamic-import.http.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="no-referrer">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "unsafe-url"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "unsafe-url"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "unsafe-url"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "unsafe-url"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "unsafe-url"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "unsafe-url"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "unsafe-url"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "unsafe-url"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "unsafe-url"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "unsafe-url"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "unsafe-url"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [
+              {
+                "deliveryType": "attr",
+                "key": "referrerPolicy",
+                "value": "unsafe-url"
+              }
+            ],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..4009fe6
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag-dynamic-import.http.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag-dynamic-import.http.html.headers b/referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag-dynamic-import.http.html.headers
new file mode 100644
index 0000000..180358e
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/no-referrer-when-downgrade/script-tag-dynamic-import.http.html.headers
@@ -0,0 +1,2 @@
+Access-Control-Allow-Origin: *
+Referrer-Policy: no-referrer-when-downgrade
diff --git a/referrer-policy/gen/top.http-rp/no-referrer/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.http-rp/no-referrer/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..25db2c0
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/no-referrer/script-tag-dynamic-import.http.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.http-rp/no-referrer/script-tag-dynamic-import.http.html.headers b/referrer-policy/gen/top.http-rp/no-referrer/script-tag-dynamic-import.http.html.headers
new file mode 100644
index 0000000..b3b5508
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/no-referrer/script-tag-dynamic-import.http.html.headers
@@ -0,0 +1,2 @@
+Access-Control-Allow-Origin: *
+Referrer-Policy: no-referrer
diff --git a/referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..6444480
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag-dynamic-import.http.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag-dynamic-import.http.html.headers b/referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag-dynamic-import.http.html.headers
new file mode 100644
index 0000000..a15ea7c
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/origin-when-cross-origin/script-tag-dynamic-import.http.html.headers
@@ -0,0 +1,2 @@
+Access-Control-Allow-Origin: *
+Referrer-Policy: origin-when-cross-origin
diff --git a/referrer-policy/gen/top.http-rp/origin/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.http-rp/origin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..4e754dc
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/origin/script-tag-dynamic-import.http.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.http-rp/origin/script-tag-dynamic-import.http.html.headers b/referrer-policy/gen/top.http-rp/origin/script-tag-dynamic-import.http.html.headers
new file mode 100644
index 0000000..ecff74b
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/origin/script-tag-dynamic-import.http.html.headers
@@ -0,0 +1,2 @@
+Access-Control-Allow-Origin: *
+Referrer-Policy: origin
diff --git a/referrer-policy/gen/top.http-rp/same-origin/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.http-rp/same-origin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..4db1827
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/same-origin/script-tag-dynamic-import.http.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.http-rp/same-origin/script-tag-dynamic-import.http.html.headers b/referrer-policy/gen/top.http-rp/same-origin/script-tag-dynamic-import.http.html.headers
new file mode 100644
index 0000000..be66cf9
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/same-origin/script-tag-dynamic-import.http.html.headers
@@ -0,0 +1,2 @@
+Access-Control-Allow-Origin: *
+Referrer-Policy: same-origin
diff --git a/referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..6444480
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag-dynamic-import.http.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag-dynamic-import.http.html.headers b/referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag-dynamic-import.http.html.headers
new file mode 100644
index 0000000..4cff1d1
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/strict-origin-when-cross-origin/script-tag-dynamic-import.http.html.headers
@@ -0,0 +1,2 @@
+Access-Control-Allow-Origin: *
+Referrer-Policy: strict-origin-when-cross-origin
diff --git a/referrer-policy/gen/top.http-rp/strict-origin/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.http-rp/strict-origin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..4e754dc
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/strict-origin/script-tag-dynamic-import.http.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.http-rp/strict-origin/script-tag-dynamic-import.http.html.headers b/referrer-policy/gen/top.http-rp/strict-origin/script-tag-dynamic-import.http.html.headers
new file mode 100644
index 0000000..1c32fba
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/strict-origin/script-tag-dynamic-import.http.html.headers
@@ -0,0 +1,2 @@
+Access-Control-Allow-Origin: *
+Referrer-Policy: strict-origin
diff --git a/referrer-policy/gen/top.http-rp/unsafe-url/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.http-rp/unsafe-url/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..4009fe6
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/unsafe-url/script-tag-dynamic-import.http.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.http-rp/unsafe-url/script-tag-dynamic-import.http.html.headers b/referrer-policy/gen/top.http-rp/unsafe-url/script-tag-dynamic-import.http.html.headers
new file mode 100644
index 0000000..c1d3fd1
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/unsafe-url/script-tag-dynamic-import.http.html.headers
@@ -0,0 +1,2 @@
+Access-Control-Allow-Origin: *
+Referrer-Policy: unsafe-url
diff --git a/referrer-policy/gen/top.http-rp/unset/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.http-rp/unset/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..6444480
--- /dev/null
+++ b/referrer-policy/gen/top.http-rp/unset/script-tag-dynamic-import.http.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.meta/always/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.meta/always/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..fb77c5b
--- /dev/null
+++ b/referrer-policy/gen/top.meta/always/script-tag-dynamic-import.http.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="always">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.meta/default/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.meta/default/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..b237232
--- /dev/null
+++ b/referrer-policy/gen/top.meta/default/script-tag-dynamic-import.http.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="default">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.meta/never/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.meta/never/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..1b33d88
--- /dev/null
+++ b/referrer-policy/gen/top.meta/never/script-tag-dynamic-import.http.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="never">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.meta/no-referrer-when-downgrade/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.meta/no-referrer-when-downgrade/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..5b00e92
--- /dev/null
+++ b/referrer-policy/gen/top.meta/no-referrer-when-downgrade/script-tag-dynamic-import.http.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="no-referrer-when-downgrade">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.meta/no-referrer/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.meta/no-referrer/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..5eaba98
--- /dev/null
+++ b/referrer-policy/gen/top.meta/no-referrer/script-tag-dynamic-import.http.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="no-referrer">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.meta/origin-when-cross-origin/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.meta/origin-when-cross-origin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..8bb6d6e
--- /dev/null
+++ b/referrer-policy/gen/top.meta/origin-when-cross-origin/script-tag-dynamic-import.http.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="origin-when-cross-origin">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.meta/origin-when-crossorigin/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.meta/origin-when-crossorigin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..d752465
--- /dev/null
+++ b/referrer-policy/gen/top.meta/origin-when-crossorigin/script-tag-dynamic-import.http.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="origin-when-crossorigin">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.meta/origin/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.meta/origin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..9f7dd3d
--- /dev/null
+++ b/referrer-policy/gen/top.meta/origin/script-tag-dynamic-import.http.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="origin">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.meta/same-origin/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.meta/same-origin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..e12b8cb
--- /dev/null
+++ b/referrer-policy/gen/top.meta/same-origin/script-tag-dynamic-import.http.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="same-origin">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "omitted",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects omitted for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.meta/strict-origin-when-cross-origin/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.meta/strict-origin-when-cross-origin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..2a3f6d0
--- /dev/null
+++ b/referrer-policy/gen/top.meta/strict-origin-when-cross-origin/script-tag-dynamic-import.http.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="strict-origin-when-cross-origin">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.meta/strict-origin/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.meta/strict-origin/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..107b99e
--- /dev/null
+++ b/referrer-policy/gen/top.meta/strict-origin/script-tag-dynamic-import.http.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="strict-origin">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.meta/unsafe-url/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.meta/unsafe-url/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..3e50fda
--- /dev/null
+++ b/referrer-policy/gen/top.meta/unsafe-url/script-tag-dynamic-import.http.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <meta name="referrer" content="unsafe-url">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/gen/top.meta/unset/script-tag-dynamic-import.http.html b/referrer-policy/gen/top.meta/unset/script-tag-dynamic-import.http.html
new file mode 100644
index 0000000..6444480
--- /dev/null
+++ b/referrer-policy/gen/top.meta/unset/script-tag-dynamic-import.http.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec referrer-policy/` -->
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="timeout" content="long">
+    <script src="/resources/testharness.js"></script>
+    <script src="/resources/testharnessreport.js"></script>
+    <script src="/common/security-features/resources/common.sub.js"></script>
+    <script src="../../../generic/test-case.sub.js"></script>
+  </head>
+  <body>
+    <script>
+      TestCase(
+        [
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "cross-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to cross-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-http",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-http origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and no-redirect redirection from http context."
+          },
+          {
+            "expectation": "origin",
+            "origin": "same-https",
+            "redirection": "swap-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects origin for script-tag-dynamic-import to same-https origin and swap-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "keep-origin",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and keep-origin redirection from http context."
+          },
+          {
+            "expectation": "stripped-referrer",
+            "origin": "same-http",
+            "redirection": "no-redirect",
+            "source_context_list": [],
+            "source_scheme": "http",
+            "subresource": "script-tag-dynamic-import",
+            "subresource_policy_deliveries": [],
+            "test_description": "Referrer Policy: Expects stripped-referrer for script-tag-dynamic-import to same-http origin and no-redirect redirection from http context."
+          }
+        ],
+        new SanityChecker()
+      ).start();
+    </script>
+    <div id="log"></div>
+  </body>
+</html>
diff --git a/referrer-policy/spec.src.json b/referrer-policy/spec.src.json
index e540a72..79b9b18 100644
--- a/referrer-policy/spec.src.json
+++ b/referrer-policy/spec.src.json
@@ -998,7 +998,23 @@
       "subresource": "*",
       "origin": "*",
       "expectation": "*"
-    }
+    },
+    // Skip some nested source_context_lists for faster tests.
+    {
+      "expansion": "*",
+      "source_scheme": "*",
+      "source_context_list": [
+        "iframe",
+        "srcdoc",
+        "srcdoc-inherit"
+      ],
+      "delivery_type": "*",
+      "delivery_value": "*",
+      "redirection": "*",
+      "subresource": "script-tag-dynamic-import",
+      "origin": "*",
+      "expectation": "*"
+    },
   ],
   "source_context_schema": {
     "supported_delivery_type": {
@@ -1074,6 +1090,13 @@
       "script-tag": [
         "attr"
       ],
+      "script-tag-dynamic-import": [
+        // The policy set to the <script referrerpolicy> attribute is used for
+        // dynamic imports initiated from the script, passed as referencing
+        // script's fetch options.
+        // https://html.spec.whatwg.org/multipage/webappapis.html#hostimportmoduledynamically(referencingscriptormodule,-modulerequest,-promisecapability)
+        "attr"
+      ],
       "sharedworker-classic": [],
       "sharedworker-import": [],
       "sharedworker-import-data": [],