{
  "results": [
    {
      "test": "/content-security-policy/navigation/to-javascript-url-frame-src.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "<iframe src='javascript:...'> not blocked by 'frame-src'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/worker-connect-src-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"xhr blocked\",\"TEST COMPLETE\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/form-action/form-action-blocks-navigate-to-allows.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that form-action overrides navigate-to when present.",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"fail\" but got (undefined) undefined"
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-injected-inline-style-blocked.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Injected style attributes should not be applied",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire a securitypolicyviolation event",
          "status": "FAIL",
          "message": "assert_equals: expected \"style-src\" but got \"style-src-elem\""
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/eval-allowed-in-report-only-mode.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Eval is allowed because the CSP is report-only",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/svg/svg-policy-resource-doc-includes.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"TEST COMPLETE\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/injected-inline-style-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=style-src-elem\",\"PASS\"]",
          "status": "FAIL",
          "message": "assert_unreached: unexpected log: violated-directive=style-src Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/parent-navigates-child-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the parent can navigate the child because the relevant policy belongs to the navigation initiator (in this case the parent, which has the policy `navigate-to 'self'`)",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/blob/blob-urls-do-not-match-self.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=script-src-elem\"]",
          "status": "FAIL",
          "message": "assert_unreached: unexpected log: violated-directive=script-src Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/securitypolicyviolation/constructor-required-fields.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "SecurityPolicyViolationEvent constructor should throw with no parameters",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent constructor works with an init dict",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent constructor requires documentURI",
          "status": "FAIL",
          "message": "assert_throws: function \"function() { new SecurityPolicyViolationEvent(\"securitypolicyviolation\", {\n          // documentURI: \"http://example.com\",\n          referrer: \"http://example.com\",\n          blockedURI: \"http://example.com\",\n          violatedDirective: \"default-src\",\n          effectiveDirective: \"default-src\",\n          originalPolicy: \"default-src 'none'\",\n          sourceFile: \"example.js\",\n          sample: \"<script>alert('1');</scr\" + \"ipt>\",\n          disposition: \"enforce\",\n          statusCode: 200,\n          lineNumber: 1,\n          columnNumber: 1,\n      })}\" did not throw"
        },
        {
          "name": "SecurityPolicyViolationEvent constructor requires violatedDirective",
          "status": "FAIL",
          "message": "assert_throws: function \"function() { new SecurityPolicyViolationEvent(\"securitypolicyviolation\", {\n          documentURI: \"http://example.com\",\n          referrer: \"http://example.com\",\n          blockedURI: \"http://example.com\",\n          // violatedDirective: \"default-src\",\n          effectiveDirective: \"default-src\",\n          originalPolicy: \"default-src 'none'\",\n          sourceFile: \"example.js\",\n          sample: \"<script>alert('1');</scr\" + \"ipt>\",\n          disposition: \"enforce\",\n          statusCode: 200,\n          lineNumber: 1,\n          columnNumber: 1,\n      })}\" did not throw"
        },
        {
          "name": "SecurityPolicyViolationEvent constructor requires effectiveDirective",
          "status": "FAIL",
          "message": "assert_throws: function \"function() { new SecurityPolicyViolationEvent(\"securitypolicyviolation\", {\n          documentURI: \"http://example.com\",\n          referrer: \"http://example.com\",\n          blockedURI: \"http://example.com\",\n          violatedDirective: \"default-src\",\n          // effectiveDirective: \"default-src\",\n          originalPolicy: \"default-src 'none'\",\n          sourceFile: \"example.js\",\n          sample: \"<script>alert('1');</scr\" + \"ipt>\",\n          disposition: \"enforce\",\n          statusCode: 200,\n          lineNumber: 1,\n          columnNumber: 1,\n      })}\" did not throw"
        },
        {
          "name": "SecurityPolicyViolationEvent constructor requires originalPolicy",
          "status": "FAIL",
          "message": "assert_throws: function \"function() { new SecurityPolicyViolationEvent(\"securitypolicyviolation\", {\n          documentURI: \"http://example.com\",\n          referrer: \"http://example.com\",\n          blockedURI: \"http://example.com\",\n          violatedDirective: \"default-src\",\n          effectiveDirective: \"default-src\",\n          // originalPolicy: \"default-src 'none'\",\n          sourceFile: \"example.js\",\n          sample: \"<script>alert('1');</scr\" + \"ipt>\",\n          disposition: \"enforce\",\n          statusCode: 200,\n          lineNumber: 1,\n          columnNumber: 1,\n      })}\" did not throw"
        },
        {
          "name": "SecurityPolicyViolationEvent constructor requires disposition",
          "status": "FAIL",
          "message": "assert_throws: function \"function() { new SecurityPolicyViolationEvent(\"securitypolicyviolation\", {\n          documentURI: \"http://example.com\",\n          referrer: \"http://example.com\",\n          blockedURI: \"http://example.com\",\n          violatedDirective: \"default-src\",\n          effectiveDirective: \"default-src\",\n          originalPolicy: \"default-src 'none'\",\n          sourceFile: \"example.js\",\n          sample: \"<script>alert('1');</scr\" + \"ipt>\",\n          // disposition: \"enforce\",\n          statusCode: 200,\n          lineNumber: 1,\n          columnNumber: 1,\n      })}\" did not throw"
        },
        {
          "name": "SecurityPolicyViolationEvent constructor requires statusCode",
          "status": "FAIL",
          "message": "assert_throws: function \"function() { new SecurityPolicyViolationEvent(\"securitypolicyviolation\", {\n          documentURI: \"http://example.com\",\n          referrer: \"http://example.com\",\n          blockedURI: \"http://example.com\",\n          violatedDirective: \"default-src\",\n          effectiveDirective: \"default-src\",\n          originalPolicy: \"default-src 'none'\",\n          sourceFile: \"example.js\",\n          sample: \"<script>alert('1');</scr\" + \"ipt>\",\n          disposition: \"enforce\",\n          // statusCode: 200,\n          lineNumber: 1,\n          columnNumber: 1,\n      })}\" did not throw"
        },
        {
          "name": "SecurityPolicyViolationEvent constructor does not require referrer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent constructor does not require blockedURI",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent constructor does not require sourceFile",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent constructor does not require sample",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent constructor does not require lineNumber",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent constructor does not require columnNumber",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/service-fallback.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin service worker allowed by host-source expression.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-url-block.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a URL which doesn't match this origin should be blocked.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/inheritance/iframe-srcdoc-inheritance.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "First image should be blocked",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Second image should be blocked",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-hashes/style_attribute_denied_wrong_hash.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the inline style attribute is blocked",
          "status": "FAIL",
          "message": "assert_equals: expected \"style-src-attr\" but got \"style-src\""
        }
      ]
    },
    {
      "test": "/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Non-redirected same-origin URLs are not stripped.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/plugin-types/plugintypes-mismatched-data.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should not load the object because its declared type does not match its actual type",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/meta/meta-img-src.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\",\"TEST COMPLETE\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/form-action/form-action-src-redirect-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=form-action\",\"TEST COMPLETE\"]",
          "status": "FAIL",
          "message": "assert_unreached: Logging timeout, expected logs violated-directive=form-action not sent. Reached unreachable code"
        },
        {
          "name": "form-action-src-redirect-blocked",
          "status": "FAIL",
          "message": "assert_unreached: FAIL Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/securitypolicyviolation/idlharness.window.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "idl_test setup",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: existence and properties of interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface object length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface object name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: existence and properties of interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute documentURL",
          "status": "FAIL",
          "message": "assert_true: The prototype object must have a property \"documentURL\" expected true got false"
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute documentURI",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute referrer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute blockedURL",
          "status": "FAIL",
          "message": "assert_true: The prototype object must have a property \"blockedURL\" expected true got false"
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute blockedURI",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute effectiveDirective",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute violatedDirective",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute originalPolicy",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute sourceFile",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute sample",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute disposition",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute statusCode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute lineno",
          "status": "FAIL",
          "message": "assert_true: The prototype object must have a property \"lineno\" expected true got false"
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute lineNumber",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute colno",
          "status": "FAIL",
          "message": "assert_true: The prototype object must have a property \"colno\" expected true got false"
        },
        {
          "name": "SecurityPolicyViolationEvent interface: attribute columnNumber",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent must be primary interface of new SecurityPolicyViolationEvent(\"securitypolicyviolation\")",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Stringification of new SecurityPolicyViolationEvent(\"securitypolicyviolation\")",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"documentURL\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"documentURL\" not found in prototype chain"
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"documentURI\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"referrer\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"blockedURL\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"blockedURL\" not found in prototype chain"
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"blockedURI\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"effectiveDirective\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"violatedDirective\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"originalPolicy\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"sourceFile\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"sample\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"disposition\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"statusCode\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"lineno\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"lineno\" not found in prototype chain"
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"lineNumber\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"colno\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"colno\" not found in prototype chain"
        },
        {
          "name": "SecurityPolicyViolationEvent interface: new SecurityPolicyViolationEvent(\"securitypolicyviolation\") must inherit property \"columnNumber\" with the proper type",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-self-block.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a value 'same' should block render in same-origin nested frames.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/meta/combine-header-and-meta-policies.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"TEST COMPLETE\", \"violated-directive=img-src\", \"violated-directive=style-src-elem\"]",
          "status": "FAIL",
          "message": "assert_unreached: unexpected log: violated-directive=img-src Reached unreachable code"
        },
        {
          "name": "combine-header-and-meta-policies",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/inline-style-attribute-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=style-src-attr\",\"PASS\"]",
          "status": "FAIL",
          "message": "assert_unreached: unexpected log: violated-directive=style-src Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/media-src/media-src-7_1.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "In-policy async video src",
          "status": "PASS",
          "message": null
        },
        {
          "name": "In-policy async video source element",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should not fire policy violation events",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-src/frame-src-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS IFrame #1 generated a load event.\",\"violated-directive=frame-src\"]",
          "status": "FAIL",
          "message": "assert_unreached: FAIL Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/form-action/form-action-src-default-ignored.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\",\"TEST COMPLETE\"]",
          "status": "FAIL",
          "message": "assert_unreached: Fail Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/plugin-types/plugintypes-nourl-blocked.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should not load the object because it does not match plugin-types",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/plugin-types/plugintypes-nourl-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/stylehash-default-src.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "stylehash allowed from default-src",
          "status": "FAIL",
          "message": "uncaught exception: Error: assert_equals: expected \"rgb(0, 128, 0)\" but got \"rgb(0, 0, 0)\""
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/required_csp-header.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test same origin: Sec-Required-CSP is not sent if `csp` attribute is not set on <iframe>.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test same origin redirect: Sec-Required-CSP is not sent if `csp` attribute is not set on <iframe>.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect: Sec-Required-CSP is not sent if `csp` attribute is not set on <iframe>.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect of cross origin iframe: Sec-Required-CSP is not sent if `csp` attribute is not set on <iframe>.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test Required-CSP value on `csp` change: Sec-Required-CSP is not sent if `csp` attribute is not set on <iframe>.",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"default-src 'unsafe-inline'\" but got (object) null"
        },
        {
          "name": "Test same origin: Send Sec-Required-CSP when `csp` attribute of <iframe> is not empty.",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test same origin redirect: Send Sec-Required-CSP when `csp` attribute of <iframe> is not empty.",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test cross origin redirect: Send Sec-Required-CSP when `csp` attribute of <iframe> is not empty.",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test cross origin redirect of cross origin iframe: Send Sec-Required-CSP when `csp` attribute of <iframe> is not empty.",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test Required-CSP value on `csp` change: Send Sec-Required-CSP when `csp` attribute of <iframe> is not empty.",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"script-src 'unsafe-inline'\" but got (object) null"
        },
        {
          "name": "Test same origin: Send Sec-Required-CSP Header on change of `src` attribute on iframe.",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test same origin redirect: Send Sec-Required-CSP Header on change of `src` attribute on iframe.",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test cross origin redirect: Send Sec-Required-CSP Header on change of `src` attribute on iframe.",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test cross origin redirect of cross origin iframe: Send Sec-Required-CSP Header on change of `src` attribute on iframe.",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test Required-CSP value on `csp` change: Send Sec-Required-CSP Header on change of `src` attribute on iframe.",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"script-src 'unsafe-inline'\" but got (object) null"
        },
        {
          "name": "Test same origin: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - gibberish csp",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test same origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - gibberish csp",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - gibberish csp",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect of cross origin iframe: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - gibberish csp",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - gibberish csp",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"default-src 'unsafe-inline'\" but got (object) null"
        },
        {
          "name": "Test same origin: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - unknown policy name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test same origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - unknown policy name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - unknown policy name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect of cross origin iframe: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - unknown policy name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - unknown policy name",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"default-src 'unsafe-inline'\" but got (object) null"
        },
        {
          "name": "Test same origin: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - unknown policy name in multiple directives",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test same origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - unknown policy name in multiple directives",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - unknown policy name in multiple directives",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect of cross origin iframe: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - unknown policy name in multiple directives",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - unknown policy name in multiple directives",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"default-src 'unsafe-inline'\" but got (object) null"
        },
        {
          "name": "Test same origin: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - misspeled 'none'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test same origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - misspeled 'none'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - misspeled 'none'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect of cross origin iframe: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - misspeled 'none'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - misspeled 'none'",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"default-src 'unsafe-inline'\" but got (object) null"
        },
        {
          "name": "Test same origin: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - query values in path",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test same origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - query values in path",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - query values in path",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect of cross origin iframe: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - query values in path",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - query values in path",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"default-src 'unsafe-inline'\" but got (object) null"
        },
        {
          "name": "Test same origin: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - missing semicolon",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test same origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - missing semicolon",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - missing semicolon",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect of cross origin iframe: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - missing semicolon",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - missing semicolon",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"default-src 'unsafe-inline'\" but got (object) null"
        },
        {
          "name": "Test same origin: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - comma separated",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test same origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - comma separated",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - comma separated",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect of cross origin iframe: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - comma separated",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - comma separated",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"default-src 'unsafe-inline'\" but got (object) null"
        },
        {
          "name": "Test same origin: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - html encoded string",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test same origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - html encoded string",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - html encoded string",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect of cross origin iframe: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - html encoded string",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - html encoded string",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"default-src 'unsafe-inline'\" but got (object) null"
        },
        {
          "name": "Test same origin: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - url encoded string",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test same origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - url encoded string",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - url encoded string",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect of cross origin iframe: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - url encoded string",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - url encoded string",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"default-src 'unsafe-inline'\" but got (object) null"
        },
        {
          "name": "Test same origin: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - report-uri present",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test same origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - report-uri present",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - report-uri present",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect of cross origin iframe: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - report-uri present",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - report-uri present",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"default-src 'unsafe-inline'\" but got (object) null"
        },
        {
          "name": "Test same origin: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - report-to present",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test same origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - report-to present",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - report-to present",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test cross origin redirect of cross origin iframe: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - report-to present",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test Required-CSP value on `csp` change: Wrong value of `csp` should not trigger sending Sec-Required-CSP Header - report-to present",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"default-src 'unsafe-inline'\" but got (object) null"
        }
      ]
    },
    {
      "test": "content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-star-allow.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "status": "TIMEOUT",
          "xstatus": "SERVERTIMEOUT"
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-inline-style-nonce-blocked-error-event.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should fire a securitypolicyviolation event",
          "status": "FAIL",
          "message": "assert_equals: expected \"style-src\" but got \"style-src-elem\""
        },
        {
          "name": "Test that paragraph remains unmodified and error events received.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/stylehash-basic-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting alerts: [\"PASS: The 'p' element's text is green, which means the style was correctly applied.\", \"violated-directive=style-src-elem\"]",
          "status": "FAIL",
          "message": "assert_unreached: unexpected alert: violated-directive=style-src Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/inheritance/blob-url-in-main-window-self-navigate-inherits.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/script-src-overrides-default-src.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS 1 of 2\",\"PASS 2 of 2\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/media-src/media-src-7_2.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "In-policy audio src",
          "status": "PASS",
          "message": null
        },
        {
          "name": "In-policy audio source element",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should not fire policy violation events",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/object-src/object-src-url-embed-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that violation report event was fired",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/svg/svg-inline.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should fire violation event",
          "status": "FAIL",
          "message": "assert_equals: expected \"script-src-elem\" but got \"script-src\""
        }
      ]
    },
    {
      "test": "/content-security-policy/sandbox/window-reuse-unsandboxed.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Window object should be reused",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-multiple-policies-multiple-hashing-algorithms.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that style loads if allowed by proper hash values",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/worker-eval-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"eval blocked\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/base-uri/base-uri-deny.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Check that baseURI fires a securitypolicyviolation event when it does not match the csp directive",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check that the baseURI is not set when it does not match the csp directive",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-cross-origin-no-cookies.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Image should not load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test report cookies.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-eval/eval-blocked-and-sends-report.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS: eval() blocked.\",\"violated-directive=script-src\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-injected-stylesheet-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Programatically injected stylesheet should load",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/href-location-blocked.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is not allowed",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/form-action/form-action-src-get-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\",\"TEST COMPLETE\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/media-src/media-src-redir-bug.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "In-policy async video src",
          "status": "PASS",
          "message": null
        },
        {
          "name": "in-policy async video src w/redir",
          "status": "PASS",
          "message": null
        },
        {
          "name": "In-policy async video source element",
          "status": "PASS",
          "message": null
        },
        {
          "name": "In-policy async video source element w/redir",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should not fire policy violation events",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-sandboxed-cross-url-block.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a URL value should compare against each frame's origin rather than URL, so a nested frame with a sandboxed parent frame should be blocked due to the parent having a unique origin.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src-attr-elem/style-src-elem-allowed-attr-blocked.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should fire a security policy violation for the attribute",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "The attribute style should not be applied and the inline style should be applied",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src-attr-elem/style-src-attr-blocked-src-allowed.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should fire a security policy violation event",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "The attribute style should not be applied",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-eval/eval-blocked-in-about-blank-iframe.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=script-src\",\"PASS\"]",
          "status": "FAIL",
          "message": "assert_unreached: Logging timeout, expected logs PASS not sent. Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/connect-src-websocket-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"blocked\",\"violated-directive=connect-src\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/plugin-types/plugintypes-notype-data.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should not load the object because it does not have a declared type",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/cspro-not-enforced-in-worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Check that inline is allowed since the inherited policy is report only",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check that eval is allowed since the inherited policy is report only",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/font-src/font-match-allowed.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test font loads if it matches font-src.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-stylesheet-nonce-blocked.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should not load stylesheet without correct nonce",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire a securitypolicyviolation event",
          "status": "FAIL",
          "message": "assert_equals: expected \"style-src\" but got \"style-src-elem\""
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/injected-inline-script-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"Pass 1 of 2\",\"Pass 2 of 2\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Upgraded image is reported",
          "status": "FAIL",
          "message": "generateURL is not defined"
        },
        {
          "name": "Upgraded iframe is reported",
          "status": "FAIL",
          "message": "generateURL is not defined"
        },
        {
          "name": "Navigated iframe is upgraded and reported",
          "status": "FAIL",
          "message": "generateURL is not defined"
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-hashes/javascript_src_denied_missing_unsafe_hashes-window_location.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test that the javascript: src is not allowed to run",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/form-redirected-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is allowed",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-strips-fragment.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Reported document URI does not contain fragments.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/shared-worker-connect-src-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"xhr blocked\",\"TEST COMPLETE\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/link-click-cross-origin-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is allowed",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/form-action/form-action-src-redirect-allowed-target-frame.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "form submission targetting a frame allowed after a redirect",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-uri-from-child-frame.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Check that we received a message from the child frame",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/object-src/object-src-url-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src-attr-elem/style-src-elem-blocked-src-allowed.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should fire a security policy violation event",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "The inline style should not be applied",
          "status": "FAIL",
          "message": "assert_equals: expected 0 but got 1"
        }
      ]
    },
    {
      "test": "/content-security-policy/sandbox/iframe-inside-csp.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS (1/2): Script can execute\",\"PASS (2/2): Eval works\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/subsumption_algorithm-hashes.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "'sha256-abc123' is properly subsumed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Returned should not include hashes not present in required csp.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "'sha256-abc123' is properly subsumed with other sources.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Hashes do not have to be present in returned csp.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Hashes do not have to be present in returned csp but must not allow all inline behavior.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Other expressions have to be subsumed.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Other expressions have to be subsumed but 'unsafe-inline' gets ignored.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Effective policy is properly found.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Required csp must allow 'sha256-abc123'.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Effective policy is properly found where 'sha256-abc123' is not subsumed.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "'sha256-abc123' is not subsumed by 'sha256-abc456'.",
          "status": "FAIL",
          "message": "assert_unreached: No message should be sent from the frame. Reached unreachable code"
        },
        {
          "name": "Effective policy now does not allow 'sha256-abc123'.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Effective policy is properly found where 'sha256-abc123' is not part of it.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/connect-src-xmlhttprequest-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"Pass\",\"violated-directive=connect-src\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/child-src/child-src-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS IFrame #1 generated a load event.\"]",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Expecting alerts: [\"PASS\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/dedicated-fallback.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin dedicated worker allowed by host-source expression.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "blob: dedicated worker allowed by 'blob:'.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/scriptnonce-basic-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting alerts: [\"PASS (closely-quoted nonce)\",\"PASS (nonce w/whitespace)\", \"violated-directive=script-src-elem\", \"violated-directive=script-src-elem\", \"violated-directive=script-src-elem\"]",
          "status": "FAIL",
          "message": "assert_unreached: Alert timeout, expected alerts PASS (nonce w/whitespace),violated-directive=script-src-elem,violated-directive=script-src-elem,violated-directive=script-src-elem not fired. Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/form-action/form-action-src-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\",\"TEST COMPLETE\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/hash-always-converted-to-utf-8/iso-8859-9.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should convert the script contents to UTF-8 before hashing",
          "status": "FAIL",
          "message": "assert_unreached: Should not have fired a spv Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-eval/eval-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS EvalError\",\"PASS EvalError\", \"violated-directive=script-src\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/form-action/form-action-src-javascript-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=form-action\",\"TEST COMPLETE\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-eval/eval-scripts-setInterval-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS 1 of 2\",\"PASS 2 of 2\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-self-block.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a value 'self' should block rendering.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-inline-style-blocked.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Inline style element should not load without 'unsafe-inline'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire a securitypolicyviolation event",
          "status": "FAIL",
          "message": "assert_equals: expected \"style-src\" but got \"style-src-elem\""
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/worker-set-timeout-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting alerts: [\"setTimeout blocked\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-eval/eval-scripts-setTimeout-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS 1 of 2\",\"PASS 2 of 2\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_inline.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "'strict-dynamic' is ineffective for `style-src`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'unsafe-inline' is properly subsumed in `style-src`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'unsafe-inline' is only ineffective if the effective returned csp has nonces in `style-src`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'unsafe-inline' is only ineffective if the effective returned csp has hashes in `style-src`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Returned csp does not have to allow 'unsafe-inline' in `style-src` to be subsumed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'unsafe-inline' does not matter if returned csp is effectively `none`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'unsafe-inline' is properly subsumed in `script-src`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Returned csp only loads 'unsafe-inline' scripts with 'nonce-abc'.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'unsafe-inline' is ineffective when nonces are present.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'unsafe-inline' is only ineffective if the effective returned csp has hashes in `script-src`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Required csp allows `strict-dynamic`, but retuned csp does.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Required csp does not allow `unsafe-inline`, but retuned csp does.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Returned csp whitelists a nonce.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Returned csp whitelists a hash.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Effective returned csp allows 'unsafe-inline'",
          "status": "FAIL",
          "message": "assert_unreached: No message should be sent from the frame. Reached unreachable code"
        },
        {
          "name": "Effective returned csp does not allow 'sha512-321cba' hash.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/worker-importscripts-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"TEST COMPLETE\"]",
          "status": "PASS",
          "message": null
        },
        {
          "name": "worker-importscripts-blocked",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/svg/svg-from-guid.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"TEST COMPLETE\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-star-allow.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "status": "TIMEOUT",
          "xstatus": "SERVERTIMEOUT"
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-hashes/style_attribute_denied_missing_unsafe_hashes.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test that the inline style attribute is blocked",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/dedicated-self.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin dedicated worker allowed by 'self'.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/img-src/icon-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that image does not load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test that spv event is fired",
          "status": "FAIL",
          "message": "assert_true: expected true got false"
        }
      ]
    },
    {
      "test": "/content-security-policy/img-src/report-blocked-data-uri.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=img-src\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-star-allow.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a value '*' should render in nested frames.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/shared-none.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin shared worker blocked by 'none'.",
          "status": "FAIL",
          "message": "assert_throws: function \"function () {\n      var w = new SharedWorker(url);\n    }\" did not throw"
        },
        {
          "name": "blob: shared worker blocked by 'none'.",
          "status": "FAIL",
          "message": "assert_throws: function \"function () {\n      var w = new SharedWorker(url);\n    }\" did not throw"
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/meta-refresh-redirected-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is allowed",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/child-navigates-parent-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child can't navigate the parent because the relevant policy belongs to the navigation initiator (in this case the child which has the policy `navigate-to 'none'`)",
          "status": "FAIL",
          "message": "assert_equals: expected \"fail\" but got \"success\""
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/securitypolicyviolation/blockeduri-eval.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Eval violations have a blockedURI of 'eval'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/dedicated-list.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin dedicated worker allowed by host-source expression.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "blob: dedicated worker allowed by 'blob:'.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/img-src/img-src-host-partial-wildcard-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "img src matches correctly partial wildcard host csp directive",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-blocked-uri-cross-origin.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-error-event-fires.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test error event fires on stylesheet link",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test error event fires on inline style",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/filesystem-urls-do-not-match-self.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=script-src-elem\"]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "filesystem-urls-do-not-match-self",
          "status": "NOTRUN",
          "message": "No filesystem:// support, cannot run test."
        }
      ]
    },
    {
      "test": "/content-security-policy/sandbox/sandbox-allow-scripts.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"Message\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/worker-function-function-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"Function() function blocked\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src-attr-elem/style-src-elem-blocked-attr-allowed.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should fire a security policy violation for the inline block",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "The inline style should not be applied and the attribute style should be applied",
          "status": "FAIL",
          "message": "assert_true: expected true got false"
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/generic-0_10.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that script does not fire violation event",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-injected-inline-style-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Injected inline style should load with 'unsafe-inline'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/generic-0_9.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test that script does not fire violation event",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/directive-name-case-insensitive.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the www1 image is allowed to load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test that the www2 image is not allowed to load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test that the www2 image throws a violation event",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/href-location-allowed.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is allowed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/link-click-redirected-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is not allowed",
          "status": "FAIL",
          "message": "assert_equals: expected \"fail\" but got \"success\""
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/service-child.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin service worker allowed by host-source expression.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/unsafe-allow-redirects/blocked-end-of-chain.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is blocked",
          "status": "FAIL",
          "message": "assert_equals: expected \"fail\" but got \"success\""
        }
      ]
    },
    {
      "test": "/content-security-policy/media-src/media-src-7_2_2.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Disallaowed audio src",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Disallowed audio source element",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test that securitypolicyviolation events are fired",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-url-block.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a URL value should block or allow rendering in nested frames as appropriate.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/srcdoc-doesnt-bypass-script-src.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=script-src-elem\"]",
          "status": "FAIL",
          "message": "assert_unreached: Logging timeout, expected logs violated-directive=script-src-elem not sent. Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/hash-always-converted-to-utf-8/utf-8-lone-surrogate.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should convert the script contents to UTF-8 before hashing",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/link-click-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is not allowed",
          "status": "FAIL",
          "message": "assert_equals: expected \"fail\" but got \"success\""
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/img-src/img-src-none-blocks.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "img-src with 'none' source should not match",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-url-block.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a URL value should block or allow rendering in nested frames as appropriate.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-star-allow.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a value '*' should render in nested frames.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/prefetch-src/prefetch-header-allowed.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Browser supports prefetch.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Browser supports performance APIs.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Prefetch via `Link` header succeeds when allowed by prefetch-src",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/content-security-policy/blob/star-doesnt-match-blob.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=worker-src\",\"TEST COMPLETE\"]",
          "status": "FAIL",
          "message": "assert_unreached: unexpected log: violated-directive=child-src Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/scripthash-ignore-unsafeinline.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting alerts: [\"PASS (1/1)\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/script-src-1_10_1.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that no report violation event was raised",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Verify that data: as script src runs with this policy",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-uri-from-inline-javascript.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/idlharness.window.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "idl_test setup",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Partial interface HTMLIFrameElement: original interface defined",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLIFrameElement interface: attribute csp",
          "status": "FAIL",
          "message": "assert_true: The prototype object must have a property \"csp\" expected true got false"
        },
        {
          "name": "HTMLIFrameElement interface: document.createElement(\"iframe\") must inherit property \"csp\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"csp\" not found in prototype chain"
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/form-cross-origin-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is not allowed",
          "status": "FAIL",
          "message": "assert_equals: expected \"fail\" but got \"success\""
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/script-src-1_2_1.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that securitypolicyviolation event is fired",
          "status": "FAIL",
          "message": "assert_equals: expected \"script-src-elem\" but got \"script-src\""
        },
        {
          "name": "DOM manipulation inline tests",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/scriptnonce-redirect.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting alerts: [\"PASS\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/only-valid-whitespaces-are-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should load image without any CSP - meta tag",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should load image without any CSP - HTTP header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should not load image with 'none' CSP - meta tag",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should not load image with 'none' CSP - HTTP header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+0009 TAB   should be properly parsed between directive name and value - meta tag",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+0009 TAB   should be properly parsed between directive name and value - HTTP header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+000C FF    should be properly parsed between directive name and value - meta tag",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+000C FF    should be properly parsed between directive name and value - HTTP header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+000A LF    should be properly parsed between directive name and value - meta tag",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+000D CR    should be properly parsed between directive name and value - meta tag",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+0020 SPACE should be properly parsed between directive name and value - meta tag",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+0020 SPACE should be properly parsed between directive name and value - HTTP header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+0009 TAB   should be properly parsed inside directive value - meta tag",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+0009 TAB   should be properly parsed inside directive value - HTTP header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+000C FF    should be properly parsed inside directive value - meta tag",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+000C FF    should be properly parsed inside directive value - HTTP header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+000A LF    should be properly parsed inside directive value - meta tag",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+000D CR    should be properly parsed inside directive value - meta tag",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+0020 SPACE should be properly parsed inside directive value - meta tag",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+0020 SPACE should be properly parsed inside directive value - HTTP header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+00A0 NBSP  should not be parsed between directive name and value - meta tag",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+00A0 NBSP  should not be parsed between directive name and value - HTTP header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "U+00A0 NBSP  should not be parsed inside directive value - meta tag",
          "status": "FAIL",
          "message": "assert_equals: expected \"img loaded\" but got \"img not loaded\""
        },
        {
          "name": "U+00A0 NBSP  should not be parsed inside directive value - HTTP header",
          "status": "FAIL",
          "message": "assert_equals: expected \"img loaded\" but got \"img not loaded\""
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-src/frame-src-redirect.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Redirected iframe src should evaluate both enforced and report-only policies on both original request and when following redirect",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/content-security-policy/inside-worker/shared-inheritance.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin 'fetch()' in http:",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin XHR in http:",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin 'fetch()' in http:",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Cross-origin XHR in http:",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-origin => cross-origin 'fetch()' in http:",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-origin 'fetch()' in http:?pipe=sub|header(Content-Security-Policy,default-src%20%27self%27)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin XHR in http:?pipe=sub|header(Content-Security-Policy,default-src%20%27self%27)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin 'fetch()' in http:?pipe=sub|header(Content-Security-Policy,connect-src%20%27self%27)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin 'fetch()' in http:?pipe=sub|header(Content-Security-Policy,default-src%20%27self%27)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin XHR in http:?pipe=sub|header(Content-Security-Policy,connect-src%20%27self%27)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin XHR in http:?pipe=sub|header(Content-Security-Policy,default-src%20%27self%27)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin 'fetch()' in http:?pipe=sub|header(Content-Security-Policy,connect-src%20%27self%27)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin => cross-origin 'fetch()' in http:?pipe=sub|header(Content-Security-Policy,default-src%20%27self%27)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin XHR in http:?pipe=sub|header(Content-Security-Policy,connect-src%20%27self%27)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin => cross-origin 'fetch()' in http:?pipe=sub|header(Content-Security-Policy,connect-src%20%27self%27)",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/service-none.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin service worker blocked by 'none'.",
          "status": "FAIL",
          "message": "assert_throws: function \"function() { throw e }\" threw object \"[Exception... \"<no message>\"  nsresult: \"0x805e0006 (<unknown>)\"  location: \"JS frame :: https://webapitests2018.ctawave.org:8443/content-security-policy/support/testharness-helper.js :: assert_service_worker_is_blocked/< :: line 136\"  data: no]\" that is not a DOMException SecurityError: property \"code\" is equal to undefined, expected 18"
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-src/frame-src-about-blank-allowed-by-scheme.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src-attr-elem/script-src-elem-blocked-attr-allowed.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should fire a security policy violation for the attribute",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Should execute the inline script attribute",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-blocked-data-uri.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image-from-script.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Non-redirected cross-origin URLs are not stripped.",
          "status": "FAIL",
          "message": "assert_equals: expected \"http://www.webapitests2018.ctawave.org:8000/content-security-policy/support/fail.png\" but got \"http://webapitests2018.ctawave.org:8000/favicon.ico\""
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-imported-style-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Imported style that violates policy should not load",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-uri-multiple.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/inheritance/inherited-csp-list-modifications-are-local.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test that parent document image loads",
          "status": "FAIL",
          "message": "assert_unreached: Should have loaded the image Reached unreachable code"
        },
        {
          "name": "Test that embedded iframe document image does not load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test that spv event is fired",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigation/javascript-url-navigation-inherits-csp.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "javascript-url-navigation-inherits-csp",
          "status": "FAIL",
          "message": "TypeError: cookies[i].split(...)[1] is undefined"
        }
      ]
    },
    {
      "test": "/content-security-policy/sandbox/window-reuse-sandboxed.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Window object should not be reused",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-eval/function-constructor-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS EvalError\",\"violated-directive=script-src\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/spv-only-sent-to-initiator.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test that no spv event is raised",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/dedicated-none.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin dedicated worker blocked by host-source expression.",
          "status": "FAIL",
          "message": "assert_throws: function \"function () {\n      var w = new Worker(url);\n    }\" did not throw"
        },
        {
          "name": "blob: dedicated worker blocked by 'blob:'.",
          "status": "FAIL",
          "message": "assert_throws: function \"function () {\n      var w = new Worker(url);\n    }\" did not throw"
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-eval/eval-scripts-setInterval-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\",\"violated-directive=script-src\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/generic-0_8.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that script does not fire violation event",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/generic-0_10_1.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Prevents access to external scripts.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire violation events for every failed violation",
          "status": "FAIL",
          "message": "assert_equals: expected \"script-src-elem\" but got \"script-src\""
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-inline-style-nonce-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Style with correct nonce should load",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/securitypolicyviolation/style-sample-no-opt-in.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Inline style blocks should not have a sample.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Inline style attributes should not have a sample.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-url-allow.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a URL value should block or allow rendering in nested frames as appropriate.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/font-src/font-self-allowed.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test font loads if it matches font-src.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/content-security-policy/plugin-types/plugintypes-notype-url.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should not load the object because it does not have a declared type",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-star-allow-crossorigin.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with '*' should allow rendering.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-none-block.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a value 'none' should block rendering in nested frames.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/plugin-types/plugintypes-mismatched-url.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should not load the object because its declared type does not match its actual type",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/blob/self-doesnt-match-blob.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=worker-src\",\"TEST COMPLETE\"]",
          "status": "FAIL",
          "message": "assert_unreached: unexpected log: violated-directive=child-src Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/object-src/object-src-url-embed-blocked.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should block the object and fire a spv",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/stylenonce-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should fire securitypolicyviolation",
          "status": "FAIL",
          "message": "assert_equals: expected \"style-src-elem\" but got \"style-src\""
        },
        {
          "name": "stylenonce-allowed",
          "status": "PASS",
          "message": null
        },
        {
          "name": "stylenonce-allowed 1",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/generic-0_2_3.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Prevents access to external scripts.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire violation events for every failed violation",
          "status": "FAIL",
          "message": "assert_equals: expected \"script-src-elem\" but got \"script-src\""
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/script-src-1_10.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that securitypolicyviolation event is fired",
          "status": "FAIL",
          "message": "assert_equals: expected \"script-src\" but got \"default-src\""
        },
        {
          "name": "Verify that data: as script src doesn't run with this policy",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/script-src-1_2.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Inline script block",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Inline event handler",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire policy violation events",
          "status": "FAIL",
          "message": "assert_unreached: Unexpected directive broken Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/child-navigates-parent-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child can navigate the parent because the relevant policy belongs to the navigation initiator (in this case the child, which has the policy `navigate-to 'self'`)",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-none-blocked.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should not stylesheet when style-src is 'none'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire a securitypolicyviolation event",
          "status": "FAIL",
          "message": "assert_equals: expected \"style-src\" but got \"style-src-elem\""
        }
      ]
    },
    {
      "test": "/content-security-policy/navigation/to-javascript-parent-initiated-parent-csp.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should not have executed the javascript url",
          "status": "FAIL",
          "message": "assert_equals: expected \"script-src-attr\" but got \"script-src\""
        }
      ]
    },
    {
      "test": "/content-security-policy/sandbox/sandbox-empty-subframe.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS2\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-url-allow.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a URL value should block or allow rendering in nested frames as appropriate.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-url-block.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a URL value should block or allow rendering in nested frames as appropriate.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-self-block.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a value 'same' should block render in same-origin nested frames.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/generic-0_2.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should fire violation events for every failed violation",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-none-block.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a value 'none' should block rendering.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/form-action/form-action-src-allowed-target-frame.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "form submission targetting a frame allowed",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/meta-refresh-cross-origin-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is not allowed",
          "status": "FAIL",
          "message": "assert_equals: expected \"fail\" but got \"success\""
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/media-src/media-src-7_3.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "In-policy track element",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should not fire policy violation events",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src-attr-elem/script-src-elem-allowed-attr-blocked.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should fire a security policy violation for the attribute",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Should execute the inline script block",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/object-src/object-src-url-blocked.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should block the object and fire a spv",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/prefetch-src/prefetch-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Browser supports prefetch.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Browser supports performance APIs.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Prefetch succeeds when allowed by prefetch-src",
          "status": "FAIL",
          "message": "win.addEventListener is not a function"
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/service-worker-src-default-fallback.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin service worker allowed by default-src 'self'.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/securitypolicyviolation/style-sample.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Inline style blocks should have a sample.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Inline style attributes should have a sample.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/sandbox/sandbox-empty.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS2\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/shared-worker-src-default-fallback.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin shared worker allowed by default-src 'self'.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/base-uri/base-uri-allow.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Check that base URIs can be set if they do not violate the page's policy.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-star-allow-sameorigin.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with '*' should allow rendering.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/connect-src-eventsource-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"allowed\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/inline-style-attribute-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\"]",
          "status": "FAIL",
          "message": "assert_unreached: FAIL Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/shared-worker-connect-src-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"xhr allowed\",\"TEST COMPLETE\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/connect-src-websocket-self.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"allowed\", \"allowed\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/scripthash-default-src.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": []
    },
    {
      "test": "/content-security-policy/prefetch-src/prefetch-header-blocked.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Browser supports prefetch.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Browser supports performance APIs.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Prefetch via `Link` header succeeds when allowed by prefetch-src",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/content-security-policy/navigation/to-javascript-parent-initiated-child-csp.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should have executed the javascript url",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/scripthash-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting alerts: [\"PASS (1/4)\",\"PASS (2/4)\",\"PASS (3/4)\",\"PASS (4/4)\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/href-location-redirected-allowed.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is allowed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/inside-worker/dedicated-script.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Filesystem and blob.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin `importScripts()` blocked in http:",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Cross-origin `importScripts()` blocked in blob:",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin `importScripts()` blocked in http:?pipe=sub|header(Content-Security-Policy,script-src%20*)",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Cross-origin `importScripts()` blocked in http:?pipe=sub|header(Content-Security-Policy,default-src%20*)",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "`eval()` blocked in blob:",
          "status": "PASS",
          "message": null
        },
        {
          "name": "`setTimeout([string])` blocked in blob:",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/filesystem-urls-match-filesystem.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS (1/1)\"]",
          "status": "NOTRUN",
          "message": "No filesystem:// support, cannot run test."
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/form-redirected-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is not allowed",
          "status": "FAIL",
          "message": "assert_equals: expected \"fail\" but got \"success\""
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-overrides-xfo.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive overrides an 'x-frame-options' header which would block the page.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "A 'frame-ancestors' CSP directive overrides an 'x-frame-options' header which would allow the page.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/unsafe-allow-redirects/allowed-end-of-chain-because-of-same-origin.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is allowed",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/script-src-1_1.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Inline script block",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Inline event handler",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire policy violation events",
          "status": "FAIL",
          "message": "assert_unreached: Unexpected directive broken Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/img-src/img-src-wildcard-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "img-src with wildcard should match all",
          "status": "PASS",
          "message": null
        },
        {
          "name": "img-src with wildcard should not match blob",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/form-action/form-action-src-allowed-target-blank.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "form submission targetting _blank allowed after a redirect",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-protocols.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "`https` is more restrictive than `http`.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "The reverse allows iframe be to be loaded.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Matching `https` protocols.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "`http:` should subsume all host source expressions with this protocol.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "`http:` should subsume all host source expressions with `https:`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "`http:` does not subsume other protocols.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "If scheme source is present in returned csp, it must be specified in required csp too.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "`http:` subsumes other `http:` source expression.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "`http:` subsumes other `https:` source expression and expressions with `http:`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "All scheme sources must be subsumed.",
          "status": "FAIL",
          "message": "assert_unreached: No message should be sent from the frame. Reached unreachable code"
        },
        {
          "name": "All scheme sources are subsumed by their stronger variants.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-blocked-uri.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting-api/reporting-api-report-only-sends-reports-on-violation.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that image does not load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Event is fired",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/connect-src-websocket-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"allowed\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/hash-always-converted-to-utf-8/iso-8859-7.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should convert the script contents to UTF-8 before hashing",
          "status": "FAIL",
          "message": "assert_unreached: Should not have fired a spv Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src-attr-elem/style-src-attr-allowed-src-blocked.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should apply the style attribute",
          "status": "FAIL",
          "message": "assert_true: expected true got false"
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-url-allow.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a URL matching this origin should allow rendering.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/connect-src-xmlhttprequest-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"Pass\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-injected-stylesheet-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Programatically injected stylesheet should not load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire a securitypolicyviolation event",
          "status": "FAIL",
          "message": "assert_equals: expected \"style-src\" but got \"style-src-elem\""
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/href-location-cross-origin-blocked.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is not allowed",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/object-src/object-src-url-redirect-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should block the object and fire a spv",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/script-src-wildcards-disallowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "data: URIs should not match *",
          "status": "PASS",
          "message": null
        },
        {
          "name": "blob: URIs should not match *",
          "status": "PASS",
          "message": null
        },
        {
          "name": "filesystem URIs should not match *",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-1.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that image does not load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Event is fired",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/subsumption_algorithm-self.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "'self' keywords should match.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Returned CSP does not have to specify 'self'.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Returned CSP must not allow 'self' if required CSP does not.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Returned 'self' should match to an origin's url.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Required 'self' should match to a origin's url.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Required 'self' should subsume a more secure version of origin's url.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Returned 'self' should not be subsumed by a more secure version of origin's url.",
          "status": "FAIL",
          "message": "assert_unreached: No message should be sent from the frame. Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/link-click-cross-origin-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is not allowed",
          "status": "FAIL",
          "message": "assert_equals: expected \"fail\" but got \"success\""
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-star-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "* should allow any style",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/inheritance/iframe-all-local-schemes-inherit-self.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "<iframe>'s about:blank inherits policy.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe srcdoc>'s inherits policy.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe src='blob:...'>'s inherits policy.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe src='data:...'>'s inherits policy.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe src='javascript:...'>'s inherits policy.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe sandbox src='blob:...'>'s inherits policy. (opaque origin sandbox)",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/child-src/child-src-cross-origin-load.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS IFrame #1 generated a load event.\",\"PASS IFrame #2 generated a load event.\",\"PASS IFrame #3 generated a load event.\", \"violated-directive=frame-src\"]",
          "status": "FAIL",
          "message": "assert_unreached: unexpected log: violated-directive=child-src Reached unreachable code"
        },
        {
          "name": "Expecting alerts: [\"PASS\",\"PASS\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/allow_csp_from-header.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same origin iframes are always allowed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin iframes are allowed even if the Allow-CSP-From is empty.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin iframes are allowed even if the Allow-CSP-From is not present.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin iframes are allowed even if Allow-CSP-From does not match origin.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross origin iframe with an empty Allow-CSP-From header gets blocked.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Cross origin iframe without Allow-CSP-From header gets blocked.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "iframe from cross origin does not load without Allow-CSP-From header.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Iframe with improper Allow-CSP-From header gets blocked.",
          "status": "FAIL",
          "message": "assert_unreached: No message should be sent from the frame. Reached unreachable code"
        },
        {
          "name": "Allow-CSP-From header with a star value can be returned.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Star Allow-CSP-From header enforces EmbeddingCSP.",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"inline\" but got (undefined) undefined"
        },
        {
          "name": "Allow-CSP-From header enforces EmbeddingCSP.",
          "status": "FAIL",
          "message": "assert_equals: expected (string) \"inline\" but got (undefined) undefined"
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-uri-multiple-reversed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/generic-0_1-img-src.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Verify cascading of default-src to img-src policy",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire violation events for every failed violation",
          "status": "FAIL",
          "message": "assert_equals: expected \"img-src\" but got \"default-src\""
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/href-location-cross-origin-allowed.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is allowed",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-src/frame-src-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS IFrame #1 generated a load event.\"]",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Expecting alerts: [\"PASS\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/securitypolicyviolation/inside-dedicated-worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "No SecurityPolicyViolation event fired for successful load.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolation event fired on global.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolation event fired on global with the correct blockedURI.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/duplicate-directive.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting alerts: [\"PASS (1/1)\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-url-allow.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a URL value should block or allow rendering in nested frames as appropriate.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-hashes/javascript_src_denied_wrong_hash-window_location.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test that the javascript: src is not allowed to run",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/stylehash-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting alerts: [\"PASS (1/4): The '#p1' element's text is green, which means the style was correctly applied.\",\"PASS (2/4): The '#p2' element's text is green, which means the style was correctly applied.\",\"PASS (3/4): The '#p3' element's text is green, which means the style was correctly applied.\",\"PASS (4/4): The '#p4' element's text is green, which means the style was correctly applied.\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/service-self.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin service worker allowed by 'self'.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/scriptnonce-ignore-unsafeinline.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting alerts: [\"PASS (1/2)\",\"PASS (2/2)\", \"violated-directive=script-src-elem\"]",
          "status": "FAIL",
          "message": "assert_unreached: unexpected alert: violated-directive=script-src Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/script-src-1_3.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should not fire policy violation events",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Inline script in a script tag should  run with an unsafe-inline directive",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/meta/meta-outside-head.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting alerts: [\"PASS (1/1)\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/link-click-redirected-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is allowed",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/child-src/child-src-about-blank-allowed-by-scheme.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Check that frames load without throwing any violation events",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/default-src/default-src-inline-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=script-src-elem\",\"violated-directive=script-src-elem\"]",
          "status": "FAIL",
          "message": "assert_unreached: unexpected log: violated-directive=default-src Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/prefetch-src/prefetch-blocked.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Browser supports prefetch.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Browser supports performance APIs.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Blocked prefetch generates report.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-inline-style-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Inline style should apply with 'unsafe-inline'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/eval-allowed-in-report-only-mode-and-sends-report.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Eval is allowed because the CSP is report-only",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-hosts.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Host must match.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Hosts without wildcards must match.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "More specific subdomain should not match.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Specified host should not match a wildcard host.",
          "status": "FAIL",
          "message": "assert_unreached: No message should be sent from the frame. Reached unreachable code"
        },
        {
          "name": "A wildcard host should match a more specific host.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/multiple-report-policies.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "1-Violation report status OK",
          "status": "PASS",
          "message": null
        },
        {
          "name": "2-Violation report status OK",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/meta-refresh-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is not allowed",
          "status": "FAIL",
          "message": "assert_equals: expected \"fail\" but got \"success\""
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-none-block.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "status": "TIMEOUT",
          "xstatus": "SERVERTIMEOUT"
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/anchor-navigation-always-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that anchor navigation is allowed regardless of the `navigate-to` directive",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/shared-fallback.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin dedicated worker allowed by 'self'.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "blob: dedicated worker allowed by 'blob:'.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-hashes/style_attribute_allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the inline style attribute is loaded",
          "status": "FAIL",
          "message": "assert_equals: expected \"green none repeat scroll 0% 0%\" but got \"green\""
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-and-enforce.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "The image should be blocked",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The stylesheet should load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/hash-always-converted-to-utf-8/iso-8859-3.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should convert the script contents to UTF-8 before hashing",
          "status": "FAIL",
          "message": "assert_unreached: Should not have fired a spv Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/media-src/media-src-7_1_2.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Disallowed async video src",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Disallowed async video source element",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test that securitypolicyviolation events are fired",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/securitypolicyviolation/inside-shared-worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "No SecurityPolicyViolation event fired for successful load.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolation event fired on global.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolation event fired on global with the correct blockedURI.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-url-block.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "status": "TIMEOUT",
          "xstatus": "SERVERTIMEOUT"
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/connect-src-eventsource-redirect-to-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS EventSource() did not follow the disallowed redirect.\",\"TEST COMPLETE\", \"violated-directive=connect-src\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src-attr-elem/script-src-attr-blocked-src-allowed.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should fire a security policy violation event",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/inline-style-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/service-list.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin service worker allowed by host-source expression.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/connect-src-beacon-redirect-to-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=connect-src\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/script-src-strict_dynamic_discard_whitelist.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Whitelisted script without a correct nonce is not allowed with `strict-dynamic`.",
          "status": "FAIL",
          "message": "assert_equals: expected \"script-src-elem\" but got \"script-src\""
        }
      ]
    },
    {
      "test": "/content-security-policy/inside-worker/dedicated-inheritance.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Filesystem and blob.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin 'fetch()' in http:",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin XHR in http:",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin 'fetch()' in http:",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Cross-origin XHR in http:",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-origin 'fetch()' in blob:",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin => cross-origin 'fetch()' in http:",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-origin XHR in blob:",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin 'fetch()' in http:?pipe=sub|header(Content-Security-Policy,connect-src%20*)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin XHR in http:?pipe=sub|header(Content-Security-Policy,connect-src%20*)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin 'fetch()' in blob:",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin 'fetch()' in http:?pipe=sub|header(Content-Security-Policy,default-src%20*)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin XHR in blob:",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin 'fetch()' in http:?pipe=sub|header(Content-Security-Policy,connect-src%20*)",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-origin XHR in http:?pipe=sub|header(Content-Security-Policy,default-src%20*)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin XHR in http:?pipe=sub|header(Content-Security-Policy,connect-src%20*)",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-origin => cross-origin 'fetch()' in blob:",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin 'fetch()' in http:?pipe=sub|header(Content-Security-Policy,default-src%20*)",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-origin => cross-origin 'fetch()' in http:?pipe=sub|header(Content-Security-Policy,connect-src%20*)",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Cross-origin XHR in http:?pipe=sub|header(Content-Security-Policy,default-src%20*)",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-origin => cross-origin 'fetch()' in http:?pipe=sub|header(Content-Security-Policy,default-src%20*)",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-origin 'fetch()' in http:?pipe=sub|header(Content-Security-Policy,connect-src%20%27none%27)",
          "status": "FAIL",
          "message": "assert_unreached: SecurityPolicyViolation event fired for http://webapitests2018.ctawave.org:8000/common/text-plain.txt?same-origin-fetch Reached unreachable code"
        },
        {
          "name": "Same-origin XHR in http:?pipe=sub|header(Content-Security-Policy,connect-src%20%27none%27)",
          "status": "FAIL",
          "message": "assert_unreached: SecurityPolicyViolation event fired for http://webapitests2018.ctawave.org:8000/common/text-plain.txt?same-origin-xhr Reached unreachable code"
        },
        {
          "name": "Cross-origin 'fetch()' in http:?pipe=sub|header(Content-Security-Policy,connect-src%20%27none%27)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin XHR in http:?pipe=sub|header(Content-Security-Policy,connect-src%20%27none%27)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin => cross-origin 'fetch()' in http:?pipe=sub|header(Content-Security-Policy,connect-src%20%27none%27)",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/generic-0_2_2.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Prevents access to external scripts.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire violation events for every failed violation",
          "status": "FAIL",
          "message": "assert_equals: expected \"script-src-elem\" but got \"script-src\""
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/hash-always-converted-to-utf-8/iso-8859-1.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should convert the script contents to UTF-8 before hashing",
          "status": "FAIL",
          "message": "assert_unreached: Should not have fired a spv Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/form-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is not allowed",
          "status": "FAIL",
          "message": "assert_equals: expected \"fail\" but got \"success\""
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-hash-blocked.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should load the style with a correct hash",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should not load style that does not match hash",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire a securitypolicyviolation event",
          "status": "FAIL",
          "message": "assert_equals: expected \"style-src\" but got \"style-src-elem\""
        }
      ]
    },
    {
      "test": "/content-security-policy/child-src/child-src-redirect-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS IFrame #1 generated a load event.\", \"violated-directive=frame-src\"]",
          "status": "FAIL",
          "message": "assert_unreached: unexpected log: violated-directive=child-src Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/subsumption_algorithm-general.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "If there is no required csp, iframe should load.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Iframe with empty returned CSP should be blocked.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Iframe with matching CSP should load.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Iframe with more restricting CSP should load.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Iframe with less restricting CSP should be blocked.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Iframe with a different CSP should be blocked.",
          "status": "FAIL",
          "message": "assert_unreached: No message should be sent from the frame. Reached unreachable code"
        },
        {
          "name": "Iframe with a matching and more restrictive ports should load.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Iframe should load even if the ports are different but are default for the protocols.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/no-default-src.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Allows scripts from the same host.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-same-origin-with-cookies.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Image should not load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test report cookies.",
          "status": "FAIL",
          "message": "assert_true: Report should contain cookie: cspViolationReportCookie2 expected true got false"
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-self-allow.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a value 'same' should block render in same-origin nested frames.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/scripthash-unicode-normalization.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should fire securitypolicyviolation",
          "status": "FAIL",
          "message": "assert_equals: expected \"script-src-elem\" but got \"script-src\""
        },
        {
          "name": "Only matching content runs even with NFC normalization.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/scriptnonce-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting alerts: [\"PASS (1/2)\",\"PASS (2/2)\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/child-src/child-src-conflicting-frame-src.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS IFrame #1 generated a load event.\", \"violated-directive=frame-src\"]",
          "status": "FAIL",
          "message": "assert_unreached: FAIL Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/form-action/form-action-allows-navigate-to-allows.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that form-action overrides navigate-to when present.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=style-src\",\"PASS\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Non-redirected cross-origin URLs are not stripped.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/font-src/font-mismatch-blocked.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test font does not load if it does not match font-src.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/subsumption_algorithm-nonces.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Exact nonce subsumes.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Any nonce subsumes.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "A nonce has to be returned if required by the embedder.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Multiples nonces returned subsume.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Nonce intersection is still done on exact match - non-matching nonces.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Nonce intersection is still done on exact match - matching nonces.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Other expressions still have to be subsumed - positive test.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Other expressions still have to be subsumed - negative test",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/connect-src-beacon-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"Pass\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/media-src/media-src-7_3_2.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Disallowed track element onerror handler fires.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test that securitypolicyviolation events are fired",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/img-src/img-src-self-unique-origin.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Image's url must not match with 'self'. Image must be blocked.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/worker-connect-src-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"xhr allowed\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/form-action/form-action-src-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=form-action\",\"TEST COMPLETE\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-imported-style-blocked.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "@import stylesheet should not load because it does not match style-src",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire a securitypolicyviolation event",
          "status": "FAIL",
          "message": "assert_equals: expected \"style-src\" but got \"style-src-elem\""
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/form-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is allowed",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image-from-script.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Non-redirected cross-origin URLs are not stripped.",
          "status": "FAIL",
          "message": "assert_equals: expected \"http://www.webapitests2018.ctawave.org:8000/content-security-policy/support/fail.png\" but got \"http://webapitests2018.ctawave.org:8000/favicon.ico\""
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/subsumption_algorithm-none.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Empty required csp subsumes empty list of returned policies.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Empty required csp subsumes any list of policies.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Empty required csp subsumes a policy with `none`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Required policy that allows `none` does not subsume empty list of policies.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Required csp with effective `none` does not subsume a host source expression.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Required csp with `none` does not subsume a host source expression.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Required csp with effective `none` does not subsume `none` of another directive.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Required csp with `none` does not subsume `none` of another directive.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Required csp with `none` does not subsume `none` of different directives.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Required csp with `none` subsumes effective list of `none`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Required csp with `none` subsumes effective list of `none` despite other keywords.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Source list with exprssions other than `none` make `none` ineffective.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Returned csp with `none` is subsumed by any required csp.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Returned csp with effective `none` is subsumed by any required csp.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Both required and returned csp are `none`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Both required and returned csp are `none` for only one directive.",
          "status": "FAIL",
          "message": "assert_unreached: No message should be sent from the frame. Reached unreachable code"
        },
        {
          "name": "Both required and returned csp are empty.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Both required and returned csp are effectively 'none'.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/worker-from-guid.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=connect-src\",\"xhr blocked\",\"TEST COMPLETE\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-only-in-meta.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Image should load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/subsumption_algorithm-strict_dynamic.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "'strict-dynamic' is ineffective for `style-src`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'strict-dynamic' is ineffective for `img-src`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'strict-dynamic' is ineffective for `frame-src`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'strict-dynamic' is ineffective for `child-src`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'strict-dynamic' is effective only for `script-src`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'strict-dynamic' is proper handled for finding effective policy.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'strict-dynamic' makes host source expressions ineffective.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'strict-dynamic' makes scheme source expressions ineffective.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'strict-dynamic' makes 'self' ineffective.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'strict-dynamic' makes 'unsafe-inline' ineffective.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "'strict-dynamic' has to be allowed by required csp if it is present in returned csp.",
          "status": "FAIL",
          "message": "assert_unreached: No message should be sent from the frame. Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/dedicated-worker-src-default-fallback.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin dedicated worker allowed by default-src 'self'.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/object-src/object-src-url-redirect-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/shared-child.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin dedicated worker allowed by 'self'.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "blob: dedicated worker allowed by 'blob:'.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_hashes.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "'unsafe-hashes' is properly subsumed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "No other keyword has the same effect as 'unsafe-hashes'.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Other expressions have to be subsumed.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Effective policy is properly found.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Required csp must allow 'unsafe-hashes'.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Effective policy is properly found where 'unsafe-hashes' is not subsumed.",
          "status": "FAIL",
          "message": "assert_unreached: No message should be sent from the frame. Reached unreachable code"
        },
        {
          "name": "Effective policy is properly found where 'unsafe-hashes' is not part of it.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-ports.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Specified ports must match.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Returned CSP should be subsumed even if the port is not specified but is a default port for a scheme.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Returned CSP should be subsumed even if the port is not specified but is a default port for a more secure scheme.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "The same should hold for `ws` case.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Unspecified ports must match if schemes match.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Returned CSP should be subsumed if the port is specified.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Returned CSP should be subsumed if the port is specified but the scheme is more secure.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Returned CSP should be subsumed if the port is specified but is not default for a more secure scheme.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Returned CSP should be subsumed if the ports match but schemes are not identical.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Returned CSP should be subsumed if the ports match but schemes are not identical for `ws`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Wildcard port should match unspecified port.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Wildcard port should match any specific port.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Wildcard port should match a wildcard.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Wildcard port should not be subsumed by a default port.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Wildcard port should not be subsumed by a spcified port.",
          "status": "FAIL",
          "message": "assert_unreached: No message should be sent from the frame. Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/scripthash-basic-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting alerts: [\"PASS (1/1)\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that image does not load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Event is fired",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/generic-0_8_1.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should fire violation events for every failed violation",
          "status": "FAIL",
          "message": "assert_equals: expected \"script-src-elem\" but got \"script-src\""
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-uri-scheme-relative.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that image does not load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Event is fired",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/svg/svg-policy-with-resource.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"TEST COMPLETE\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/inline-style-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/img-src/icon-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that image loads",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-hash-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "All style elements should load because they have proper hashes",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-2.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that image does not load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Event is fired",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/form-action/form-action-allows-navigate-to-blocks.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that form-action overrides navigate-to when present.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/child-src/child-src-about-blank-allowed-by-default.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Check that frames load without throwing any violation events",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/securitypolicyviolation/img-src-redirect-upgrade-reporting.https.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Image that redirects to http:// URL prohibited by Report-Only must generate a violation report, even with upgrade-insecure-requests",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/meta-refresh-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is allowed",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/inside-worker/shared-script.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Cross-origin `importScripts()` blocked in http:?pipe=sub|header(Content-Security-Policy,script-src%20%27self%27",
          "status": "PASS",
          "message": null
        },
        {
          "name": "`eval()` blocked in http:?pipe=sub|header(Content-Security-Policy,script-src%20%27self%27",
          "status": "PASS",
          "message": null
        },
        {
          "name": "`setTimeout([string])` blocked in http:?pipe=sub|header(Content-Security-Policy,script-src%20%27self%27",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin `importScripts()` blocked in http:?pipe=sub|header(Content-Security-Policy,default-src%20%27self%27",
          "status": "PASS",
          "message": null
        },
        {
          "name": "`eval()` blocked in http:?pipe=sub|header(Content-Security-Policy,default-src%20%27self%27",
          "status": "PASS",
          "message": null
        },
        {
          "name": "`setTimeout([string])` blocked in http:?pipe=sub|header(Content-Security-Policy,default-src%20%27self%27",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-eval/function-constructor-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/shared-self.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin dedicated worker allowed by 'self'.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/meta-refresh-cross-origin-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is allowed",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/img-src/img-src-4_1.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "img-src for relative path should load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "img-src from unapproved domains should not load",
          "status": "PASS",
          "message": null
        },
        {
          "name": "img-src from approved domains should load",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/connect-src-beacon-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"Pass\", \"violated-directive=connect-src\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "content-security-policy/navigate-to/form-action/form-action-blocks-navigate-to-blocks.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "status": "TIMEOUT",
          "xstatus": "SERVERTIMEOUT"
        }
      ]
    },
    {
      "test": "/content-security-policy/object-src/object-src-no-url-blocked.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should block the object and fire a spv",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src-attr-elem/style-src-elem-allowed-src-blocked.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Inline style should be applied",
          "status": "FAIL",
          "message": "assert_equals: expected 1 but got 0"
        }
      ]
    },
    {
      "test": "/content-security-policy/font-src/font-none-blocked.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test font does not load if it does not match font-src.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/script-src-1_4_2.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that securitypolicyviolation event is fired",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Unsafe eval ran in Function() constructor.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/child-src/child-src-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS IFrame #1 generated a load event.\", \"violated-directive=frame-src\"]",
          "status": "FAIL",
          "message": "assert_unreached: unexpected log: violated-directive=child-src Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/inline-style-attribute-on-html.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/href-location-redirected-blocked.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is not allowed",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/inheritance/iframe-all-local-schemes.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "<iframe>'s about:blank inherits policy.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe srcdoc>'s inherits policy.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe src='blob:...'>'s inherits policy.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe src='data:...'>'s inherits policy.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe src='javascript:...'>'s inherits policy.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe sandbox src='blob:...'>'s inherits policy. (opaque origin sandbox)",
          "status": "FAIL",
          "message": "assert_equals: expected \"error\" but got \"load\""
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-self-block.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a value 'same' should block render in same-origin nested frames.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/connect-src-eventsource-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"blocked\",\"violated-directive=connect-src\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/form-action/form-action-self-allowed-target-blank.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "The form submission should not be blocked by the iframe's CSP.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/default-src/default-src-inline-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting alerts: [\"PASS 1 of 2\",\"PASS 2 of 2\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "iframe still inherits correct CSP",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/worker-script-src.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/meta-refresh-redirected-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is not allowed",
          "status": "FAIL",
          "message": "assert_equals: expected \"fail\" but got \"success\""
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-eval/eval-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting alerts: [\"PASS (1 of 2)\",\"PASS (2 of 2)\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/media-src/media-src-blocked.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Disallowed async video src",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Disallowed async video source element",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Disallaowed audio src",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Disallowed audio source element",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test that securitypolicyviolation events are fired",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/content-security-policy/meta/meta-modified.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\", \"PASS\",\"TEST COMPLETE\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-multiple-violations-01.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test number of sent reports.",
          "status": "FAIL",
          "message": "assert_equals: Report count was not what was expected. expected \"2\" but got \"3\""
        }
      ]
    },
    {
      "test": "/content-security-policy/font-src/font-stylesheet-font-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test font does not load if it does not match font-src.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/required-csp-header-cascade.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test same origin: Test same policy for both iframes",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test same origin: Test more restrictive policy on second iframe",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test same origin: Test less restrictive policy on second iframe",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test same origin: Test no policy on second iframe",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test same origin: Test no policy on first iframe",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test same origin: Test invalid policy on first iframe (bad directive)",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test same origin: Test invalid policy on first iframe (report directive)",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test same origin: Test invalid policy on second iframe (bad directive)",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        },
        {
          "name": "Test same origin: Test invalid policy on second iframe (report directive)",
          "status": "FAIL",
          "message": "assert_unreached: Child iframes have unexpected csp:\"null\" Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/generic-0_1-script-src.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Verify cascading of default-src to script-src policy: block",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Verify cascading of default-src to script-src policy: allow",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire violation events for every failed violation",
          "status": "FAIL",
          "message": "assert_equals: expected \"script-src-elem\" but got \"default-src\""
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/iframe-csp-attribute.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "<iframe> has a 'csp' attibute which is an empty string if undefined.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (string) \"\""
        },
        {
          "name": "<iframe>'s csp attribute is always a string.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (string) \"123456\""
        },
        {
          "name": "<iframe>'s 'csp content attribute reflects the IDL attribute.",
          "status": "FAIL",
          "message": "assert_equals: expected (object) null but got (string) \"value\""
        },
        {
          "name": "<iframe>'s IDL attribute reflects the DOM attribute.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (string) \"value\""
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-none-block.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a value 'none' should block rendering in nested frames.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-stylesheet-nonce-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Stylesheet link should load with correct nonce",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/policy-does-not-affect-child.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/img-src/img-src-full-host-wildcard-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "img src does not match full host and wildcard csp directive",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/injected-inline-script-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=script-src-elem\",]",
          "status": "FAIL",
          "message": "assert_unreached: unexpected log: violated-directive=script-src Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-src/frame-src-about-blank-allowed-by-default.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-inline-style-attribute-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Inline style attribute should apply with 'unsafe-inline'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-multiple-violations-02.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test number of sent reports.",
          "status": "FAIL",
          "message": "assert_equals: Report count was not what was expected. expected \"1\" but got \"5\""
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-inline-style-attribute-blocked.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Inline style attribute should not be applied without 'unsafe-inline'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire a securitypolicyviolation event",
          "status": "FAIL",
          "message": "assert_equals: expected \"style-src\" but got \"style-src-attr\""
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/form-cross-origin-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is allowed",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/scriptnonce-and-scripthash.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting alerts: [\"PASS (1/3)\",\"PASS (2/3)\",\"PASS (3/3)\"]",
          "status": "FAIL",
          "message": "assert_unreached: unexpected alert: violated-directive=script-src Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/injected-inline-style-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS: 2 stylesheets on the page.\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting-api/reporting-api-works-on-frame-src.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Event is fired",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/form-action/form-action-src-redirect-allowed-target-blank.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "form submission targetting _blank allowed after a redirect",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/blob/blob-urls-match-blob.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS (1/1)\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-uri-from-javascript.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/object-src/object-src-no-url-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-uri-effective-directive.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_true: violated-directive value of  \"default-src\" did not match script-src. expected true got false"
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_eval.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "'unsafe-eval' is properly subsumed.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "No other keyword has the same effect as 'unsafe-eval'.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Other expressions have to be subsumed.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Effective policy is properly found.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Required csp must allow 'unsafe-eval'.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Effective policy is properly found where 'unsafe-eval' is not subsumed.",
          "status": "FAIL",
          "message": "assert_unreached: No message should be sent from the frame. Reached unreachable code"
        },
        {
          "name": "Effective policy is properly found where 'unsafe-eval' is not part of it.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/form-action/form-action-src-get-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"violated-directive=form-action\",\"TEST COMPLETE\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/script-src-1_4_1.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "window.setTimeout()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "window.setInterval()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test that securitypolicyviolation event is fired",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-hashes/javascript_src_allowed-window_location.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Test that the javascript: src is allowed to run",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-src/frame-src-self-unique-origin.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Iframe's url must not match with 'self'. It must be blocked.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/shared-list.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin dedicated worker allowed by 'self'.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "blob: dedicated worker allowed by 'blob:'.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/base-uri/base-uri_iframe_sandbox.sub.html",
      "status": "ERROR",
      "message": "uncaught exception: Error: assert_unreached: No CSP violation report should have been fired. Reached unreachable code",
      "subtests": [
        {
          "name": "base-uri 'self' works with same-origin sandboxed iframes.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "base-uri 'self' blocks foreign-origin sandboxed iframes.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/worker-src/dedicated-child.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin dedicated worker allowed by host-source expression.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "blob: dedicated worker allowed by 'blob:'.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-src/frame-src-cross-origin-load.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS IFrame #1 generated a load event.\",\"PASS IFrame #2 generated a load event.\",\"PASS IFrame #3 generated a load event.\",\"violated-directive=frame-src\"]",
          "status": "FAIL",
          "message": "assert_unreached: FAIL Reached unreachable code"
        },
        {
          "name": "Expecting alerts: [\"PASS\",\"PASS\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/link-click-allowed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the child iframe navigation is allowed",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/embedded-enforcement/subsumption_algorithm-host_sources-paths.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Returned CSP must specify a path.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "Returned CSP has a more specific path.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Matching paths.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Empty path is not subsumed by specified paths.",
          "status": "FAIL",
          "message": "assert_equals: expected (undefined) undefined but got (boolean) true"
        },
        {
          "name": "All specific paths match except the order.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Returned CSP allows only one path.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "`/` path should be subsumed by an empty path.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Unspecified path should be subsumed by `/`.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "That should not be true when required csp specifies a specific page.",
          "status": "FAIL",
          "message": "assert_unreached: No message should be sent from the frame. Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-self-allow.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a value 'self' should allow rendering.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/connect-src/connect-src-xmlhttprequest-redirect-to-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS XMLHttpRequest.send() did not follow the disallowed redirect.\",\"TEST COMPLETE\",\"violated-directive=connect-src\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/navigate-to/parent-navigates-child-blocked.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the parent can't navigate the child because the relevant policy belongs to the navigation initiator (in this case the parent, which has the policy `navigate-to support/wait_for_navigation.html;`)",
          "status": "FAIL",
          "message": "assert_unreached: Should not have received a message as the navigation should not have been successful Reached unreachable code"
        },
        {
          "name": "Violation report status OK.",
          "status": "FAIL",
          "message": "assert_equals: No such report. expected \"\" but got \"false\""
        }
      ]
    },
    {
      "test": "/content-security-policy/plugin-types/plugintypes-empty.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should not load the object because plugin-types allows no plugins",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/img-src/img-src-port-wildcard-allowed.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "img-src with wildcard port should match any port",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/stylenonce-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should fire securitypolicyviolation",
          "status": "FAIL",
          "message": "assert_equals: expected \"style-src-elem\" but got \"style-src\""
        },
        {
          "name": "stylenonce-blocked",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/generic/304-response-should-update-csp.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that the first frame uses nonce abc",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test that the first frame does not use nonce def",
          "status": "FAIL",
          "message": "assert_unreached: Unexpected message received Reached unreachable code"
        },
        {
          "name": "Test that the second frame uses nonce def",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test that the second frame does not use nonce abc",
          "status": "FAIL",
          "message": "assert_unreached: Unexpected message received Reached unreachable code"
        }
      ]
    },
    {
      "test": "/content-security-policy/style-src/style-src-inline-style-nonce-blocked.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should not load inline style element with invalid nonce",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fire a securitypolicyviolation event",
          "status": "FAIL",
          "message": "assert_equals: expected \"style-src\" but got \"style-src-elem\""
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/script-src-strict_dynamic_in_img-src.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "`strict-dynamic` does not drop whitelists in `img-src`.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/securitypolicyviolation/inside-service-worker.https.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "No SecurityPolicyViolation event fired for successful load.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolation event fired on global.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SecurityPolicyViolation event fired on global with the correct blockedURI.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-cross-url-allow.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a URL value should block or allow rendering in nested frames as appropriate.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/hash-always-converted-to-utf-8/utf-8.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should convert the script contents to UTF-8 before hashing - latin micro sign",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should convert the script contents to UTF-8 before hashing - greek small letter mu",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should convert the script contents to UTF-8 before hashing - latin capital letter g with breve",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/sandbox/sandbox-allow-scripts-subframe.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"Message\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/svg/object-in-svg-foreignobject.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Should throw a securitypolicyviolation",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/content-security-policy/unsafe-eval/eval-scripts-setTimeout-blocked.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Expecting logs: [\"PASS\",\"violated-directive=script-src\"]",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/script-src/script-src-1_4.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test that securitypolicyviolation event is fired",
          "status": "PASS",
          "message": null
        },
        {
          "name": "eval() should throw without 'unsafe-eval' keyword source in script-src directive.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "eval() should not run without 'unsafe-eval' script-src directive.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/reporting/report-original-url.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Direct block, same-origin = full URL in report",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Direct block, cross-origin = full URL in report",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Block after redirect, same-origin = original URL in report",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Block after redirect, cross-origin = original URL in report",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Violation report status OK.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/content-security-policy/inheritance/window.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "window.open() inherits policy.",
          "status": "FAIL",
          "message": "w.document is undefined"
        },
        {
          "name": "`document.write` into `window.open()` inherits policy.",
          "status": "FAIL",
          "message": "w.document is undefined"
        },
        {
          "name": "window.open('blob:...') inherits policy.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "window.open('javascript:...') inherits policy.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-cross-none-block.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "A 'frame-ancestors' CSP directive with a value 'none' should block rendering in nested frames.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    }
  ]
}