<!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": [
              {
                "policyDeliveries": [],
                "sourceContextType": "srcdoc"
              }
            ],
            "source_scheme": "http",
            "subresource": "iframe-tag",
            "subresource_policy_deliveries": [],
            "test_description": "Referrer Policy: Expects origin for iframe-tag to cross-http origin and keep-origin redirection from http context."
          },
          {
            "expectation": "origin",
            "origin": "cross-http",
            "redirection": "no-redirect",
            "source_context_list": [
              {
                "policyDeliveries": [],
                "sourceContextType": "srcdoc"
              }
            ],
            "source_scheme": "http",
            "subresource": "iframe-tag",
            "subresource_policy_deliveries": [],
            "test_description": "Referrer Policy: Expects origin for iframe-tag to cross-http origin and no-redirect redirection from http context."
          },
          {
            "expectation": "origin",
            "origin": "cross-http",
            "redirection": "swap-origin",
            "source_context_list": [
              {
                "policyDeliveries": [],
                "sourceContextType": "srcdoc"
              }
            ],
            "source_scheme": "http",
            "subresource": "iframe-tag",
            "subresource_policy_deliveries": [],
            "test_description": "Referrer Policy: Expects origin for iframe-tag to cross-http origin and swap-origin redirection from http context."
          },
          {
            "expectation": "origin",
            "origin": "cross-https",
            "redirection": "keep-origin",
            "source_context_list": [
              {
                "policyDeliveries": [],
                "sourceContextType": "srcdoc"
              }
            ],
            "source_scheme": "http",
            "subresource": "iframe-tag",
            "subresource_policy_deliveries": [],
            "test_description": "Referrer Policy: Expects origin for iframe-tag to cross-https origin and keep-origin redirection from http context."
          },
          {
            "expectation": "origin",
            "origin": "cross-https",
            "redirection": "no-redirect",
            "source_context_list": [
              {
                "policyDeliveries": [],
                "sourceContextType": "srcdoc"
              }
            ],
            "source_scheme": "http",
            "subresource": "iframe-tag",
            "subresource_policy_deliveries": [],
            "test_description": "Referrer Policy: Expects origin for iframe-tag to cross-https origin and no-redirect redirection from http context."
          },
          {
            "expectation": "origin",
            "origin": "cross-https",
            "redirection": "swap-origin",
            "source_context_list": [
              {
                "policyDeliveries": [],
                "sourceContextType": "srcdoc"
              }
            ],
            "source_scheme": "http",
            "subresource": "iframe-tag",
            "subresource_policy_deliveries": [],
            "test_description": "Referrer Policy: Expects origin for iframe-tag to cross-https origin and swap-origin redirection from http context."
          },
          {
            "expectation": "origin",
            "origin": "same-http",
            "redirection": "swap-origin",
            "source_context_list": [
              {
                "policyDeliveries": [],
                "sourceContextType": "srcdoc"
              }
            ],
            "source_scheme": "http",
            "subresource": "iframe-tag",
            "subresource_policy_deliveries": [],
            "test_description": "Referrer Policy: Expects origin for iframe-tag to same-http origin and swap-origin redirection from http context."
          },
          {
            "expectation": "origin",
            "origin": "same-https",
            "redirection": "keep-origin",
            "source_context_list": [
              {
                "policyDeliveries": [],
                "sourceContextType": "srcdoc"
              }
            ],
            "source_scheme": "http",
            "subresource": "iframe-tag",
            "subresource_policy_deliveries": [],
            "test_description": "Referrer Policy: Expects origin for iframe-tag to same-https origin and keep-origin redirection from http context."
          },
          {
            "expectation": "origin",
            "origin": "same-https",
            "redirection": "no-redirect",
            "source_context_list": [
              {
                "policyDeliveries": [],
                "sourceContextType": "srcdoc"
              }
            ],
            "source_scheme": "http",
            "subresource": "iframe-tag",
            "subresource_policy_deliveries": [],
            "test_description": "Referrer Policy: Expects origin for iframe-tag to same-https origin and no-redirect redirection from http context."
          },
          {
            "expectation": "origin",
            "origin": "same-https",
            "redirection": "swap-origin",
            "source_context_list": [
              {
                "policyDeliveries": [],
                "sourceContextType": "srcdoc"
              }
            ],
            "source_scheme": "http",
            "subresource": "iframe-tag",
            "subresource_policy_deliveries": [],
            "test_description": "Referrer Policy: Expects origin for iframe-tag to same-https origin and swap-origin redirection from http context."
          },
          {
            "expectation": "stripped-referrer",
            "origin": "same-http",
            "redirection": "keep-origin",
            "source_context_list": [
              {
                "policyDeliveries": [],
                "sourceContextType": "srcdoc"
              }
            ],
            "source_scheme": "http",
            "subresource": "iframe-tag",
            "subresource_policy_deliveries": [],
            "test_description": "Referrer Policy: Expects stripped-referrer for iframe-tag to same-http origin and keep-origin redirection from http context."
          },
          {
            "expectation": "stripped-referrer",
            "origin": "same-http",
            "redirection": "no-redirect",
            "source_context_list": [
              {
                "policyDeliveries": [],
                "sourceContextType": "srcdoc"
              }
            ],
            "source_scheme": "http",
            "subresource": "iframe-tag",
            "subresource_policy_deliveries": [],
            "test_description": "Referrer Policy: Expects stripped-referrer for iframe-tag to same-http origin and no-redirect redirection from http context."
          }
        ],
        new SanityChecker()
      ).start();
    </script>
    <div id="log"></div>
  </body>
</html>
