{
  "results": [
    {
      "test": "/fetch/api/cors/cors-preflight-star.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "CORS that succeeds with credentials: false; method: GET (allowed: get); header: X-Test,1 (allowed: x-test)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS that succeeds with credentials: false; method: SUPER (allowed: *); header: X-Test,1 (allowed: x-test)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS that succeeds with credentials: false; method: OK (allowed: *); header: X-Test,1 (allowed: *)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS that fails with credentials: true; method: OK (allowed: *); header: X-Test,1 (allowed: *)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS that fails with credentials: true; method: PUT (allowed: *); header:  (allowed: )",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS that succeeds with credentials: true; method: PUT (allowed: PUT); header:  (allowed: *)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS that fails with credentials: true; method: GET (allowed: get); header: X-Test,1 (allowed: *)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS that fails with credentials: true; method: GET (allowed: *); header: X-Test,1 (allowed: *)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS that succeeds with credentials: true; method: * (allowed: *); header: *,1 (allowed: *)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS that fails with credentials: true; method: PUT (allowed: put); header:  (allowed: *)",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-cache-no-cache.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "RequestCache \"no-cache\" mode revalidates stale responses found in the cache with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"no-cache\" mode revalidates stale responses found in the cache with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"no-cache\" mode revalidates fresh responses found in the cache with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"no-cache\" mode revalidates fresh responses found in the cache with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/xslt.tentative.https.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": []
    },
    {
      "test": "/fetch/corb/script-js-mislabeled-as-html.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "script-js-mislabeled-as-html",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/policies/referrer-unsafe-url.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Request's referrer is the full url of current document/worker",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/data-urls/base64.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Setup.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcd\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \" abcd\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcd \"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \" abcd===\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcd=== \"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcd ===\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"a\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"ab\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abc\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcde\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"𐀀\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"=\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"==\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"===\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"====\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"=====\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"a=\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"a==\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"a===\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"a====\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"a=====\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"ab=\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"ab==\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"ab===\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"ab====\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"ab=====\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abc=\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abc==\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abc===\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abc====\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abc=====\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcd=\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcd==\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcd===\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcd====\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcd=====\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcde=\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcde==\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcde===\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcde====\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcde=====\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"=a\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"=a=\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"a=b\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"a=b=\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"ab=c\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"ab=c=\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abc=d\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abc=d=\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"ab\\vcd\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"ab\\tcd\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"ab\\ncd\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"ab\\fcd\"",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "data: URL base64 handling: \"ab\\rcd\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"ab cd\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"ab cd\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"ab\\t\\n\\f\\r cd\"",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "data: URL base64 handling: \" \\t\\n\\f\\r ab\\t\\n\\f\\r cd\\t\\n\\f\\r \"",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "data: URL base64 handling: \"ab\\t\\n\\f\\r =\\t\\n\\f\\r =\\t\\n\\f\\r \"",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "data: URL base64 handling: \"A\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"/A\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"//A\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"///A\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"////A\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"/\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"A/\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"AA/\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"AAAA/\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"AAA/\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"\\0nonsense\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"abcd\\0nonsense\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"YQ\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"YR\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"~~\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"..\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"--\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "data: URL base64 handling: \"__\"",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/content-length/content-length.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Content-Length Test",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/script.tentative.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin script",
          "status": "FAIL",
          "message": "assert_not_equals: Empty Sec-Metadata header. got disallowed value \"\""
        },
        {
          "name": "Same-site script",
          "status": "FAIL",
          "message": "Cannot read property 'split' of null"
        },
        {
          "name": "Cross-site script",
          "status": "FAIL",
          "message": "Cannot read property 'split' of null"
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-cookies-redirect.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Set cookies",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Testing credentials after cross-origin redirection with CORS and no preflight",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Testing credentials after cross-origin redirection with CORS and preflight",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Clean cookies",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-init-003.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Check request values when initialized from Request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check request values when initialized from Request and init values",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check request values when initialized from url string",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check request values when initialized from url and init values",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/mode-no-cors.sub.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetch ../resources/top.txt with no-cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch http://webapitests2018.ctawave.org:8000/fetch/api/resources/top.txt with no-cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch https://webapitests2018.ctawave.org:8443/fetch/api/resources/top.txt with no-cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch http://webapitests2018.ctawave.org:57618/fetch/api/resources/top.txt with no-cors mode",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Same-Origin -> Same-Origin redirect",
          "status": "FAIL",
          "message": "assert_not_equals: Empty Sec-Metadata header. got disallowed value \"\""
        },
        {
          "name": "Same-Origin -> Same-Site redirect",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-Origin -> Cross-Site redirect",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/corb/style-css-with-json-parser-breaker.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "style-css-with-json-parser-breaker",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/block-mime-as-script.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Should fail loading non-empty script with text/csv MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading non-empty script with audio/aiff MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading non-empty script with audio/midi MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading non-empty script with audio/whatever MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading non-empty script with video/avi MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading non-empty script with video/fli MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading non-empty script with video/whatever MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading non-empty script with image/jpeg MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading non-empty script with image/gif MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading non-empty script with image/whatever MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading empty script with text/csv MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading empty script with audio/aiff MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading empty script with audio/midi MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading empty script with audio/whatever MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading empty script with video/avi MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading empty script with video/fli MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading empty script with video/whatever MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading empty script with image/jpeg MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading empty script with image/gif MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should fail loading empty script with image/whatever MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should load script with text/html MIME type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Should load script with text/plain MIME type",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-preflight-cache.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "cors-preflight-cache",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/redirect/multiple-redirect-cross-site.tentative.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-Origin -> Cross-Site -> Same-Origin redirect",
          "status": "FAIL",
          "message": "assert_equals: destination expected (string) \"image\" but got (undefined) undefined"
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-bad-port.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Request on bad port 1 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 7 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 9 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 11 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 13 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 15 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 17 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 19 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 20 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 21 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 22 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 23 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 25 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 37 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 42 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 43 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 53 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 77 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 79 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 87 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 95 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 101 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 102 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 103 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 104 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 109 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 110 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 111 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 113 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 115 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 117 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 119 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 123 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 135 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 139 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 143 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 179 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 389 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 427 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 465 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 512 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 513 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 514 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 515 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 526 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 530 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 531 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 532 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 540 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 548 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 556 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 563 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 587 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 601 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 636 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 993 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 995 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 2049 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 3659 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 4045 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 6000 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 6665 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 6666 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 6667 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 6668 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 6669 should throw TypeError.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request on bad port 6697 should throw TypeError.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/abort/serviceworker-intercepted.https.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Already aborted request does not land in service worker",
          "status": "PASS",
          "message": null
        },
        {
          "name": "response.arrayBuffer() rejects if already aborted",
          "status": "PASS",
          "message": null
        },
        {
          "name": "response.blob() rejects if already aborted",
          "status": "PASS",
          "message": null
        },
        {
          "name": "response.formData() rejects if already aborted",
          "status": "PASS",
          "message": null
        },
        {
          "name": "response.json() rejects if already aborted",
          "status": "PASS",
          "message": null
        },
        {
          "name": "response.text() rejects if already aborted",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Stream errors once aborted.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/redirect/redirect-back-to-original-origin.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "original => remote => original with mode: \"no-cors\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "original => remote => original with mode: \"cors\"",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/request-upload.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetch with PUT with body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with text body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with URLSearchParams body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with Blob body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with ArrayBuffer body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with Uint8Array body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with Int8Array body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with Float32Array body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with Float64Array body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with DataView body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with Blob body with mime type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with ReadableStream",
          "status": "FAIL",
          "message": "assert_equals: expected \"Test\" but got \"\""
        },
        {
          "name": "Fetch with POST with ReadableStream containing String",
          "status": "FAIL",
          "message": "Cannot read property 'then' of undefined"
        },
        {
          "name": "Fetch with POST with ReadableStream containing null",
          "status": "FAIL",
          "message": "Cannot read property 'then' of undefined"
        },
        {
          "name": "Fetch with POST with ReadableStream containing number",
          "status": "FAIL",
          "message": "Cannot read property 'then' of undefined"
        },
        {
          "name": "Fetch with POST with ReadableStream containing ArrayBuffer",
          "status": "FAIL",
          "message": "Cannot read property 'then' of undefined"
        },
        {
          "name": "Fetch with POST with ReadableStream containing Blob",
          "status": "FAIL",
          "message": "Cannot read property 'then' of undefined"
        }
      ]
    },
    {
      "test": "/fetch/corb/script-js-mislabeled-as-html-nosniff.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "script-js-mislabeled-as-html-nosniff",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/nosniff/worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "URL query: ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: ?type=",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: ?type=x",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: ?type=x/x",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: ?type=text/html",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: ?type=text/json",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: ?type=text/javascript",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: ?type=text/ecmascript",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: ?type=text/ecmascript;yay",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/corb/style-html-correctly-labeled.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "style-html-correctly-labeled",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/cross-origin-resource-policy/fetch.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin fetch with a 'Cross-Origin-Resource-Policy: same-origin' response header.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin fetch with a 'Cross-Origin-Resource-Policy: same-site' response header.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' response header.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "Cross-origin cors fetch with a 'Cross-Origin-Resource-Policy: same-site' response header.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' response header.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-site' response header.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin no-cors fetch to a same-site URL with a 'Cross-Origin-Resource-Policy: same-site' response header.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin no-cors fetch to a same-site URL with a 'Cross-Origin-Resource-Policy: same-origin' response header.",
          "status": "FAIL",
          "message": "assert_unreached: Should have rejected: undefined Reached unreachable code"
        },
        {
          "name": "Valid cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-site' response header.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' response header after a redirection.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' response header after a cross-origin redirection.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross-origin no-cors fetch with a 'Cross-Origin-Resource-Policy: same-origin' redirect response header.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/request-headers.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetch with GET",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with HEAD",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with PUT without body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with PUT with body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST without body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with text body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with FormData body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with URLSearchParams body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with Blob body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with ArrayBuffer body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with Uint8Array body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with Int8Array body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with Float32Array body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with Float64Array body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with DataView body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST with Blob body with mime type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with Chicken",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with Chicken with body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with GET and mode \"cors\" does not need an Origin header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST and mode \"same-origin\" needs an Origin header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with POST and mode \"no-cors\" needs an Origin header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with PUT and mode \"same-origin\" needs an Origin header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with TacO and mode \"same-origin\" needs an Origin header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with TacO and mode \"cors\" needs an Origin header",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/font.tentative.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-Origin font",
          "status": "FAIL",
          "message": "assert_not_equals: Empty Sec-Metadata header. got disallowed value \"\""
        },
        {
          "name": "Same-Site font",
          "status": "FAIL",
          "message": "assert_equals: destination expected (string) \"font\" but got (undefined) undefined"
        },
        {
          "name": "Cross-Site font",
          "status": "FAIL",
          "message": "assert_equals: destination expected (string) \"font\" but got (undefined) undefined"
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-headers.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Adding valid request header \"Content-Type: OK\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding valid request header \"Potato: OK\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding valid request header \"proxy: OK\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding valid request header \"proxya: OK\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding valid request header \"sec: OK\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding valid request header \"secb: OK\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Accept-Charset: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"accept-charset: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"ACCEPT-ENCODING: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Accept-Encoding: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Access-Control-Request-Headers: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Access-Control-Request-Method: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Connection: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Content-Length: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Cookie: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Cookie2: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Date: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"DNT: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Expect: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Host: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Keep-Alive: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Origin: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Referer: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"TE: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Trailer: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Transfer-Encoding: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Upgrade: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Via: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Proxy-: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"proxy-a: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"Sec-: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid request header \"sec-b: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding valid no-cors request header \"Accept: OK\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding valid no-cors request header \"Accept-Language: OK\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding valid no-cors request header \"content-language: OK\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding valid no-cors request header \"content-type: application/x-www-form-urlencoded\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding valid no-cors request header \"content-type: application/x-www-form-urlencoded;charset=UTF-8\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding valid no-cors request header \"content-type: multipart/form-data\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding valid no-cors request header \"content-type: multipart/form-data;charset=UTF-8\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding valid no-cors request header \"content-TYPE: text/plain\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding valid no-cors request header \"CONTENT-type: text/plain;charset=UTF-8\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid no-cors request header \"Content-Type: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid no-cors request header \"Potato: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid no-cors request header \"proxy: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid no-cors request header \"proxya: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid no-cors request header \"sec: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Adding invalid no-cors request header \"secb: KO\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check that request constructor is filtering headers provided as init parameter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check that no-cors request constructor is filtering headers provided as init parameter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check that no-cors request constructor is filtering headers provided as part of request parameter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request should get its content-type from the init request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request should not get its content-type from the init request if init headers are provided",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request should get its content-type from the body if none is provided",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request should get its content-type from init headers if one is provided",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Testing request header creations with various objects",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Testing empty Request Content-Type header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test that Request.headers has the [SameObject] extended attribute",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-clone.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Check Response's clone with default values, without body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check Response's clone has the expected attribute values",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check orginal response's body after cloning",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check cloned response's body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cannot clone a disturbed response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cloned responses should provide the same data",
          "status": "FAIL",
          "message": "assert_array_equals: cloned responses should provide the same data value is object \"[object ArrayBuffer]\", expected array"
        },
        {
          "name": "Cancelling stream should not affect cloned one",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check response clone use structureClone for teed ReadableStreams (Int8Arraychunk)",
          "status": "FAIL",
          "message": "assert_true: Buffer of cloned response stream is a clone of the original buffer expected true got false"
        },
        {
          "name": "Check response clone use structureClone for teed ReadableStreams (Int16Arraychunk)",
          "status": "FAIL",
          "message": "assert_true: Buffer of cloned response stream is a clone of the original buffer expected true got false"
        },
        {
          "name": "Check response clone use structureClone for teed ReadableStreams (Int32Arraychunk)",
          "status": "FAIL",
          "message": "assert_true: Buffer of cloned response stream is a clone of the original buffer expected true got false"
        },
        {
          "name": "Check response clone use structureClone for teed ReadableStreams (ArrayBufferchunk)",
          "status": "FAIL",
          "message": "assert_array_equals: Cloned buffer chunks have the same content value is object \"[object ArrayBuffer]\", expected array"
        },
        {
          "name": "Check response clone use structureClone for teed ReadableStreams (Uint8Arraychunk)",
          "status": "FAIL",
          "message": "assert_true: Buffer of cloned response stream is a clone of the original buffer expected true got false"
        },
        {
          "name": "Check response clone use structureClone for teed ReadableStreams (Uint8ClampedArraychunk)",
          "status": "FAIL",
          "message": "assert_true: Buffer of cloned response stream is a clone of the original buffer expected true got false"
        },
        {
          "name": "Check response clone use structureClone for teed ReadableStreams (Uint16Arraychunk)",
          "status": "FAIL",
          "message": "assert_true: Buffer of cloned response stream is a clone of the original buffer expected true got false"
        },
        {
          "name": "Check response clone use structureClone for teed ReadableStreams (Uint32Arraychunk)",
          "status": "FAIL",
          "message": "assert_true: Buffer of cloned response stream is a clone of the original buffer expected true got false"
        },
        {
          "name": "Check response clone use structureClone for teed ReadableStreams (Float32Arraychunk)",
          "status": "FAIL",
          "message": "assert_true: Buffer of cloned response stream is a clone of the original buffer expected true got false"
        },
        {
          "name": "Check response clone use structureClone for teed ReadableStreams (Float64Arraychunk)",
          "status": "FAIL",
          "message": "assert_true: Buffer of cloned response stream is a clone of the original buffer expected true got false"
        },
        {
          "name": "Check response clone use structureClone for teed ReadableStreams (DataViewchunk)",
          "status": "FAIL",
          "message": "assert_array_equals: Cloned buffer chunks have the same content value is object \"[object DataView]\", expected array"
        }
      ]
    },
    {
      "test": "/fetch/api/policies/referrer-origin.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Request's referrer is origin",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin referrer is overridden by client origin",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-error.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Throws RangeError when responseInit's status is 0",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Throws RangeError when responseInit's status is 100",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Throws RangeError when responseInit's status is 199",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Throws RangeError when responseInit's status is 600",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Throws RangeError when responseInit's status is 1000",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Throws TypeError when responseInit's statusText is \n",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Throws TypeError when responseInit's statusText is Ā",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Throws TypeError when building a response with body and a body status of 204",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Throws TypeError when building a response with body and a body status of 205",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Throws TypeError when building a response with body and a body status of 304",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetch in service worker: referrer with origin-when-cross-origin policy",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request's referrer is origin",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        }
      ]
    },
    {
      "test": "/fetch/security/dangling-markup-mitigation.tentative.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetch: /images/green-1x1.png",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/gre\\nen-1x1.png",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/gre\\ten-1x1.png",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/gre\\ren-1x1.png",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/green-1x1.png?img=<",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/green-1x1.png?img=&lt;",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/green-1x1.png?img=%3C",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/gr\\neen-1x1.png?img=%3C",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/gr\\reen-1x1.png?img=%3C",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/gr\\teen-1x1.png?img=%3C",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/green-1x1.png?img=&#10;",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/gr\\neen-1x1.png?img=&#10;",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/gr\\reen-1x1.png?img=&#10;",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/gr\\teen-1x1.png?img=&#10;",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/gre\\nen-1x1.png?img=<",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/gre\\ren-1x1.png?img=<",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/gre\\ten-1x1.png?img=<",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/green-1x1.png?<\\n=block",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/green-1x1.png?<\\r=block",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: /images/green-1x1.png?<\\t=block",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<img id=\"dangling\" src=\"/images/green-1x1.png?img=&lt;b\">",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<img id=\"dangling\" src=\"/images/green-1x1.png?img=&#10;b\">",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<img id=\"dangling\" src=\"/images/green-1x1.png?img=&amp;#10;b\">",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<img id=\"dangling\" src=\"/images/green-1x1.png?img=&amp;lt;b\">",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<img id=\"dangling\" src=\"/images/green-1x1.png?img=&amp;#10;b&amp;lt;c\">",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\\n      <img id=\"dangling\" src=\"\\n        /images/green-1x1.png?img=\\n      \">\\n    ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\\n      <img id=\"dangling\" src=\"\\n        /images/green-1x1.png?img=&amp;lt;\\n      \">\\n    ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\\n      <img id=\"dangling\" src=\"\\n        /images/green-1x1.png?img=&amp;#10;\\n      \">\\n    ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<img id=\"dangling\" src=\"/images/green-1x1.png?img=&#10;&lt;b\">",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<img id=\"dangling\" src=\"/images/green-1x1.png?img=&lt;&#10;b\">",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\\n      <img id=\"dangling\" src=\"/images/green-1x1.png?img=\\n        &lt;\\n        &#10;b\\n      \">\\n    ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/mode-same-origin.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetch ../resources/top.txt with same-origin mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch http://webapitests2018.ctawave.org:8000/fetch/api/resources/top.txt with same-origin mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch https://webapitests2018.ctawave.org:8443/fetch/api/resources/top.txt with same-origin mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch http://www1.webapitests2018.ctawave.org:8000/fetch/api/resources/top.txt with same-origin mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch /fetch/api/basic/../resources/redirect.py?location=../resources/top.txt with same-origin mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch /fetch/api/basic/../resources/redirect.py?location=http://webapitests2018.ctawave.org:8000/fetch/api/resources/top.txt with same-origin mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch /fetch/api/basic/../resources/redirect.py?location=https://webapitests2018.ctawave.org:8443/fetch/api/resources/top.txt with same-origin mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch /fetch/api/basic/../resources/redirect.py?location=http://www1.webapitests2018.ctawave.org:8000/fetch/api/resources/top.txt with same-origin mode",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/keepalive.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetch API: keepalive handling",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/policies/referrer-no-referrer.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Request's referrer is empty",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/headers/header-values-normalize.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "XMLHttpRequest with value %00",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %00",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %01",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %01",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %02",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %02",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %03",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %03",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %04",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %04",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %05",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %05",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %06",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %06",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %07",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %07",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %08",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %08",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %09",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %09",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %0A",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %0A",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %0D",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %0D",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %0E",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %0E",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %0F",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %0F",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %10",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %10",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %11",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %11",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %12",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %12",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %13",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %13",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %14",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %14",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %15",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %15",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %16",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %16",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %17",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %17",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %18",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %18",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %19",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %19",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %1A",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %1A",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %1B",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %1B",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %1C",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %1C",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %1D",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %1D",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %1E",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %1E",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %1F",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %1F",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value %20",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value %20",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-preflight-status.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Preflight answered with status 200",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Preflight answered with status 201",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Preflight answered with status 202",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Preflight answered with status 203",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Preflight answered with status 204",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Preflight answered with status 205",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Preflight answered with status 206",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Preflight answered with status 300",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Preflight answered with status 301",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Preflight answered with status 302",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Preflight answered with status 303",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Preflight answered with status 304",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Preflight answered with status 305",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Preflight answered with status 306",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Preflight answered with status 307",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Preflight answered with status 308",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Preflight answered with status 400",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Preflight answered with status 401",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Preflight answered with status 402",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Preflight answered with status 403",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Preflight answered with status 404",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Preflight answered with status 405",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Preflight answered with status 501",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Preflight answered with status 502",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Preflight answered with status 503",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Preflight answered with status 504",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Preflight answered with status 505",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/corb/script-resource-with-json-parser-breaker.tentative.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "CORB-blocks 'text/html' that starts with the following JSON parser breaker: )]}'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'text/html' that starts with the following JSON parser breaker: {}&&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'text/html' that starts with the following JSON parser breaker: {} &&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'text/xml' that starts with the following JSON parser breaker: )]}'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'text/xml' that starts with the following JSON parser breaker: {}&&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'text/xml' that starts with the following JSON parser breaker: {} &&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'text/json' that starts with the following JSON parser breaker: )]}'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'text/json' that starts with the following JSON parser breaker: {}&&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'text/json' that starts with the following JSON parser breaker: {} &&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'text/plain' that starts with the following JSON parser breaker: )]}'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'text/plain' that starts with the following JSON parser breaker: {}&&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'text/plain' that starts with the following JSON parser breaker: {} &&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'application/javascript' that starts with the following JSON parser breaker: )]}'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'application/javascript' that starts with the following JSON parser breaker: {}&&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'application/javascript' that starts with the following JSON parser breaker: {} &&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'image/png' that starts with the following JSON parser breaker: )]}'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'image/png' that starts with the following JSON parser breaker: {}&&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'image/png' that starts with the following JSON parser breaker: {} &&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'image/svg+xml' that starts with the following JSON parser breaker: )]}'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'image/svg+xml' that starts with the following JSON parser breaker: {}&&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'image/svg+xml' that starts with the following JSON parser breaker: {} &&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'application/pdf' that starts with the following JSON parser breaker: )]}'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'application/pdf' that starts with the following JSON parser breaker: {}&&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'application/pdf' that starts with the following JSON parser breaker: {} &&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'application/zip' that starts with the following JSON parser breaker: )]}'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'application/zip' that starts with the following JSON parser breaker: {}&&",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB-blocks 'application/zip' that starts with the following JSON parser breaker: {} &&",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/redirect/redirect-to-dataurl.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Testing data URL loading after same-origin redirection (cors mode)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Testing data URL loading after same-origin redirection (no-cors mode)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Testing data URL loading after same-origin redirection (same-origin mode)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Testing data URL loading after cross-origin redirection (cors mode)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Testing data URL loading after cross-origin redirection (no-cors mode)",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/nosniff/script.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "URL query: null",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: x",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: x/x",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: text/html",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: text/json",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: text/javascript",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: text/ecmascript",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: text/ecmascript;blah",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: text/javascript1.0",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-origin.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Cross domain different subdomain [origin OK]",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross domain different subdomain [origin KO]",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same domain different port [origin OK]",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same domain different port [origin KO]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain different port [origin OK]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain different port [origin KO]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain different protocol [origin OK]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain different protocol [origin KO]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same domain different protocol different port [origin OK]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same domain different protocol different port [origin KO]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain [POST] [origin OK]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain [POST] [origin KO]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain [HEAD] [origin OK]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain [HEAD] [origin KO]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS preflight [PUT] [origin OK]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS preflight [PUT] [origin KO]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Allowed origin: \"\" [origin KO]",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-preflight-referrer.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Referrer policy: no-referrer and referrer: default",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Referrer policy: no-referrer and referrer: 'myreferrer'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Referrer policy: \"\" and referrer: default",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Referrer policy: \"\" and referrer: 'myreferrer'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Referrer policy: origin and referrer: default",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Referrer policy: origin and referrer: 'myreferrer'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Referrer policy: origin-when-cross-origin and referrer: default",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Referrer policy: origin-when-cross-origin and referrer: 'myreferrer'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Referrer policy: unsafe-url and referrer: default",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Referrer policy: unsafe-url and referrer: 'myreferrer'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/policies/referrer-unsafe-url-service-worker.https.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetch in worker: referrer with unsafe-url policy",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request's referrer is the full url of current document/worker",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/http-cache/vary.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "HTTP cache reuses Vary response when request matches",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache doesn't use Vary response when request doesn't match",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache doesn't use Vary response when request omits variant header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache doesn't invalidate existing Vary response",
          "status": "FAIL",
          "message": "assert_less_than: Response 3 does not come from cache expected a number less than 3 but got 3"
        },
        {
          "name": "HTTP cache doesn't pay attention to headers not listed in Vary",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache reuses two-way Vary response when request matches",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache doesn't use two-way Vary response when request doesn't match",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache doesn't use two-way Vary response when request omits variant header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache reuses three-way Vary response when request matches",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache doesn't use three-way Vary response when request doesn't match",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache doesn't use three-way Vary response when request doesn't match, regardless of header order",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache uses three-way Vary response when both request and the original request omited a variant header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache doesn't use Vary response with a field value of '*'",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/fetch/api/request/destination/fetch-destination-prefetch.https.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Initialize global state",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLLinkElement with rel=prefetch fetches with an empty string Request.destination",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/http-cache/304-update.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "HTTP cache updates returned headers from a Last-Modified 304",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache updates stored headers from a Last-Modified 304",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache updates returned headers from a ETag 304",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache updates stored headers from a ETag 304",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Content-* header",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/abort/cache.https.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Signals are not stored in the cache API",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Signals are not stored in the cache API, even if they're already aborted",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/corb/script-html-via-cross-origin-blob-url.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "script-html-via-cross-origin-blob-url",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/sharedworker.tentative.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-Origin sharedworker",
          "status": "FAIL",
          "message": "assert_not_equals: Empty Sec-Metadata header. got disallowed value \"\""
        }
      ]
    },
    {
      "test": "/fetch/api/policies/referrer-unsafe-url-worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Request's referrer is the full url of current document/worker",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/redirect/cross-site-redirect.tentative.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Cross-Site -> Same-Origin redirect",
          "status": "FAIL",
          "message": "assert_equals: destination expected (string) \"image\" but got (undefined) undefined"
        },
        {
          "name": "Cross-Site -> Same-Site redirect",
          "status": "FAIL",
          "message": "assert_equals: destination expected (string) \"image\" but got (undefined) undefined"
        },
        {
          "name": "Cross-Site -> Cross-Site redirect",
          "status": "FAIL",
          "message": "assert_equals: destination expected (string) \"image\" but got (undefined) undefined"
        }
      ]
    },
    {
      "test": "/fetch/api/headers/headers-no-cors.window.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Loading data…",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"no-cors\" Headers object cannot have accept set to sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss, , sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss",
          "status": "FAIL",
          "message": "values is not defined"
        },
        {
          "name": "\"no-cors\" Headers object cannot have accept-language set to sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss, , sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss",
          "status": "FAIL",
          "message": "values is not defined"
        },
        {
          "name": "\"no-cors\" Headers object cannot have content-language set to sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss, , sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss",
          "status": "FAIL",
          "message": "values is not defined"
        },
        {
          "name": "\"no-cors\" Headers object cannot have content-type set to text/plain;ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss, text/plain",
          "status": "FAIL",
          "message": "values is not defined"
        },
        {
          "name": "\"no-cors\" Headers object cannot have accept/\" as header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"no-cors\" Headers object cannot have accept/012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 as header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"no-cors\" Headers object cannot have accept-language/\u0001 as header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"no-cors\" Headers object cannot have accept-language/@ as header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"no-cors\" Headers object cannot have content-language/\u0001 as header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"no-cors\" Headers object cannot have content-language/@ as header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"no-cors\" Headers object cannot have content-type/text/html as header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"no-cors\" Headers object cannot have content-type/text/plain; long=0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901 as header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"no-cors\" Headers object cannot have test/hi as header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"no-cors\" Headers object cannot have dpr/2 as header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"no-cors\" Headers object cannot have downlink/1 as header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"no-cors\" Headers object cannot have save-data/on as header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"no-cors\" Headers object cannot have viewport-width/100 as header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"no-cors\" Headers object cannot have width/100 as header",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-keepalive.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "keepalive flag",
          "status": "PASS",
          "message": null
        },
        {
          "name": "keepalive flag with stream body",
          "status": "FAIL",
          "message": "assert_throws: function \"() => {new Request('/', init)}\" did not throw"
        }
      ]
    },
    {
      "test": "/fetch/api/basic/response-url.sub.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Testing response url getter with http://webapitests2018.ctawave.org:8000/ada",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Testing response url getter with http://webapitests2018.ctawave.org:8000/#",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Testing response url getter with http://webapitests2018.ctawave.org:8000/#ada",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Testing response url getter with http://webapitests2018.ctawave.org:8000#ada",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/url-encoding.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "URL encoding and Request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL encoding and fetch()",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/corb/preload-image-png-mislabeled-as-html-nosniff.tentative.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "preload-image-png-mislabeled-as-html-nosniff",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/error-after-response.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Response reader read() promise should reject after a network error happening after resolving fetch promise",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response reader closed promise should reject after a network error happening after resolving fetch promise",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/corb/img-mime-types-coverage.tentative.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "CORB should allow the response if Content-Type is: 'null'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: ''.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'x'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'x/x'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'image/gif'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'image/png'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'image/png;blah'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'image/svg+xml'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'application/javascript'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'application/jsonp'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'image/gif;HI=THERE'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'text/x-json'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'text/json+blah'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'application/json+blah'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'text/xml+blah'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'application/xml+blah'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'application/blahjson'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should allow the response if Content-Type is: 'text/blahxml'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should block the response if Content-Type is: 'text/html'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should block the response if Content-Type is: 'text/json'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should block the response if Content-Type is: 'application/json'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should block the response if Content-Type is: 'text/xml'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should block the response if Content-Type is: 'application/xml'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should block the response if Content-Type is: 'application/blah+json'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should block the response if Content-Type is: 'text/blah+json'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should block the response if Content-Type is: 'application/blah+xml'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should block the response if Content-Type is: 'text/blah+xml'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should block the response if Content-Type is: 'TEXT/HTML'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should block the response if Content-Type is: 'TEXT/JSON'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should block the response if Content-Type is: 'TEXT/BLAH+JSON'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should block the response if Content-Type is: 'APPLICATION/BLAH+XML'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should block the response if Content-Type is: 'text/json;does=it;matter'.  ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB should block the response if Content-Type is: 'text/HTML;NO=it;does=NOT'.  ",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/embed.tentative.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-Origin embed",
          "status": "FAIL",
          "message": "assert_not_equals: Empty Sec-Metadata header. got disallowed value \"\""
        },
        {
          "name": "Same-Site embed",
          "status": "FAIL",
          "message": "assert_equals: destination expected (string) \"embed\" but got (undefined) undefined"
        },
        {
          "name": "Cross-Site embed",
          "status": "FAIL",
          "message": "assert_equals: destination expected (string) \"embed\" but got (undefined) undefined"
        }
      ]
    },
    {
      "test": "/fetch/http-cache/partial.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "HTTP cache stores partial content and reuses it",
          "status": "FAIL",
          "message": "assert_less_than: Response 2 does not come from cache expected a number less than 2 but got 2"
        },
        {
          "name": "HTTP cache stores complete response and serves smaller ranges from it (byte-range-spec)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache stores complete response and serves smaller ranges from it (absent last-byte-pos)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache stores complete response and serves smaller ranges from it (suffix-byte-range-spec)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache stores partial response and serves smaller ranges from it (byte-range-spec)",
          "status": "FAIL",
          "message": "assert_less_than: Response 2 does not come from cache expected a number less than 2 but got 2"
        },
        {
          "name": "HTTP cache stores partial response and serves smaller ranges from it (absent last-byte-pos)",
          "status": "FAIL",
          "message": "assert_less_than: Response 2 does not come from cache expected a number less than 2 but got 2"
        },
        {
          "name": "HTTP cache stores partial response and serves smaller ranges from it (suffix-byte-range-spec)",
          "status": "FAIL",
          "message": "assert_less_than: Response 2 does not come from cache expected a number less than 2 but got 2"
        },
        {
          "name": "HTTP cache stores partial content and completes it",
          "status": "FAIL",
          "message": "assert_equals: request 2 header range value is \"undefined\", not \"bytes=5-\" expected (string) \"bytes=5-\" but got (undefined) undefined"
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-cancel-stream.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Cancelling a starting blob Response stream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cancelling a loading blob Response stream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cancelling a closed blob Response stream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cancelling a starting Response stream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cancelling a loading Response stream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cancelling a closed Response stream",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-filtering.sub.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "CORS filter on Cache-Control header",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "CORS filter on Content-Language header",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Content-Type header",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Expires header",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Last-Modified header",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Pragma header",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Content-Length header",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Age header",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Server header",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Warning header",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Set-Cookie header",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Set-Cookie2 header",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Age header, header is exposed",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Server header, header is exposed",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Warning header, header is exposed",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Set-Cookie header, header is forbidden",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Set-Cookie2 header, header is forbidden",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Set-Cookie header, header is forbidden(credentials = include)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS filter on Set-Cookie2 header, header is forbidden(credentials = include)",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/http-cache/invalidate.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "HTTP cache invalidates after a successful response from a POST",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache does not invalidate after a failed response from an unsafe request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache invalidates after a successful response from a PUT",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache invalidates after a successful response from a DELETE",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache invalidates after a successful response from an unknown method",
          "status": "FAIL",
          "message": "assert_equals: Response 3 comes from cache expected 3 but got 1"
        },
        {
          "name": "HTTP cache invalidates Location URL after a successful response from a POST",
          "status": "FAIL",
          "message": "assert_equals: Response 3 comes from cache expected 3 but got 1"
        },
        {
          "name": "HTTP cache does not invalidate Location URL after a failed response from an unsafe request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache invalidates Location URL after a successful response from a PUT",
          "status": "FAIL",
          "message": "assert_equals: Response 3 comes from cache expected 3 but got 1"
        },
        {
          "name": "HTTP cache invalidates Location URL after a successful response from a DELETE",
          "status": "FAIL",
          "message": "assert_equals: Response 3 comes from cache expected 3 but got 1"
        },
        {
          "name": "HTTP cache invalidates Location URL after a successful response from an unknown method",
          "status": "FAIL",
          "message": "assert_equals: Response 3 comes from cache expected 3 but got 1"
        },
        {
          "name": "HTTP cache invalidates Content-Location URL after a successful response from a POST",
          "status": "FAIL",
          "message": "assert_equals: Response 3 comes from cache expected 3 but got 1"
        },
        {
          "name": "HTTP cache does not invalidate Content-Location URL after a failed response from an unsafe request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache invalidates Content-Location URL after a successful response from a PUT",
          "status": "FAIL",
          "message": "assert_equals: Response 3 comes from cache expected 3 but got 1"
        },
        {
          "name": "HTTP cache invalidates Content-Location URL after a successful response from a DELETE",
          "status": "FAIL",
          "message": "assert_equals: Response 3 comes from cache expected 3 but got 1"
        },
        {
          "name": "HTTP cache invalidates Content-Location URL after a successful response from an unknown method",
          "status": "FAIL",
          "message": "assert_equals: Response 3 comes from cache expected 3 but got 1"
        }
      ]
    },
    {
      "test": "/fetch/api/headers/headers-combine.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create headers using same name for different values",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check delete and has methods when using same name for different values",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check set methods when called with already used name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check append methods when called with already used name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Iterate combined values",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Iterate combined values in sorted order",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/nosniff/parsing-nosniff.window.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Loading JSON…",
          "status": "PASS",
          "message": null
        },
        {
          "name": "X-Content-Type-Options%3A%20NOSNIFF",
          "status": "PASS",
          "message": null
        },
        {
          "name": "x-content-type-OPTIONS%3A%20nosniff",
          "status": "PASS",
          "message": null
        },
        {
          "name": "X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!",
          "status": "PASS",
          "message": null
        },
        {
          "name": "X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff",
          "status": "PASS",
          "message": null
        },
        {
          "name": "X-Content-Type-Options%3A%20nosniff%0D%0AX-Content-Type-Options%3A%20no",
          "status": "PASS",
          "message": null
        },
        {
          "name": "X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff",
          "status": "PASS",
          "message": null
        },
        {
          "name": "X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff",
          "status": "FAIL",
          "message": "assert_unreached: Script should have loaded Reached unreachable code"
        },
        {
          "name": "X-Content-Type-Options%3A%20%2Cnosniff",
          "status": "FAIL",
          "message": "assert_unreached: Script should have loaded Reached unreachable code"
        },
        {
          "name": "X-Content-Type-Options%3A%20nosniff%0C",
          "status": "FAIL",
          "message": "assert_unreached: Script should have loaded Reached unreachable code"
        },
        {
          "name": "X-Content-Type-Options%3A%20nosniff%0B",
          "status": "FAIL",
          "message": "assert_unreached: Script should have loaded Reached unreachable code"
        },
        {
          "name": "X-Content-Type-Options%3A%20nosniff%0B%2Cnosniff",
          "status": "FAIL",
          "message": "assert_unreached: Script should have loaded Reached unreachable code"
        },
        {
          "name": "X-Content-Type-Options%3A%20'NosniFF'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "X-Content-Type-Options%3A%20%22nosniFF%22",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Content-Type-Options%3A%20nosniff",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/credentials/cookies.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Include mode: 1 cookie",
          "status": "FAIL",
          "message": "assert_equals: Request include cookie(s) expected \"a=1\" but got \"a=1; sid=7b7d9a80-6b22-11e9-bb63-32abc876298c\""
        },
        {
          "name": "Include mode: 2 cookies",
          "status": "FAIL",
          "message": "assert_equals: Request include cookie(s) expected \"b=2; c=3\" but got \"b=2; c=3; sid=7b7d9a80-6b22-11e9-bb63-32abc876298c\""
        },
        {
          "name": "Omit mode: discard cookies",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Omit mode: no cookie is stored",
          "status": "FAIL",
          "message": "assert_false: Request does not have cookie(s) expected false got true"
        },
        {
          "name": "Omit mode: no cookie is sent",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin mode: 1 cookie",
          "status": "FAIL",
          "message": "assert_equals: Request include cookie(s) expected \"a=1\" but got \"a=1; sid=7b7d9a80-6b22-11e9-bb63-32abc876298c\""
        },
        {
          "name": "Same-origin mode: 2 cookies",
          "status": "FAIL",
          "message": "assert_equals: Request include cookie(s) expected \"b=2; c=3\" but got \"b=2; c=3; sid=7b7d9a80-6b22-11e9-bb63-32abc876298c\""
        }
      ]
    },
    {
      "test": "/fetch/http-cache/cc-request.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "HTTP cache doesn't use aged but fresh response when request contains Cache-Control: max-age=0",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache doesn't use aged but fresh response when request contains Cache-Control: max-age=1",
          "status": "FAIL",
          "message": "assert_equals: Response 2 comes from cache expected 2 but got 1"
        },
        {
          "name": "HTTP cache doesn't use fresh response with Age header when request contains Cache-Control: max-age that is greater than remaining freshness",
          "status": "FAIL",
          "message": "assert_equals: Response 2 comes from cache expected 2 but got 1"
        },
        {
          "name": "HTTP cache does use aged stale response when request contains Cache-Control: max-stale that permits its use",
          "status": "FAIL",
          "message": "assert_less_than: Response 2 does not come from cache expected a number less than 2 but got 2"
        },
        {
          "name": "HTTP cache does reuse stale response with Age header when request contains Cache-Control: max-stale that permits its use",
          "status": "FAIL",
          "message": "assert_less_than: Response 2 does not come from cache expected a number less than 2 but got 2"
        },
        {
          "name": "HTTP cache doesn't reuse fresh response when request contains Cache-Control: min-fresh that wants it fresher",
          "status": "FAIL",
          "message": "assert_equals: Response 2 comes from cache expected 2 but got 1"
        },
        {
          "name": "HTTP cache doesn't reuse fresh response with Age header when request contains Cache-Control: min-fresh that wants it fresher",
          "status": "FAIL",
          "message": "assert_equals: Response 2 comes from cache expected 2 but got 1"
        },
        {
          "name": "HTTP cache doesn't reuse fresh response when request contains Cache-Control: no-cache",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache validates fresh response with Last-Modified when request contains Cache-Control: no-cache",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache validates fresh response with ETag when request contains Cache-Control: no-cache",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache doesn't reuse fresh response when request contains Cache-Control: no-store",
          "status": "FAIL",
          "message": "assert_equals: Response 2 comes from cache expected 2 but got 1"
        },
        {
          "name": "HTTP cache generates 504 status code when nothing is in cache and request contains Cache-Control: only-if-cached",
          "status": "FAIL",
          "message": "assert_equals: Response 1 status is 200, not 504 expected 504 but got 200"
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-expose-star.sub.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Basic Access-Control-Expose-Headers: * support",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "* for credentialed fetches only matches literally",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "* can be one of several values",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-init-stream.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Constructing a Request with a stream on which getReader() is called",
          "status": "FAIL",
          "message": "assert_throws: new Request() function \"() => new Request(input, init)\" did not throw"
        },
        {
          "name": "Constructing a Request with a stream on which read() is called",
          "status": "FAIL",
          "message": "assert_throws: new Request() function \"() => new Request(input, init)\" did not throw"
        },
        {
          "name": "Constructing a Request with a stream on which read() and releaseLock() are called",
          "status": "FAIL",
          "message": "assert_throws: new Request() function \"() => new Request(input, init)\" did not throw"
        },
        {
          "name": "Constructing a Request with a Request on which body.getReader() is called",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Cannot read property 'getReader' of undefined\""
        },
        {
          "name": "Constructing a Request with a Request on which body.getReader().read() is called",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Cannot read property 'getReader' of undefined\""
        },
        {
          "name": "Constructing a Request with a Request on which read() and releaseLock() are called",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Cannot read property 'getReader' of undefined\""
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/report.tentative.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Initialization.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/redirect/redirect-count.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Redirect 301 20 times",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 301 21 times",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 302 20 times",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 302 21 times",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 303 20 times",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 303 21 times",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 307 20 times",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 307 21 times",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 308 20 times",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Redirect 308 21 times",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/headers/historical.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Headers object no longer has a getAll() method",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/content-encoding/bad-gzip-body.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetching a resource with bad gzip content should still resolve",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consuming the body of a resource with bad gzip content with arrayBuffer() should reject",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consuming the body of a resource with bad gzip content with blob() should reject",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consuming the body of a resource with bad gzip content with formData() should reject",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consuming the body of a resource with bad gzip content with json() should reject",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consuming the body of a resource with bad gzip content with text() should reject",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/abort/keepalive.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "aborting a keepalive fetch should work",
          "status": "PASS",
          "message": null
        },
        {
          "name": "aborting a detached keepalive fetch should not do anything",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/http-cache/status.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "HTTP cache goes to the network if it has a stale 200 response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache avoids going to the network if it has a fresh 200 response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache goes to the network if it has a stale 203 response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache avoids going to the network if it has a fresh 203 response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache goes to the network if it has a stale 204 response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache avoids going to the network if it has a fresh 204 response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache goes to the network if it has a stale 299 response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache avoids going to the network if it has a fresh 299 response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache goes to the network if it has a stale 400 response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache avoids going to the network if it has a fresh 400 response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache goes to the network if it has a stale 404 response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache avoids going to the network if it has a fresh 404 response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache goes to the network if it has a stale 410 response",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "HTTP cache avoids going to the network if it has a fresh 410 response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTTP cache goes to the network if it has a stale 499 response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTTP cache avoids going to the network if it has a fresh 499 response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTTP cache goes to the network if it has a stale 500 response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTTP cache avoids going to the network if it has a fresh 500 response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTTP cache goes to the network if it has a stale 502 response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTTP cache avoids going to the network if it has a fresh 502 response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTTP cache goes to the network if it has a stale 503 response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTTP cache avoids going to the network if it has a fresh 503 response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTTP cache goes to the network if it has a stale 504 response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTTP cache avoids going to the network if it has a fresh 504 response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTTP cache goes to the network if it has a stale 599 response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTTP cache avoids going to the network if it has a fresh 599 response",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/abort/general.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Aborting rejects with AbortError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Aborting rejects with AbortError - no-cors",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - RequestInit's window is not null",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - Input URL is not valid",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - Input URL has credentials",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - RequestInit's mode is navigate",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - RequestInit's referrer is invalid",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - RequestInit's method is invalid",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - RequestInit's method is forbidden",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - RequestInit's mode is no-cors and method is not simple",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - RequestInit's cache mode is only-if-cached and mode is not same-origin",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - Request with cache mode: only-if-cached and fetch mode cors",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - Request with cache mode: only-if-cached and fetch mode no-cors",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - Bad referrerPolicy init parameter value",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - Bad mode init parameter value",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - Bad credentials init parameter value",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - Bad cache init parameter value",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TypeError from request constructor takes priority - Bad redirect init parameter value",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request objects have a signal property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Signal on request object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Signal on request object created from request object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Signal on request object created from request object, with signal on second request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Signal on request object created from request object, with signal on second request overriding another",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Signal retained after unrelated properties are overridden by fetch",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Signal removed by setting to null",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Already aborted signal rejects immediately",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request is still 'used' if signal is aborted before fetching",
          "status": "PASS",
          "message": null
        },
        {
          "name": "response.arrayBuffer() rejects if already aborted",
          "status": "PASS",
          "message": null
        },
        {
          "name": "response.blob() rejects if already aborted",
          "status": "PASS",
          "message": null
        },
        {
          "name": "response.formData() rejects if already aborted",
          "status": "PASS",
          "message": null
        },
        {
          "name": "response.json() rejects if already aborted",
          "status": "PASS",
          "message": null
        },
        {
          "name": "response.text() rejects if already aborted",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Already aborted signal does not make request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Already aborted signal can be used for many fetches",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Signal can be used to abort other fetches, even if another fetch succeeded before aborting",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Underlying connection is closed when aborting after receiving response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Underlying connection is closed when aborting after receiving response - no-cors",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch aborted & connection closed when aborted after calling response.arrayBuffer()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch aborted & connection closed when aborted after calling response.blob()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch aborted & connection closed when aborted after calling response.formData()",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Fetch aborted & connection closed when aborted after calling response.json()",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Fetch aborted & connection closed when aborted after calling response.text()",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Stream errors once aborted. Underlying connection closed.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Stream errors once aborted, after reading. Underlying connection closed.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Stream will not error if body is empty. It's closed with an empty queue before it errors.",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Readable stream synchronously cancels with AbortError if aborted before reading",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Signal state is cloned",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Clone aborts with original controller",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/policies/referrer-no-referrer-worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Request's referrer is empty",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/cross-origin-resource-policy/fetch-in-iframe.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Cross-origin fetch in a data: iframe load fails if the server blocks cross-origin loads with a 'Cross-Origin-Resource-Policy: same-origin' response header.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: \"Received unexpected message ok\""
        },
        {
          "name": "Cross-origin fetch in a data: iframe load fails if the server blocks cross-origin loads with a 'Cross-Origin-Resource-Policy: same-site' response header.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: \"Received unexpected message ok\""
        },
        {
          "name": "Cross-origin fetch in a cross origin iframe load fails if the server blocks cross-origin loads with a 'Cross-Origin-Resource-Policy: same-origin' response header.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: \"Received unexpected message ok\""
        },
        {
          "name": "Cross-origin fetch in a cross origin iframe load fails if the server blocks cross-origin loads with a 'Cross-Origin-Resource-Policy: same-site' response header.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-origin fetch in a cross origin iframe load succeeds if the server blocks cross-origin loads with a 'Cross-Origin-Resource-Policy: same-origin' response header.",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/mediasource.window.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Cannot fetch blob: URL from a MediaSource",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-consume-empty.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Consume response's body as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body as blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body as arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body as json (error case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body as formData with correct multipart type (error case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body as formData with correct urlencoded type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body as formData without correct type (error case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume empty blob response body as arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume empty text response body as arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume empty blob response body as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume empty text response body as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume empty URLSearchParams response body as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume empty FormData response body as text",
          "status": "FAIL",
          "message": "assert_equals: Resolved value should be empty expected 0 but got 44"
        },
        {
          "name": "Consume empty ArrayBuffer response body as text",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-preflight-redirect.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Redirection 301 on preflight failed",
          "status": "FAIL",
          "message": "promise_test: test body must return a 'thenable' object (received undefined)"
        },
        {
          "name": "Redirection 301 after preflight failed",
          "status": "FAIL",
          "message": "promise_test: test body must return a 'thenable' object (received undefined)"
        },
        {
          "name": "Redirection 302 on preflight failed",
          "status": "FAIL",
          "message": "promise_test: test body must return a 'thenable' object (received undefined)"
        },
        {
          "name": "Redirection 302 after preflight failed",
          "status": "FAIL",
          "message": "promise_test: test body must return a 'thenable' object (received undefined)"
        },
        {
          "name": "Redirection 303 on preflight failed",
          "status": "FAIL",
          "message": "promise_test: test body must return a 'thenable' object (received undefined)"
        },
        {
          "name": "Redirection 303 after preflight failed",
          "status": "FAIL",
          "message": "promise_test: test body must return a 'thenable' object (received undefined)"
        },
        {
          "name": "Redirection 307 on preflight failed",
          "status": "FAIL",
          "message": "promise_test: test body must return a 'thenable' object (received undefined)"
        },
        {
          "name": "Redirection 307 after preflight failed",
          "status": "FAIL",
          "message": "promise_test: test body must return a 'thenable' object (received undefined)"
        },
        {
          "name": "Redirection 308 on preflight failed",
          "status": "FAIL",
          "message": "promise_test: test body must return a 'thenable' object (received undefined)"
        },
        {
          "name": "Redirection 308 after preflight failed",
          "status": "FAIL",
          "message": "promise_test: test body must return a 'thenable' object (received undefined)"
        }
      ]
    },
    {
      "test": "/fetch/api/headers/headers-record.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Passing nothing to Headers constructor",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Passing undefined to Headers constructor",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Passing null to Headers constructor",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Basic operation with one property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Basic operation with one property and a proto",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Correct operation ordering with two properties",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Correct operation ordering with two properties one of which has an invalid name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Correct operation ordering with two properties one of which has an invalid value",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Correct operation ordering with non-enumerable properties",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Correct operation ordering with undefined descriptors",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Correct operation ordering with repeated keys",
          "status": "FAIL",
          "message": "assert_throws: function \"function() { var h = new Headers(proxy); }\" did not throw"
        },
        {
          "name": "Basic operation with Symbol keys",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Operation with non-enumerable Symbol keys",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-redirect-credentials.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Redirect 301 from same origin to remote without user and password",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Redirect 301 from same origin to remote with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 301 from same origin to remote with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 301 from same origin to remote with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 301 from remote to same origin with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 301 from remote to same origin with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 301 from remote to same origin with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 301 from remote to same remote with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 301 from remote to same remote with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 301 from remote to same remote with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 301 from remote to another remote with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 301 from remote to another remote with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 301 from remote to another remote with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302 from same origin to remote without user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302 from same origin to remote with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302 from same origin to remote with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302 from same origin to remote with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302 from remote to same origin with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302 from remote to same origin with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302 from remote to same origin with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302 from remote to same remote with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302 from remote to same remote with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302 from remote to same remote with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302 from remote to another remote with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302 from remote to another remote with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302 from remote to another remote with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303 from same origin to remote without user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303 from same origin to remote with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303 from same origin to remote with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303 from same origin to remote with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303 from remote to same origin with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303 from remote to same origin with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303 from remote to same origin with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303 from remote to same remote with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303 from remote to same remote with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303 from remote to same remote with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303 from remote to another remote with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303 from remote to another remote with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303 from remote to another remote with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307 from same origin to remote without user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307 from same origin to remote with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307 from same origin to remote with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307 from same origin to remote with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307 from remote to same origin with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307 from remote to same origin with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307 from remote to same origin with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307 from remote to same remote with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307 from remote to same remote with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307 from remote to same remote with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307 from remote to another remote with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307 from remote to another remote with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307 from remote to another remote with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308 from same origin to remote without user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308 from same origin to remote with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308 from same origin to remote with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308 from same origin to remote with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308 from remote to same origin with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308 from remote to same origin with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308 from remote to same origin with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308 from remote to same remote with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308 from remote to same remote with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308 from remote to same remote with password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308 from remote to another remote with user and password",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308 from remote to another remote with user",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308 from remote to another remote with password",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/credentials/authentication-basic.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "User-added Authorization header with include mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "User-added Authorization header with same-origin mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "User-added Authorization header with omit mode",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/abort/destroyed-context.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "aborting a fetch in a destroyed context should not crash",
          "status": "FAIL",
          "message": "Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node."
        }
      ]
    },
    {
      "test": "/fetch/api/basic/stream-safe-creation.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "throwing Object.prototype.start accessor should not affect stream creation by 'fetch'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.start accessor returning invalid value should not affect stream creation by 'fetch'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.type accessor should not affect stream creation by 'fetch'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.type accessor returning invalid value should not affect stream creation by 'fetch'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.size accessor should not affect stream creation by 'fetch'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.size accessor returning invalid value should not affect stream creation by 'fetch'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.highWaterMark accessor should not affect stream creation by 'fetch'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.highWaterMark accessor returning invalid value should not affect stream creation by 'fetch'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.start function which errors the stream should not affect stream creation by 'fetch'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.start accessor should not affect stream creation by 'request'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.start accessor returning invalid value should not affect stream creation by 'request'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.type accessor should not affect stream creation by 'request'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.type accessor returning invalid value should not affect stream creation by 'request'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.size accessor should not affect stream creation by 'request'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.size accessor returning invalid value should not affect stream creation by 'request'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.highWaterMark accessor should not affect stream creation by 'request'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.highWaterMark accessor returning invalid value should not affect stream creation by 'request'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.start function which errors the stream should not affect stream creation by 'request'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.start accessor should not affect stream creation by 'response'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.start accessor returning invalid value should not affect stream creation by 'response'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.type accessor should not affect stream creation by 'response'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.type accessor returning invalid value should not affect stream creation by 'response'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.size accessor should not affect stream creation by 'response'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.size accessor returning invalid value should not affect stream creation by 'response'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.highWaterMark accessor should not affect stream creation by 'response'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.highWaterMark accessor returning invalid value should not affect stream creation by 'response'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.start function which errors the stream should not affect stream creation by 'response'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.start accessor should not affect stream creation by 'consumeEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.start accessor returning invalid value should not affect stream creation by 'consumeEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.type accessor should not affect stream creation by 'consumeEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.type accessor returning invalid value should not affect stream creation by 'consumeEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.size accessor should not affect stream creation by 'consumeEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.size accessor returning invalid value should not affect stream creation by 'consumeEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.highWaterMark accessor should not affect stream creation by 'consumeEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.highWaterMark accessor returning invalid value should not affect stream creation by 'consumeEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.start function which errors the stream should not affect stream creation by 'consumeEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.start accessor should not affect stream creation by 'consumeNonEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.start accessor returning invalid value should not affect stream creation by 'consumeNonEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.type accessor should not affect stream creation by 'consumeNonEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.type accessor returning invalid value should not affect stream creation by 'consumeNonEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.size accessor should not affect stream creation by 'consumeNonEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.size accessor returning invalid value should not affect stream creation by 'consumeNonEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.highWaterMark accessor should not affect stream creation by 'consumeNonEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.highWaterMark accessor returning invalid value should not affect stream creation by 'consumeNonEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.start function which errors the stream should not affect stream creation by 'consumeNonEmptyResponse'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.start accessor should not affect stream creation by 'consumeEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.start accessor returning invalid value should not affect stream creation by 'consumeEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.type accessor should not affect stream creation by 'consumeEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.type accessor returning invalid value should not affect stream creation by 'consumeEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.size accessor should not affect stream creation by 'consumeEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.size accessor returning invalid value should not affect stream creation by 'consumeEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.highWaterMark accessor should not affect stream creation by 'consumeEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.highWaterMark accessor returning invalid value should not affect stream creation by 'consumeEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.start function which errors the stream should not affect stream creation by 'consumeEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.start accessor should not affect stream creation by 'consumeNonEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.start accessor returning invalid value should not affect stream creation by 'consumeNonEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.type accessor should not affect stream creation by 'consumeNonEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.type accessor returning invalid value should not affect stream creation by 'consumeNonEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.size accessor should not affect stream creation by 'consumeNonEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.size accessor returning invalid value should not affect stream creation by 'consumeNonEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "throwing Object.prototype.highWaterMark accessor should not affect stream creation by 'consumeNonEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.highWaterMark accessor returning invalid value should not affect stream creation by 'consumeNonEmptyRequest'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Object.prototype.start function which errors the stream should not affect stream creation by 'consumeNonEmptyRequest'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/integrity.sub.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Empty string integrity",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SHA-256 integrity",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SHA-384 integrity",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SHA-512 integrity",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Invalid integrity",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Multiple integrities: valid stronger than invalid",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Multiple integrities: invalid stronger than valid",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Multiple integrities: invalid as strong as valid",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Multiple integrities: both are valid",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Multiple integrities: both are invalid",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS empty integrity",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "CORS SHA-512 integrity",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS invalid integrity",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Empty string integrity for opaque response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "SHA-* integrity for opaque response",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/corb/script-html-js-polyglot.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "CORB cannot block polyglot HTML/JS: html-js-polyglot.js",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORB cannot block polyglot HTML/JS: html-js-polyglot2.js",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/accept-header.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Request through fetch should have 'accept' header with value '*/*'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request through fetch should have 'accept' header with value 'custom/*'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request through fetch should have a 'accept-language' header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request through fetch should have 'accept-language' header with value 'bzh'",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/redirect/redirect-empty-location.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "redirect response with empty Location, follow mode",
          "status": "FAIL",
          "message": "assert_unreached: Should have rejected: undefined Reached unreachable code"
        },
        {
          "name": "redirect response with empty Location, manual mode",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/headers/headers-structure.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Headers has append method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers has delete method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers has get method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers has has method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers has set method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers has entries method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers has keys method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers has values method",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/headers/headers-casing.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create headers, names use characters with different case",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check append method, names use characters with different case",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check set method, names use characters with different case",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check delete method, names use characters with different case",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/headers/header-values.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "XMLHttpRequest with value x%00x needs to throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value x%00x needs to throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value x%0Ax needs to throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value x%0Ax needs to throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with value x%0Dx needs to throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with value x%0Dx needs to throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest with all valid values",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() with all valid values",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-static-error.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Check response returned by static method error()",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-preflight.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "CORS [DELETE], server allows",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS [DELETE], server refuses",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS [PUT], server allows",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS [PUT], server allows, check preflight has user agent",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS [PUT], server refuses",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS [PATCH], server allows",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS [PATCH], server refuses",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS [NEW], server allows",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS [NEW], server refuses",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS [GET] [x-test-header: allowed], server allows",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS [GET] [x-test-header: refused], server refuses",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "CORS [GET] [several headers], server allows",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS [GET] [several headers], server refuses",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS [PUT] [several headers], server allows",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS [PUT] [several headers], server refuses",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "CORS [PUT] [only safe headers], server allows",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-cache-no-store.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "RequestCache \"no-store\" mode does not check the cache for previously cached content and goes to the network regardless with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"no-store\" mode does not check the cache for previously cached content and goes to the network regardless with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"no-store\" mode does not check the cache for previously cached content and goes to the network regardless with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"no-store\" mode does not check the cache for previously cached content and goes to the network regardless with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"no-store\" mode does not store the response in the cache with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"no-store\" mode does not store the response in the cache with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"no-store\" mode does not store the response in the cache with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"no-store\" mode does not store the response in the cache with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-consume-empty.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Consume request's body as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume request's body as blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume request's body as arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume request's body as json (error case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume request's body as formData with correct multipart type (error case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume request's body as formData with correct urlencoded type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume request's body as formData without correct type (error case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume empty blob request body as arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume empty text request body as arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume empty blob request body as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume empty text request body as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume empty URLSearchParams request body as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume empty FormData request body as text",
          "status": "FAIL",
          "message": "assert_equals: Resolved value should be empty expected 0 but got 44"
        },
        {
          "name": "Consume empty ArrayBuffer request body as text",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/request-referrer-redirected-worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "about:client referrer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "url referrer",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/scheme-about.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetching about:blank with method GET is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching about:blank with method PUT is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching about:blank with method POST is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching about:invalid.com with method GET is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching about:config with method GET is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching about:unicorn with method GET is KO",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/cors-rfc1918/idlharness.tentative.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "idl_test setup",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Partial interface Document: original interface defined",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Partial interface WorkerGlobalScope: original interface defined",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: existence and properties of interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Document interface: attribute addressSpace",
          "status": "FAIL",
          "message": "assert_true: The prototype object must have a property \"addressSpace\" expected true got false"
        },
        {
          "name": "Document interface: document must inherit property \"addressSpace\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"addressSpace\" not found in prototype chain"
        }
      ]
    },
    {
      "test": "/fetch/api/basic/referrer.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "origin-when-cross-origin policy on a same-origin URL",
          "status": "PASS",
          "message": null
        },
        {
          "name": "origin-when-cross-origin policy on a cross-origin URL",
          "status": "PASS",
          "message": null
        },
        {
          "name": "origin-when-cross-origin policy on a cross-origin URL after same-origin redirection",
          "status": "PASS",
          "message": null
        },
        {
          "name": "origin-when-cross-origin policy on a same-origin URL after cross-origin redirection",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Referrer with credentials should be stripped",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Referrer with fragment ID should be stripped",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-reset-attributes.https.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Request.isReloadNavigation is reset with non-empty RequestInit",
          "status": "FAIL",
          "message": "assert_equals: expected \"old: false, new: false\" but got \"old: undefined, new: undefined\""
        },
        {
          "name": "Request.isHistoryNavigation is reset with non-empty RequestInit",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request.mode is reset with non-empty RequestInit when it's \"navigate\"",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/headers/headers-normalize.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create headers with not normalized values",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check append method with not normalized values",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check set method with not normalized values",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/object.tentative.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-Origin object",
          "status": "FAIL",
          "message": "assert_not_equals: Empty Sec-Metadata header. got disallowed value \"\""
        },
        {
          "name": "Same-Site object",
          "status": "FAIL",
          "message": "assert_equals: destination expected (string) \"object\" but got (undefined) undefined"
        },
        {
          "name": "Cross-Site object",
          "status": "FAIL",
          "message": "assert_equals: destination expected (string) \"object\" but got (undefined) undefined"
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-cookies.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Omit mode: no cookie sent",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Include mode: 1 cookie",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Include mode: local cookies are not sent with remote request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Include mode: remote cookies are not sent with local request",
          "status": "FAIL",
          "message": "assert_false: Request should have no cookie expected false got true"
        },
        {
          "name": "Same-origin mode: cookies are discarded in cors request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Include mode: remote cookies are not sent with other remote request",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/request-head.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetch with HEAD with body",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-stream-with-broken-then.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Attempt to inject {done: false, value: bye} via Object.prototype.then.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Attempt to inject value: undefined via Object.prototype.then.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Attempt to inject undefined via Object.prototype.then.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Attempt to inject 8.2 via Object.prototype.then.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "intercepting arraybuffer to text conversion via Object.prototype.then should not be possible",
          "status": "PASS",
          "message": null
        },
        {
          "name": "intercepting arraybuffer to body readable stream conversion via Object.prototype.then should not be possible",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/nosniff/stylesheet.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "URL query: null",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: x",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: x/x",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: text/html",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: text/json",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Revalidated URL query: null",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Revalidated URL query: ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Revalidated URL query: x",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Revalidated URL query: x/x",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Revalidated URL query: text/html",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Revalidated URL query: text/json",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: text/css",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: text/css;charset=utf-8",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: text/css;blah",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Revalidated URL query: text/css",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Revalidated URL query: text/css;charset=utf-8",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Revalidated URL query: text/css;blah",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-type-attribute-historical.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "'type' getter should not exist on Request objects",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-from-stream.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Constructing a Response with a stream on which getReader() is called",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Constructing a Response with a stream on which read() is called",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Constructing a Response with a stream on which read() and releaseLock() are called",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/policies/referrer-origin-service-worker.https.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetch in service worker: referrer with no-referrer policy",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request's referrer is origin",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin referrer is overridden by client origin",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-cache-only-if-cached.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "RequestCache \"only-if-cached\" mode checks the cache for previously cached content and avoids revalidation for stale responses with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"only-if-cached\" mode checks the cache for previously cached content and avoids revalidation for stale responses with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"only-if-cached\" mode checks the cache for previously cached content and avoids revalidation for fresh responses with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"only-if-cached\" mode checks the cache for previously cached content and avoids revalidation for fresh responses with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"only-if-cached\" mode checks the cache for previously cached content and does not go to the network if a cached response is not found with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"only-if-cached\" mode checks the cache for previously cached content and does not go to the network if a cached response is not found with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"only-if-cached\" (with \"same-origin\") uses cached same-origin redirects to same-origin content with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"only-if-cached\" (with \"same-origin\") uses cached same-origin redirects to same-origin content with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"only-if-cached\" (with \"same-origin\") uses cached same-origin redirects to same-origin content with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"only-if-cached\" (with \"same-origin\") uses cached same-origin redirects to same-origin content with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"only-if-cached\" (with \"same-origin\") does not follow redirects across origins and rejects with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"only-if-cached\" (with \"same-origin\") does not follow redirects across origins and rejects with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"only-if-cached\" (with \"same-origin\") does not follow redirects across origins and rejects with Etag and stale response",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "RequestCache \"only-if-cached\" (with \"same-origin\") does not follow redirects across origins and rejects with Last-Modified and stale response",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/redirect/redirect-method.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Response.redirected should be false on not-redirected responses",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 301 with GET",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 301 with POST",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 301 with HEAD",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 302 with GET",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 302 with POST",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 302 with HEAD",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 303 with GET",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 303 with POST",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 303 with HEAD",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 307 with GET",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 307 with POST (string body)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 307 with POST (blob body)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 307 with HEAD",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/headers/headers-errors.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create headers giving an array having one string as init argument",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Create headers giving an array having three strings as init argument",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Create headers giving bad header name as init argument",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Create headers giving bad header value as init argument",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check headers get with an invalid name invalidĀ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check headers get with an invalid name [object Object]",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check headers delete with an invalid name invalidĀ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check headers delete with an invalid name [object Object]",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check headers has with an invalid name invalidĀ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check headers has with an invalid name [object Object]",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check headers set with an invalid name invalidĀ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check headers set with an invalid name [object Object]",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check headers set with an invalid value invalidĀ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check headers append with an invalid name invalidĀ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check headers append with an invalid name [object Object]",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check headers append with an invalid value invalidĀ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers forEach throws if argument is not callable",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers forEach loop should stop if callback is throwing exception",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/scheme-others.sub.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetching aaa://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching cap://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching cid://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching dav://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching dict://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching dns://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching geo://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching im://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching imap://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching ipp://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching ldap://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching mailto://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching nfs://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching pop://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching rtsp://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching snmp://webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/request-referrer.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "about:client referrer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "url referrer",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/destination/fetch-destination-no-load-event.https.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Initialize global state",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Background image fetches with an \"image\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Font loading API fetches with an \"font\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CSS font fetches with an \"font\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "sendBeacon() fetches with an empty string Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cache.add() fetches with an empty string Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "importScripts() fetches with a \"script\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "@import fetches with a \"style\" Request.destination",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/redirect/redirect-location.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Redirect 301 in \"follow\" mode without location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 301 in \"manual\" mode without location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 301 in \"follow\" mode with invalid location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 301 in \"manual\" mode with invalid location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 301 in \"follow\" mode with data location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 301 in \"manual\" mode with data location",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "Redirect 302 in \"follow\" mode without location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 302 in \"manual\" mode without location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 302 in \"follow\" mode with invalid location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 302 in \"manual\" mode with invalid location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 302 in \"follow\" mode with data location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 302 in \"manual\" mode with data location",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "Redirect 303 in \"follow\" mode without location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 303 in \"manual\" mode without location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 303 in \"follow\" mode with invalid location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 303 in \"manual\" mode with invalid location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 303 in \"follow\" mode with data location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 303 in \"manual\" mode with data location",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "Redirect 307 in \"follow\" mode without location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 307 in \"manual\" mode without location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 307 in \"follow\" mode with invalid location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 307 in \"manual\" mode with invalid location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 307 in \"follow\" mode with data location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 307 in \"manual\" mode with data location",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "Redirect 308 in \"follow\" mode without location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 308 in \"manual\" mode without location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 308 in \"follow\" mode with invalid location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 308 in \"manual\" mode with invalid location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 308 in \"follow\" mode with data location",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 308 in \"manual\" mode with data location",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        }
      ]
    },
    {
      "test": "/fetch/nosniff/importscripts.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Test importScripts()",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-disturbed.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Request's body: initial state",
          "status": "FAIL",
          "message": "assert_equals: body's default value is null expected (object) null but got (undefined) undefined"
        },
        {
          "name": "Request without body cannot be disturbed",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check cloning a disturbed request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check creating a new request from a disturbed request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check creating a new request with a new body from a disturbed request",
          "status": "FAIL",
          "message": "Failed to construct 'Request': Cannot construct a Request with a Request object that has already been used."
        },
        {
          "name": "Input request used for creating new request became disturbed",
          "status": "FAIL",
          "message": "assert_not_equals: body should not be undefined got disallowed value undefined"
        },
        {
          "name": "Input request used for creating new request became disturbed even if body is not used",
          "status": "FAIL",
          "message": "assert_not_equals: body should not be undefined got disallowed value undefined"
        },
        {
          "name": "Check consuming a disturbed request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request construction failure should not set \"bodyUsed\"",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/serviceworker.tentative.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "serviceworker",
          "status": "FAIL",
          "message": "assert_not_equals: Empty Sec-Metadata header. got disallowed value \"\""
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-multiple-origins.sub.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Listing multiple origins is illegal: \"\",http://example.com,http://webapitests2018.ctawave.org:8000",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Listing multiple origins is illegal: \"\",http://example.com,*",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Listing multiple origins is illegal: \"\",http://webapitests2018.ctawave.org:8000,http://webapitests2018.ctawave.org:8000",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Listing multiple origins is illegal: *,http://example.com,*",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Listing multiple origins is illegal: *,http://example.com,http://webapitests2018.ctawave.org:8000",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Listing multiple origins is illegal: ,http://example.com,https://example2.com",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-error.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "RequestInit's window is not null",
          "status": "FAIL",
          "message": "assert_throws: Expect TypeError exception function \"() => new Request(...args)\" did not throw"
        },
        {
          "name": "Input URL is not valid",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Input URL has credentials",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestInit's mode is navigate",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestInit's referrer is invalid",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestInit's method is invalid",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestInit's method is forbidden",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestInit's mode is no-cors and method is not simple",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestInit's cache mode is only-if-cached and mode is not same-origin",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request with cache mode: only-if-cached and fetch mode cors",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request with cache mode: only-if-cached and fetch mode no-cors",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Bad referrerPolicy init parameter value",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Bad mode init parameter value",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Bad credentials init parameter value",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Bad cache init parameter value",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Bad redirect init parameter value",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request should get its content-type from the init request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request should not get its content-type from the init request if init headers are provided",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request should get its content-type from the body if none is provided",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request should get its content-type from init headers if one is provided",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request with cache mode: only-if-cached and fetch mode: same-origin",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/scheme-blob.sub.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetching [GET] URL.createObjectURL(blob) is OK",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching [GET] blob:http://www.webapitests2018.ctawave.org:8000/ is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching [POST] URL.createObjectURL(blob) is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching [OPTIONS] URL.createObjectURL(blob) is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching [HEAD] URL.createObjectURL(blob) is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching [PUT] URL.createObjectURL(blob) is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching [DELETE] URL.createObjectURL(blob) is KO",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching [INVALID] URL.createObjectURL(blob) is KO",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-clone.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Check cloning a request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check cloning a request copies the headers",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/scheme-data.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetching data:,response%27s%20body is OK",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching data:,response%27s%20body is OK (same-origin)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching data:,response%27s%20body is OK (cors)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching data:text/plain;base64,cmVzcG9uc2UncyBib[...] is OK",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching data:image/png;base64,cmVzcG9uc2UncyBib2[...] is OK",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching [POST] data:,response%27s%20body is OK",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching [HEAD] data:,response%27s%20body is OK",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetching [GET] data:notAdataUrl.com is KO",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/multi-globals/url-parsing.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "should parse the redirect Location URL relative to the current settings object",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/policies/referrer-origin-when-cross-origin.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Request's referrer is origin",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-stream-disturbed-3.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Getting blob after reading the Response body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting text after reading the Response body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting json after reading the Response body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting arrayBuffer after reading the Response body",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/policies/referrer-no-referrer-service-worker.https.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetch in service worker: referrer with no-referrer policy",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request's referrer is empty",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/redirect/redirect-referrer.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Same origin redirection, empty init, unsafe-url redirect header ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin redirection, empty init, no-referrer-when-downgrade redirect header ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin redirection, empty init, same-origin redirect header ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin redirection, empty init, origin redirect header ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin redirection, empty init, origin-when-cross-origin redirect header ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin redirection, empty init, no-referrer redirect header ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin redirection, empty init, strict-origin redirect header ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin redirection, empty init, strict-origin-when-cross-origin redirect header ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin redirection, empty redirect header, unsafe-url init ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin redirection, empty redirect header, no-referrer-when-downgrade init ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin redirection, empty redirect header, same-origin init ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin redirection, empty redirect header, origin init ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin redirection, empty redirect header, origin-when-cross-origin init ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin redirection, empty redirect header, no-referrer init ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin redirection, empty redirect header, strict-origin init ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin redirection, empty redirect header, strict-origin-when-cross-origin init ",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Cross origin redirection, empty init, unsafe-url redirect header ",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross origin redirection, empty init, no-referrer-when-downgrade redirect header ",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross origin redirection, empty init, same-origin redirect header ",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross origin redirection, empty init, origin redirect header ",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross origin redirection, empty init, origin-when-cross-origin redirect header ",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross origin redirection, empty init, no-referrer redirect header ",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross origin redirection, empty init, strict-origin redirect header ",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross origin redirection, empty init, strict-origin-when-cross-origin redirect header ",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross origin redirection, empty redirect header, unsafe-url init ",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross origin redirection, empty redirect header, no-referrer-when-downgrade init ",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross origin redirection, empty redirect header, same-origin init ",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross origin redirection, empty redirect header, origin init ",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross origin redirection, empty redirect header, origin-when-cross-origin init ",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross origin redirection, empty redirect header, no-referrer init ",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross origin redirection, empty redirect header, strict-origin init ",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross origin redirection, empty redirect header, strict-origin-when-cross-origin init ",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/data-urls/processing.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Setup.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data://test/,X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data://test:test/,X\"",
          "status": "FAIL",
          "message": "assert_unreached: Should have rejected: undefined Reached unreachable code"
        },
        {
          "name": "\"data:,X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:text/html\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:text/html    ;charset=x   \"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:,\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:,X#X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:,%FF\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:text/plain,X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:text/plain ,X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:text/plain%20,X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:text/plain\\f,X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:text/plain%0C,X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:text/plain;,X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:;x=x;charset=x,X\"",
          "status": "FAIL",
          "message": "assert_equals: expected \"text/plain;x=x;charset=x\" but got \"text/plain;charset=x\""
        },
        {
          "name": "\"data:;x=x,X\"",
          "status": "FAIL",
          "message": "assert_equals: expected \"text/plain;x=x\" but got \"text/plain;charset=US-ASCII\""
        },
        {
          "name": "\"data:text/plain;charset=windows-1252,%C2%B1\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:text/plain;Charset=UTF-8,%C2%B1\"",
          "status": "FAIL",
          "message": "assert_equals: expected \"text/plain;charset=UTF-8\" but got \"text/plain\""
        },
        {
          "name": "\"data:image/gif,%C2%B1\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:IMAGE/gif,%C2%B1\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:IMAGE/gif;hi=x,%C2%B1\"",
          "status": "FAIL",
          "message": "assert_equals: expected \"image/gif;hi=x\" but got \"image/gif\""
        },
        {
          "name": "\"data:IMAGE/gif;CHARSET=x,%C2%B1\"",
          "status": "FAIL",
          "message": "assert_equals: expected \"image/gif;charset=x\" but got \"image/gif\""
        },
        {
          "name": "\"data: ,%FF\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:%20,%FF\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:\\f,%FF\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:%1F,%FF\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:\\0,%FF\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:%00,%FF\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:text/html  ,X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:text / html,X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:†,X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:†/†,X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:X,X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:image/png,X X\"",
          "status": "FAIL",
          "message": "assert_array_equals: lengths differ, expected 3 got 2"
        },
        {
          "name": "\"data:application/javascript,X X\"",
          "status": "FAIL",
          "message": "assert_array_equals: lengths differ, expected 3 got 2"
        },
        {
          "name": "\"data:application/xml,X X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:text/javascript,X X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:text/plain,X X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:unknown/unknown,X X\"",
          "status": "FAIL",
          "message": "assert_array_equals: lengths differ, expected 3 got 2"
        },
        {
          "name": "\"data:text/plain;a=\\\",\\\",X\"",
          "status": "FAIL",
          "message": "assert_equals: expected \"text/plain;a=\\\"\\\"\" but got \"text/plain\""
        },
        {
          "name": "\"data:text/plain;a=%2C,X\"",
          "status": "FAIL",
          "message": "assert_equals: expected \"text/plain;a=%2C\" but got \"text/plain\""
        },
        {
          "name": "\"data:;base64;base64,WA\"",
          "status": "FAIL",
          "message": "assert_equals: expected \"text/plain\" but got \"text/plain;charset=US-ASCII\""
        },
        {
          "name": "\"data:x/x;base64;base64,WA\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:x/x;base64;charset=x,WA\"",
          "status": "FAIL",
          "message": "assert_array_equals: lengths differ, expected 2 got 1"
        },
        {
          "name": "\"data:x/x;base64;charset=x;base64,WA\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:x/x;base64;base64x,WA\"",
          "status": "FAIL",
          "message": "assert_array_equals: lengths differ, expected 2 got 1"
        },
        {
          "name": "\"data:;base64,W%20A\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:;base64,W%0CA\"",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "\"data:x;base64x,WA\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:x;base64;x,WA\"",
          "status": "FAIL",
          "message": "assert_array_equals: lengths differ, expected 2 got 1"
        },
        {
          "name": "\"data:x;base64=x,WA\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:; base64,WA\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:;  base64,WA\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:  ;charset=x   ;  base64,WA\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:;base64;,WA\"",
          "status": "FAIL",
          "message": "assert_array_equals: lengths differ, expected 2 got 1"
        },
        {
          "name": "\"data:;base64 ,WA\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:;base64   ,WA\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:;base 64,WA\"",
          "status": "FAIL",
          "message": "assert_equals: expected \"text/plain\" but got \"text/plain;charset=US-ASCII\""
        },
        {
          "name": "\"data:;BASe64,WA\"",
          "status": "FAIL",
          "message": "assert_array_equals: lengths differ, expected 1 got 2"
        },
        {
          "name": "\"data:;%62ase64,WA\"",
          "status": "FAIL",
          "message": "assert_equals: expected \"text/plain\" but got \"text/plain;charset=US-ASCII\""
        },
        {
          "name": "\"data:%3Bbase64,WA\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:;charset=x,X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:; charset=x,X\"",
          "status": "PASS",
          "message": null
        },
        {
          "name": "\"data:;charset =x,X\"",
          "status": "FAIL",
          "message": "assert_equals: expected \"text/plain\" but got \"text/plain;charset=US-ASCII\""
        },
        {
          "name": "\"data:;charset= x,X\"",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "\"data:;charset=,X\"",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "\"data:;charset,X\"",
          "status": "FAIL",
          "message": "assert_equals: expected \"text/plain\" but got \"text/plain;charset=US-ASCII\""
        },
        {
          "name": "\"data:;charset=\\\"x\\\",X\"",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "\"data:;CHARSET=\\\"X\\\",X\"",
          "status": "FAIL",
          "message": "assert_equals: expected \"text/plain;charset=X\" but got \"text/plain;charset=US-ASCII\""
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/redirect/same-site-redirect.tentative.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-Site -> Same-Origin redirect",
          "status": "FAIL",
          "message": "assert_equals: destination expected (string) \"image\" but got (undefined) undefined"
        },
        {
          "name": "Same-Site -> Same-Site redirect",
          "status": "FAIL",
          "message": "assert_equals: destination expected (string) \"image\" but got (undefined) undefined"
        },
        {
          "name": "Same-Site -> Cross-Site redirect",
          "status": "FAIL",
          "message": "assert_equals: destination expected (string) \"image\" but got (undefined) undefined"
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-redirect.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Redirect 301: cors to same cors",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 301: cors to another cors",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Redirect 301: same origin to cors",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 301: cors to same origin",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302: cors to same cors",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302: cors to another cors",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302: same origin to cors",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302: cors to same origin",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303: cors to same cors",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303: cors to another cors",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303: same origin to cors",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303: cors to same origin",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307: cors to same cors",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307: cors to another cors",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307: same origin to cors",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307: cors to same origin",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308: cors to same cors",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308: cors to another cors",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308: same origin to cors",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308: cors to same origin",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/security/redirect-to-url-with-credentials.https.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "No CORS fetch after a redirect with an URL containing credentials",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "CORS fetch after a redirect with a cross origin URL containing credentials",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS fetch after a redirect with a same origin URL containing credentials",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "Image loading after a redirect with an URL containing credentials",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"[object Event]\""
        },
        {
          "name": "CORS Image loading after a redirect with a cross origin URL containing credentials",
          "status": "PASS",
          "message": null
        },
        {
          "name": "CORS Image loading after a redirect with a same origin URL containing credentials",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"[object Event]\""
        },
        {
          "name": "Frame loading after a redirect with an URL containing credentials",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/fetch.tentative.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin fetch",
          "status": "FAIL",
          "message": "assert_not_equals: Empty Sec-Metadata header. got disallowed value \"\""
        },
        {
          "name": "Same-site fetch",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        },
        {
          "name": "Cross-site fetch",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        }
      ]
    },
    {
      "test": "/fetch/range/general.window.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Script executed from partial response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with range header will be sent with Accept-Encoding: identity",
          "status": "FAIL",
          "message": "assert_equals: Expect identity accept-encoding on media request expected \"identity\" but got \"identity;q=1, *;q=0\""
        }
      ]
    },
    {
      "test": "/fetch/cross-origin-resource-policy/iframe-loads.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Load an iframe that has Cross-Origin-Resource-Policy header",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"[object Response]\""
        }
      ]
    },
    {
      "test": "/fetch/api/request/multi-globals/url-parsing.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "should parse the URL relative to the current settings object",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/nosniff/image.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "URL query: null",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: x",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: x/x",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: image/gif",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: image/png",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: image/png;blah",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: image/svg+xml",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: text/html",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: application/xml",
          "status": "PASS",
          "message": null
        },
        {
          "name": "URL query: application/blah+xml",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/corb/style-css-mislabeled-as-html.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "style-css-mislabeled-as-html",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-basic.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Same domain different port [no-cors mode]",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same domain different port [server forbid CORS]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same domain different port [cors mode]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same domain different protocol different port [no-cors mode]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same domain different protocol different port [server forbid CORS]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same domain different protocol different port [cors mode]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain basic usage [no-cors mode]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain basic usage [server forbid CORS]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain basic usage [cors mode]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain different port [no-cors mode]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain different port [server forbid CORS]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain different port [cors mode]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain different protocol [no-cors mode]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain different protocol [server forbid CORS]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain different protocol [cors mode]",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/http-cache/freshness.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "HTTP cache reuses a response with a future Expires",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache does not reuse a response with a past Expires",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache does not reuse a response with a present Expires",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache does not reuse a response with an invalid Expires",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache reuses a response with positive Cache-Control: max-age",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache does not reuse a response with Cache-Control: max-age=0",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache reuses a response with positive Cache-Control: max-age and a past Expires",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache reuses a response with positive Cache-Control: max-age and an invalid Expires",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache does not reuse a response with Cache-Control: max-age=0 and a future Expires",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache does not prefer Cache-Control: s-maxage over Cache-Control: max-age",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache does not reuse a response when the Age header is greater than its freshness lifetime",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache does not store a response with Cache-Control: no-store",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache does not store a response with Cache-Control: no-store, even with max-age and Expires",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache stores a response with Cache-Control: no-cache, but revalidates upon use",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache stores a response with Cache-Control: no-cache, but revalidates upon use, even with max-age and Expires",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/cross-origin-resource-policy/script-loads.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin script load with a 'Cross-Origin-Resource-Policy: same-origin' response header.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin script load with a 'Cross-Origin-Resource-Policy: same-site' response header.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin cors script load with a 'Cross-Origin-Resource-Policy: same-origin' response header.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"[object Event]\""
        },
        {
          "name": "Cross-origin cors script load with a 'Cross-Origin-Resource-Policy: same-site' response header.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"[object Event]\""
        },
        {
          "name": "Cross-origin no-cors script load with a 'Cross-Origin-Resource-Policy: same-origin' response header.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin no-cors script load with a 'Cross-Origin-Resource-Policy: same-site' response header.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/cross-origin-resource-policy/syntax.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Parsing Cross-Origin-Resource-Policy: same",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Parsing Cross-Origin-Resource-Policy: same, same-origin",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Parsing Cross-Origin-Resource-Policy: SAME-ORIGIN",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Parsing Cross-Origin-Resource-Policy: Same-Origin",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Parsing Cross-Origin-Resource-Policy: same-origin, <>",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Parsing Cross-Origin-Resource-Policy: same-origin, same-origin",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-cache-default-conditional.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "RequestCache \"default\" mode with an If-Modified-Since header (following a request without additional headers) is treated similarly to \"no-store\" with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Modified-Since header (following a request without additional headers) is treated similarly to \"no-store\" with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Modified-Since header (following a request without additional headers) is treated similarly to \"no-store\" with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Modified-Since header (following a request without additional headers) is treated similarly to \"no-store\" with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Modified-Since header is treated similarly to \"no-store\" with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Modified-Since header is treated similarly to \"no-store\" with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Modified-Since header is treated similarly to \"no-store\" with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Modified-Since header is treated similarly to \"no-store\" with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-None-Match header (following a request without additional headers) is treated similarly to \"no-store\" with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-None-Match header (following a request without additional headers) is treated similarly to \"no-store\" with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-None-Match header (following a request without additional headers) is treated similarly to \"no-store\" with Etag and fresh response",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "RequestCache \"default\" mode with an If-None-Match header (following a request without additional headers) is treated similarly to \"no-store\" with Last-Modified and fresh response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-None-Match header is treated similarly to \"no-store\" with Etag and stale response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-None-Match header is treated similarly to \"no-store\" with Last-Modified and stale response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-None-Match header is treated similarly to \"no-store\" with Etag and fresh response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-None-Match header is treated similarly to \"no-store\" with Last-Modified and fresh response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Unmodified-Since header (following a request without additional headers) is treated similarly to \"no-store\" with Etag and stale response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Unmodified-Since header (following a request without additional headers) is treated similarly to \"no-store\" with Last-Modified and stale response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Unmodified-Since header (following a request without additional headers) is treated similarly to \"no-store\" with Etag and fresh response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Unmodified-Since header (following a request without additional headers) is treated similarly to \"no-store\" with Last-Modified and fresh response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Unmodified-Since header is treated similarly to \"no-store\" with Etag and stale response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Unmodified-Since header is treated similarly to \"no-store\" with Last-Modified and stale response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Unmodified-Since header is treated similarly to \"no-store\" with Etag and fresh response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Unmodified-Since header is treated similarly to \"no-store\" with Last-Modified and fresh response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Match header (following a request without additional headers) is treated similarly to \"no-store\" with Etag and stale response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Match header (following a request without additional headers) is treated similarly to \"no-store\" with Last-Modified and stale response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Match header (following a request without additional headers) is treated similarly to \"no-store\" with Etag and fresh response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Match header (following a request without additional headers) is treated similarly to \"no-store\" with Last-Modified and fresh response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Match header is treated similarly to \"no-store\" with Etag and stale response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Match header is treated similarly to \"no-store\" with Last-Modified and stale response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Match header is treated similarly to \"no-store\" with Etag and fresh response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Match header is treated similarly to \"no-store\" with Last-Modified and fresh response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Range header (following a request without additional headers) is treated similarly to \"no-store\" with Etag and stale response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Range header (following a request without additional headers) is treated similarly to \"no-store\" with Last-Modified and stale response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Range header (following a request without additional headers) is treated similarly to \"no-store\" with Etag and fresh response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Range header (following a request without additional headers) is treated similarly to \"no-store\" with Last-Modified and fresh response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Range header is treated similarly to \"no-store\" with Etag and stale response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Range header is treated similarly to \"no-store\" with Last-Modified and stale response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Range header is treated similarly to \"no-store\" with Etag and fresh response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode with an If-Range header is treated similarly to \"no-store\" with Last-Modified and fresh response",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/cross-origin-resource-policy/scheme-restriction.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Cross-Origin-Resource-Policy: same-site blocks retrieving HTTPS from HTTP",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/stream-response.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Stream response's body",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-preflight-not-cors-safelisted.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Loading data…",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Need CORS-preflight for accept/\" header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Need CORS-preflight for accept/012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Need CORS-preflight for accept-language/\u0001 header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Need CORS-preflight for accept-language/@ header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Need CORS-preflight for content-language/\u0001 header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Need CORS-preflight for content-language/@ header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Need CORS-preflight for content-type/text/html header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Need CORS-preflight for content-type/text/plain; long=0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901 header",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Need CORS-preflight for test/hi header",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-stream-disturbed-4.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Getting blob after cancelling the Response body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting text after cancelling the Response body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting json after cancelling the Response body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting arrayBuffer after cancelling the Response body",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-consume.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Consume String request's body as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume String request's body as blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume String request's body as arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume String request's body as JSON",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume ArrayBuffer request's body as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume ArrayBuffer request's body as blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume ArrayBuffer request's body as arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume ArrayBuffer request's body as JSON",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume Uint8Array request's body as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume Uint8Array request's body as blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume Uint8Array request's body as arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume Uint8Array request's body as JSON",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume Int8Array request's body as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume Int8Array request's body as blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume Int8Array request's body as arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume Int8Array request's body as JSON",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume Float32Array request's body as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume Float32Array request's body as blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume Float32Array request's body as arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume Float32Array request's body as JSON",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume DataView request's body as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume DataView request's body as blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume DataView request's body as arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume DataView request's body as JSON",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume FormData request's body as FormData",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume blob response's body as blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume blob response's body as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume blob response's body as json",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume blob response's body as arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume blob response's body as blob (empty blob as input)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume JSON from text: '\"null\"'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume JSON from text: '\"1\"'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume JSON from text: '\"true\"'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume JSON from text: '\"\\\"string\\\"\"'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Trying to consume bad JSON text as JSON: 'undefined'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Trying to consume bad JSON text as JSON: '{'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Trying to consume bad JSON text as JSON: 'a'",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Trying to consume bad JSON text as JSON: '['",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/track.tentative.https.sub.html",
      "status": "ERROR",
      "message": "assert_not_equals: Empty Sec-Metadata header. got disallowed value \"\"",
      "subtests": [
        {
          "name": "Same-Origin track",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-Site track",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross-Site track",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/destination/fetch-destination.https.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Initialize global state",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLImageElement fetches with an \"image\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLImageElement with srcset attribute fetches with an \"image\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLImageElement with a HTMLPictureElement parent attribute fetches with an \"image\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "SVGImageElement fetches with an \"image\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "fetch() fetches with an empty string Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "XMLHttpRequest() fetches with an empty string Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "EventSource() fetches with an empty string Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLAudioElement fetches with an \"audio\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLVideoElement fetches with a \"video\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLScriptElement fetches with a \"script\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLLinkElement with rel=stylesheet fetches with a \"style\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLLinkElement with rel=preload and as=fetch fetches with an empty string Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLLinkElement with rel=preload and as=style fetches with a \"style\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLLinkElement with rel=preload and as=script fetches with a \"script\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLLinkElement with rel=preload and as=font fetches with a \"font\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLLinkElement with rel=preload and as=image fetches with a \"image\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLLinkElement with rel=preload and as=audio fetches with a \"audio\" Request.destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTMLLinkElement with rel=preload and as=video fetches with a \"video\" Request.destination",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "HTMLLinkElement with rel=preload and as=track fetches with a \"track\" Request.destination",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTMLLinkElement with rel=preload and as=document fetches with a \"document\" Request.destination",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTMLLinkElement with rel=preload and as=worker fetches with a \"worker\" Request.destination",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTMLLinkElement with rel=preload and as=sharedworker fetches with a \"sharedworker\" Request.destination",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTMLLinkElement with rel=preload and as=xslt fetches with a \"xslt\" Request.destination",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "HTMLLinkElement with rel=preload and as=manifest fetches with a \"manifest\" Request.destination",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/cross-origin-resource-policy/image-loads.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin image load with a 'Cross-Origin-Resource-Policy: same-origin' response header.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same-origin image load with a 'Cross-Origin-Resource-Policy: same-site' response header.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin cors image load with a 'Cross-Origin-Resource-Policy: same-origin' response header.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"[object Event]\""
        },
        {
          "name": "Cross-origin cors image load with a 'Cross-Origin-Resource-Policy: same-site' response header.",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"[object Event]\""
        },
        {
          "name": "Cross-origin no-cors image load with a 'Cross-Origin-Resource-Policy: same-origin' response header.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin no-cors image load with a 'Cross-Origin-Resource-Policy: same-site' response header.",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "fetch/api/request/request-keepalive-quota.html?include=fast",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "status": "TIMEOUT",
          "xstatus": "SERVERTIMEOUT"
        }
      ]
    },
    {
      "test": "/fetch/api/redirect/redirect-schemes.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetch: handling different schemes in redirects",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: handling different schemes in redirects 1",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: handling different schemes in redirects 2",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: handling different schemes in redirects 3",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: handling different schemes in redirects 4",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch: handling different schemes in redirects 5",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/redirect-navigate/302-found-post.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "HTTP 302 Found POST Navigation",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/request-forbidden-headers.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Accept-Charset is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Accept-Encoding is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Access-Control-Request-Headers is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Access-Control-Request-Method is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Connection is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Content-Length is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cookie is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cookie2 is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Date is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "DNT is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Expect is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Host is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Keep-Alive is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Origin is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Referer is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "TE is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Trailer is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Transfer-Encoding is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Upgrade is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Via is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Proxy- is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Proxy-Test is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Sec- is a forbidden request header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Sec-Test is a forbidden request header",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/iframe.tentative.https.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin iframe",
          "status": "FAIL",
          "message": "assert_not_equals: Empty Sec-Metadata header. got disallowed value \"\""
        },
        {
          "name": "Same-site iframe",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Cross-site iframe",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-cache-reload.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "RequestCache \"reload\" mode does not check the cache for previously cached content and goes to the network regardless with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"reload\" mode does not check the cache for previously cached content and goes to the network regardless with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"reload\" mode does not check the cache for previously cached content and goes to the network regardless with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"reload\" mode does not check the cache for previously cached content and goes to the network regardless with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"reload\" mode does store the response in the cache with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"reload\" mode does store the response in the cache with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"reload\" mode does store the response in the cache with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"reload\" mode does store the response in the cache with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"reload\" mode does store the response in the cache even if a previous response is already stored with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"reload\" mode does store the response in the cache even if a previous response is already stored with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"reload\" mode does store the response in the cache even if a previous response is already stored with Etag and fresh response",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "RequestCache \"reload\" mode does store the response in the cache even if a previous response is already stored with Last-Modified and fresh response",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-stream-disturbed-2.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Getting blob after getting a locked Response body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting text after getting a locked Response body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting json after getting a locked Response body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting arrayBuffer after getting a locked Response body",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-cache-default.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "RequestCache \"default\" mode checks the cache for previously cached content and goes to the network for stale responses with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode checks the cache for previously cached content and goes to the network for stale responses with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode checks the cache for previously cached content and avoids going to the network if a fresh response exists with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"default\" mode checks the cache for previously cached content and avoids going to the network if a fresh response exists with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Responses with the \"Cache-Control: no-store\" header are not stored in the cache with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Responses with the \"Cache-Control: no-store\" header are not stored in the cache with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Responses with the \"Cache-Control: no-store\" header are not stored in the cache with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Responses with the \"Cache-Control: no-store\" header are not stored in the cache with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-error-from-stream.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "ReadableStreamDefaultReader Promise receives ReadableStream start() Error",
          "status": "PASS",
          "message": null
        },
        {
          "name": "ReadableStreamDefaultReader Promise receives ReadableStream pull() Error",
          "status": "PASS",
          "message": null
        },
        {
          "name": "ReadableStream start() Error propagates to Response.arrayBuffer() Promise",
          "status": "FAIL",
          "message": "assert_throws: CustomTestError should propagate function \"function() { throw e }\" threw object \"TypeError: Failed to fetch\" (\"TypeError\") expected object \"custom-test-error\" (\"custom-test-error\")"
        },
        {
          "name": "ReadableStream start() Error propagates to Response.blob() Promise",
          "status": "FAIL",
          "message": "assert_throws: CustomTestError should propagate function \"function() { throw e }\" threw object \"TypeError: Failed to fetch\" (\"TypeError\") expected object \"custom-test-error\" (\"custom-test-error\")"
        },
        {
          "name": "ReadableStream start() Error propagates to Response.formData() Promise",
          "status": "FAIL",
          "message": "assert_throws: CustomTestError should propagate function \"function() { throw e }\" threw object \"TypeError: Failed to fetch\" (\"TypeError\") expected object \"custom-test-error\" (\"custom-test-error\")"
        },
        {
          "name": "ReadableStream start() Error propagates to Response.json() Promise",
          "status": "FAIL",
          "message": "assert_throws: CustomTestError should propagate function \"function() { throw e }\" threw object \"TypeError: Failed to fetch\" (\"TypeError\") expected object \"custom-test-error\" (\"custom-test-error\")"
        },
        {
          "name": "ReadableStream start() Error propagates to Response.text() Promise",
          "status": "FAIL",
          "message": "assert_throws: CustomTestError should propagate function \"function() { throw e }\" threw object \"TypeError: Failed to fetch\" (\"TypeError\") expected object \"custom-test-error\" (\"custom-test-error\")"
        },
        {
          "name": "ReadableStream pull() Error propagates to Response.arrayBuffer() Promise",
          "status": "FAIL",
          "message": "assert_throws: CustomTestError should propagate function \"function() { throw e }\" threw object \"TypeError: Failed to fetch\" (\"TypeError\") expected object \"custom-test-error\" (\"custom-test-error\")"
        },
        {
          "name": "ReadableStream pull() Error propagates to Response.blob() Promise",
          "status": "FAIL",
          "message": "assert_throws: CustomTestError should propagate function \"function() { throw e }\" threw object \"TypeError: Failed to fetch\" (\"TypeError\") expected object \"custom-test-error\" (\"custom-test-error\")"
        },
        {
          "name": "ReadableStream pull() Error propagates to Response.formData() Promise",
          "status": "FAIL",
          "message": "assert_throws: CustomTestError should propagate function \"function() { throw e }\" threw object \"TypeError: Failed to fetch\" (\"TypeError\") expected object \"custom-test-error\" (\"custom-test-error\")"
        },
        {
          "name": "ReadableStream pull() Error propagates to Response.json() Promise",
          "status": "FAIL",
          "message": "assert_throws: CustomTestError should propagate function \"function() { throw e }\" threw object \"TypeError: Failed to fetch\" (\"TypeError\") expected object \"custom-test-error\" (\"custom-test-error\")"
        },
        {
          "name": "ReadableStream pull() Error propagates to Response.text() Promise",
          "status": "FAIL",
          "message": "assert_throws: CustomTestError should propagate function \"function() { throw e }\" threw object \"TypeError: Failed to fetch\" (\"TypeError\") expected object \"custom-test-error\" (\"custom-test-error\")"
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-trailer.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "trailer() test",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Cannot read property 'then' of undefined\""
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-static-redirect.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Check default redirect response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check response returned by static method redirect(), status = 301",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check response returned by static method redirect(), status = 302",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check response returned by static method redirect(), status = 303",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check response returned by static method redirect(), status = 307",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check response returned by static method redirect(), status = 308",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check error returned when giving invalid url to redirect()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check error returned when giving invalid status to redirect(), status = 200",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check error returned when giving invalid status to redirect(), status = 309",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check error returned when giving invalid status to redirect(), status = 400",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check error returned when giving invalid status to redirect(), status = 500",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/request-headers-case.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Multiple headers with the same name, different case (THIS-is-A-test first)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Multiple headers with the same name, different case (THIS-IS-A-TEST first)",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/style.tentative.https.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Same-Origin style",
          "status": "FAIL",
          "message": "assert_not_equals: Empty Sec-Metadata header. got disallowed value \"\""
        },
        {
          "name": "Same-Site style",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Cross-Site style",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/corb/style-css-mislabeled-as-html-nosniff.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "style-css-mislabeled-as-html-nosniff",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-init-001.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Check method init value of GET and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check method init value of HEAD and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check method init value of POST and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check method init value of PUT and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check method init value of DELETE and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check method init value of OPTIONS and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check method init value of head and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrer init value of /relative/ressource and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrer init value of http://webapitests2018.ctawave.org:8000/relative/ressource?query=true#fragment and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrer init value of http://webapitests2018.ctawave.org:8000/ and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrer init value of http://test.url and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrer init value of about:client and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrer init value of  and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrerPolicy init value of  and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrerPolicy init value of no-referrer and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrerPolicy init value of no-referrer-when-downgrade and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrerPolicy init value of origin and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrerPolicy init value of origin-when-cross-origin and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrerPolicy init value of unsafe-url and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrerPolicy init value of same-origin and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrerPolicy init value of strict-origin and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrerPolicy init value of strict-origin-when-cross-origin and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check mode init value of same-origin and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check mode init value of no-cors and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check mode init value of cors and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check credentials init value of omit and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check credentials init value of same-origin and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check credentials init value of include and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check cache init value of default and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check cache init value of no-store and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check cache init value of reload and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check cache init value of no-cache and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check cache init value of force-cache and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check redirect init value of follow and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check redirect init value of error and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check redirect init value of manual and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check integrity init value of  and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check integrity init value of AZERTYUIOP1234567890 and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check window init value of null and associated getter",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-stream-disturbed-5.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Getting a body reader after consuming as blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting a body reader after consuming as text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting a body reader after consuming as json",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting a body reader after consuming as arrayBuffer",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-stream-disturbed-6.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "A non-closed stream on which read() has been called",
          "status": "PASS",
          "message": null
        },
        {
          "name": "A non-closed stream on which cancel() has been called",
          "status": "PASS",
          "message": null
        },
        {
          "name": "A closed stream on which read() has been called",
          "status": "PASS",
          "message": null
        },
        {
          "name": "An errored stream on which read() has been called",
          "status": "PASS",
          "message": null
        },
        {
          "name": "An errored stream on which cancel() has been called",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/header-value-null-byte.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Ensure fetch() rejects null bytes in headers",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/corb/script-html-correctly-labeled.tentative.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "CORB-blocked script has no syntax errors",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-stream-disturbed-1.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Getting blob after getting the Response body - not disturbed, not locked",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting text after getting the Response body - not disturbed, not locked",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting json after getting the Response body - not disturbed, not locked",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting arrayBuffer after getting the Response body - not disturbed, not locked",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-init-002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Initialize Request with headers values",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Initialize Request's body with \"undefined\", undefined",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Initialize Request's body with \"null\", null",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Initialize Request's body with \"[object Blob]\", application/octet-binary",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Initialize Request's body with \"[object FormData]\", multipart/form-data",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Initialize Request's body with \"This is a USVString\", text/plain;charset=UTF-8",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Initialize Request's body with \"hi!\", text/plain;charset=UTF-8",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Initialize Request's body with \"name=value\", application/x-www-form-urlencoded;charset=UTF-8",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/conditional-get.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Testing conditional GET with ETags",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "fetch/sec-metadata/worker.tentative.https.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "status": "TIMEOUT",
          "xstatus": "SERVERTIMEOUT"
        }
      ]
    },
    {
      "test": "/fetch/api/cors/sandboxed-iframe.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "CORS with sandboxed iframe",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/img.tentative.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-origin image",
          "status": "FAIL",
          "message": "loadImageInWindow is not defined"
        },
        {
          "name": "Same-site image",
          "status": "FAIL",
          "message": "loadImageInWindow is not defined"
        },
        {
          "name": "Cross-site image",
          "status": "FAIL",
          "message": "loadImageInWindow is not defined"
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-init-001.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Check default value for type attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check default value for url attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check default value for ok attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check default value for status attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check default value for statusText attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check default value for body attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check status init values and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check statusText init values and associated getter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Test that Response.headers has the [SameObject] extended attribute",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-redirect-preflight.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Redirect 301: same origin to cors (preflight after redirection success case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 301: same origin to cors (preflight after redirection failure case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 301: cors to same origin (preflight after redirection success case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 301: cors to same origin (preflight after redirection failure case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Redirect 301: cors to another cors (preflight after redirection success case)",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Redirect 301: cors to another cors (preflight after redirection failure case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302: same origin to cors (preflight after redirection success case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302: same origin to cors (preflight after redirection failure case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302: cors to same origin (preflight after redirection success case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302: cors to same origin (preflight after redirection failure case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302: cors to another cors (preflight after redirection success case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 302: cors to another cors (preflight after redirection failure case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303: same origin to cors (preflight after redirection success case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303: same origin to cors (preflight after redirection failure case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303: cors to same origin (preflight after redirection success case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303: cors to same origin (preflight after redirection failure case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303: cors to another cors (preflight after redirection success case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 303: cors to another cors (preflight after redirection failure case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307: same origin to cors (preflight after redirection success case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307: same origin to cors (preflight after redirection failure case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307: cors to same origin (preflight after redirection success case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307: cors to same origin (preflight after redirection failure case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307: cors to another cors (preflight after redirection success case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 307: cors to another cors (preflight after redirection failure case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308: same origin to cors (preflight after redirection success case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308: same origin to cors (preflight after redirection failure case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308: cors to same origin (preflight after redirection success case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308: cors to same origin (preflight after redirection failure case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308: cors to another cors (preflight after redirection success case)",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Redirect 308: cors to another cors (preflight after redirection failure case)",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/redirect/redirect-mode.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "same-origin redirect 301 in error redirect and cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 301 in error redirect and no-cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 301 in manual redirect and cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 301 in manual redirect and no-cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 301 in follow redirect and cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 301 in follow redirect and no-cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 302 in error redirect and cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 302 in error redirect and no-cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 302 in manual redirect and cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 302 in manual redirect and no-cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 302 in follow redirect and cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 302 in follow redirect and no-cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 303 in error redirect and cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 303 in error redirect and no-cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 303 in manual redirect and cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 303 in manual redirect and no-cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 303 in follow redirect and cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 303 in follow redirect and no-cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 307 in error redirect and cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 307 in error redirect and no-cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 307 in manual redirect and cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 307 in manual redirect and no-cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 307 in follow redirect and cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 307 in follow redirect and no-cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 308 in error redirect and cors mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "same-origin redirect 308 in error redirect and no-cors mode",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "same-origin redirect 308 in manual redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "same-origin redirect 308 in manual redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "same-origin redirect 308 in follow redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "same-origin redirect 308 in follow redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 301 in error redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 301 in error redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 301 in manual redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 301 in manual redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 301 in follow redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 301 in follow redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 302 in error redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 302 in error redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 302 in manual redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 302 in manual redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 302 in follow redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 302 in follow redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 303 in error redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 303 in error redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 303 in manual redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 303 in manual redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 303 in follow redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 303 in follow redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 307 in error redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 307 in error redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 307 in manual redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 307 in manual redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 307 in follow redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 307 in follow redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 308 in error redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 308 in error redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 308 in manual redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 308 in manual redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 308 in follow redirect and cors mode",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "cross-origin redirect 308 in follow redirect and no-cors mode",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/text-utf8.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "UTF-8 with BOM with Request.text()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-8 with BOM with Response.text()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-8 with BOM with fetched data (UTF-8 charset)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-8 with BOM with fetched data (UTF-16 charset)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-8 with BOM (Response object)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-8 with BOM (Request object)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-8 without BOM with Request.text()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-8 without BOM with Response.text()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-8 without BOM with fetched data (UTF-8 charset)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-8 without BOM with fetched data (UTF-16 charset)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-8 without BOM (Response object)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-8 without BOM (Request object)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16BE with BOM decoded as UTF-8 with Request.text()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16BE with BOM decoded as UTF-8 with Response.text()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16BE with BOM decoded as UTF-8 with fetched data (UTF-8 charset)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16BE with BOM decoded as UTF-8 with fetched data (UTF-16 charset)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16BE with BOM decoded as UTF-8 (Response object)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16BE with BOM decoded as UTF-8 (Request object)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16LE with BOM decoded as UTF-8 with Request.text()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16LE with BOM decoded as UTF-8 with Response.text()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16LE with BOM decoded as UTF-8 with fetched data (UTF-8 charset)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16LE with BOM decoded as UTF-8 with fetched data (UTF-16 charset)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16LE with BOM decoded as UTF-8 (Response object)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16LE with BOM decoded as UTF-8 (Request object)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16 without BOM decoded as UTF-8 with Request.text()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16 without BOM decoded as UTF-8 with Response.text()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16 without BOM decoded as UTF-8 with fetched data (UTF-8 charset)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16 without BOM decoded as UTF-8 with fetched data (UTF-16 charset)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16 without BOM decoded as UTF-8 (Response object)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "UTF-16 without BOM decoded as UTF-8 (Request object)",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Same-Origin -> Same-Site -> Same-Origin redirect",
          "status": "FAIL",
          "message": "assert_equals: destination expected (string) \"image\" but got (undefined) undefined"
        }
      ]
    },
    {
      "test": "/fetch/origin/no-cors.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Origin header and 308 redirect",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/policies/csp-blocked-worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Fetch is blocked by CSP, got a TypeError",
          "status": "FAIL",
          "message": "assert_unreached: Should have rejected: undefined Reached unreachable code"
        }
      ]
    },
    {
      "test": "/fetch/api/request/destination/fetch-destination-iframe.https.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Initialize global state",
          "status": "PASS",
          "message": null
        },
        {
          "name": "iframe fetches with a \"document\" Request.destination",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/cors/cors-no-preflight.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Cross domain basic usage [GET]",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same domain different port [GET]",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Cross domain different port [GET]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain different protocol [GET]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same domain different protocol different port [GET]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain [POST]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain [HEAD]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain [GET] [Accept: */*]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain [GET] [Accept-Language: fr]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain [GET] [Content-Language: fr]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain [GET] [Content-Type: application/x-www-form-urlencoded]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain [GET] [Content-Type: multipart/form-data]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain [GET] [Content-Type: text/plain]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain [GET] [Content-Type: text/plain;charset=utf-8]",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Cross domain [GET] [Content-Type: Text/Plain;charset=utf-8]",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/security/embedded-credentials.tentative.sub.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Embedded credentials are treated as network errors.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Embedded credentials are treated as network errors in frames.",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Embedded credentials are treated as network errors in new windows.",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Embedded credentials matching the top-level are not treated as network errors for relative URLs.",
          "status": "FAIL",
          "message": "Cannot set property 'href' of undefined"
        },
        {
          "name": "Embedded credentials matching the top-level are not treated as network errors for same-origin URLs.",
          "status": "FAIL",
          "message": "Cannot set property 'href' of undefined"
        },
        {
          "name": "Embedded credentials matching the top-level are treated as network errors for cross-origin URLs.",
          "status": "FAIL",
          "message": "Cannot set property 'href' of undefined"
        }
      ]
    },
    {
      "test": "/fetch/range/sw.https.window.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Defer range header filter tests to service worker",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Defer range header passthrough tests to service worker",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Ranged response not allowed following no-cors ranged request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Non-opaque ranged response executed",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"Error: Script load failed\""
        },
        {
          "name": "Accept-Encoding should not appear in a service worker",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Range headers correctly preserved",
          "status": "FAIL",
          "message": "assert_equals: Untampered expected (string) \"bytes=0-\" but got (object) null"
        },
        {
          "name": "Range headers correctly removed",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers correctly filtered",
          "status": "FAIL",
          "message": "assert_equals: Preserved if no header actually removed expected (string) \"bytes=0-\" but got (object) null"
        },
        {
          "name": "Include range header in network request",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        }
      ]
    },
    {
      "test": "/fetch/api/headers/headers-basic.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Create headers from no parameter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Create headers from undefined parameter",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Create headers from empty object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Create headers with null should throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Create headers with 1 should throw",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Create headers with sequence",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Create headers with record",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Create headers with existing headers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Create headers with existing headers with custom iterator",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check append method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check set method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check has method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check delete method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check get method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check keys method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check values method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check entries method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check Symbol.iterator method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check forEach method",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/range/general.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Range header setting allowed for guard type: none",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Range header setting allowed for guard type: response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Range header setting allowed for guard type: request",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Privileged header not allowed for guard type: request-no-cors",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Fetch with range header will be sent with Accept-Encoding: identity",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/destination/fetch-destination-worker.https.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Initialize global state",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Worker fetches with a \"worker\" Request.destination",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/basic/header-value-combining.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "response.headers.get('content-length') expects 0",
          "status": "PASS",
          "message": null
        },
        {
          "name": "response.headers.get('content-length') expects 0, 0",
          "status": "PASS",
          "message": null
        },
        {
          "name": "response.headers.get('double-trouble') expects , ",
          "status": "PASS",
          "message": null
        },
        {
          "name": "response.headers.get('foo-test') expects 1, 2, 3",
          "status": "PASS",
          "message": null
        },
        {
          "name": "response.headers.get('heya') expects , \u000b\f, 1, , , 2",
          "status": "PASS",
          "message": null
        },
        {
          "name": "response.headers.get('www-authenticate') expects 1, 2, 3, 4",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-consume-stream.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Read empty text response's body as readableStream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Read empty blob response's body as readableStream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Read blob response's body as readableStream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Read text response's body as readableStream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Read URLSearchParams response's body as readableStream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Read array buffer response's body as readableStream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Read form data response's body as readableStream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting an error Response stream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Getting a redirect Response stream",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/policies/referrer-origin-when-cross-origin-worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Request's referrer is origin",
          "status": "FAIL",
          "message": "promise_test: Unhandled rejection with value: object \"TypeError: Failed to fetch\""
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-cache-force-cache.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "RequestCache \"force-cache\" mode checks the cache for previously cached content and avoid revalidation for stale responses with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"force-cache\" mode checks the cache for previously cached content and avoid revalidation for stale responses with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"force-cache\" mode checks the cache for previously cached content and avoid revalidation for fresh responses with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"force-cache\" mode checks the cache for previously cached content and avoid revalidation for fresh responses with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"force-cache\" mode checks the cache for previously cached content and goes to the network if a cached response is not found with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"force-cache\" mode checks the cache for previously cached content and goes to the network if a cached response is not found with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"force-cache\" mode checks the cache for previously cached content and goes to the network if a cached response is not found with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"force-cache\" mode checks the cache for previously cached content and goes to the network if a cached response is not found with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"force-cache\" mode checks the cache for previously cached content and goes to the network if a cached response would vary with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"force-cache\" mode checks the cache for previously cached content and goes to the network if a cached response would vary with Last-Modified and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"force-cache\" mode checks the cache for previously cached content and goes to the network if a cached response would vary with Etag and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"force-cache\" mode checks the cache for previously cached content and goes to the network if a cached response would vary with Last-Modified and fresh response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"force-cache\" stores the response in the cache if it goes to the network with Etag and stale response",
          "status": "PASS",
          "message": null
        },
        {
          "name": "RequestCache \"force-cache\" stores the response in the cache if it goes to the network with Last-Modified and stale response",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "RequestCache \"force-cache\" stores the response in the cache if it goes to the network with Etag and fresh response",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "RequestCache \"force-cache\" stores the response in the cache if it goes to the network with Last-Modified and fresh response",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "<img id=\"dangling\" src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=\">",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<img id=\"dangling\" src=\"data:image/png;base64,&#10;iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=\">",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<img id=\"dangling\" src=\"data:image/png;base64,i&#10;VBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=\">",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<img id=\"dangling\" src=\"data:image/svg+xml;utf8,\\n      <svg width='1' height='1' xmlns='http://www.w3.org/2000/svg'>\\n        <rect width='100%' height='100%' fill='rebeccapurple'/>\\n        <rect x='10%' y='10%' width='80%' height='80%' fill='lightgreen'/>\\n      </svg>\">",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe id=\"dangling\"\\n        src=\"data:text/html,\\n            <img\\n              onload='window.parent.postMessage(&quot;loaded&quot;, &quot;*&quot;);'\\n              onerror='window.parent.postMessage(&quot;error&quot;, &quot;*&quot;);'\\n              src='http://webapitests2018.ctawave.org:8000/images/gr&#10;een-256x256.png'>\\n        \">\\n     </iframe>",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe id=\"dangling\"\\n        src=\"data:text/html,\\n            <img\\n              onload='window.parent.postMessage(&quot;loaded&quot;, &quot;*&quot;);'\\n              onerror='window.parent.postMessage(&quot;error&quot;, &quot;*&quot;);'\\n              src='http://webapitests2018.ctawave.org:8000/images/green-256x256.png?&lt;'>\\n        \">\\n     </iframe>",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe id=\"dangling\"\\n        src=\"data:text/html,\\n            <img\\n              onload='window.parent.postMessage(&quot;loaded&quot;, &quot;*&quot;);'\\n              onerror='window.parent.postMessage(&quot;error&quot;, &quot;*&quot;);'\\n              src='http://webapitests2018.ctawave.org:8000/images/gr&#10;een-256x256.png?&amp;amp;lt;'>\\n        \">\\n     </iframe>",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe id=\"dangling\"\\n        src=\"data:text/html,\\n            <img\\n              onload='window.parent.postMessage(&quot;loaded&quot;, &quot;*&quot;);'\\n              onerror='window.parent.postMessage(&quot;error&quot;, &quot;*&quot;);'\\n              src='http://webapitests2018.ctawave.org:8000/images/green-256x256.png?&amp;amp;%2310;&lt;'>\\n        \">\\n     </iframe>",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe id=\"dangling\"\\n        src=\"data:text/html,\\n            <img\\n              onload='window.parent.postMessage(&quot;loaded&quot;, &quot;*&quot;);'\\n              onerror='window.parent.postMessage(&quot;error&quot;, &quot;*&quot;);'\\n              src='http://webapitests2018.ctawave.org:8000/images/gr&#10;een-256x256.png?&lt;'>\\n        \">\\n     </iframe>",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe id=\"dangling\"\\n        src=\"     data:text/html,\\n            <img\\n              onload='window.parent.postMessage(&quot;loaded&quot;, &quot;*&quot;);'\\n              onerror='window.parent.postMessage(&quot;error&quot;, &quot;*&quot;);'\\n              src='http://webapitests2018.ctawave.org:8000/images/gr&#10;een-256x256.png?&lt;'>\\n        \">\\n     </iframe>",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe id=\"dangling\"\\n        src=\"\\ndata:text/html,\\n            <img\\n              onload='window.parent.postMessage(&quot;loaded&quot;, &quot;*&quot;);'\\n              onerror='window.parent.postMessage(&quot;error&quot;, &quot;*&quot;);'\\n              src='http://webapitests2018.ctawave.org:8000/images/gr&#10;een-256x256.png?&lt;'>\\n        \">\\n     </iframe>",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe id=\"dangling\"\\n        src=\"&#10;data:text/html,\\n            <img\\n              onload='window.parent.postMessage(&quot;loaded&quot;, &quot;*&quot;);'\\n              onerror='window.parent.postMessage(&quot;error&quot;, &quot;*&quot;);'\\n              src='http://webapitests2018.ctawave.org:8000/images/gr&#10;een-256x256.png?&lt;'>\\n        \">\\n     </iframe>",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe id=\"dangling\"\\n        src=\"\\tdata:text/html,\\n            <img\\n              onload='window.parent.postMessage(&quot;loaded&quot;, &quot;*&quot;);'\\n              onerror='window.parent.postMessage(&quot;error&quot;, &quot;*&quot;);'\\n              src='http://webapitests2018.ctawave.org:8000/images/gr&#10;een-256x256.png?&lt;'>\\n        \">\\n     </iframe>",
          "status": "PASS",
          "message": null
        },
        {
          "name": "<iframe id=\"dangling\"\\n        src=\"\\rdata:text/html,\\n            <img\\n              onload='window.parent.postMessage(&quot;loaded&quot;, &quot;*&quot;);'\\n              onerror='window.parent.postMessage(&quot;error&quot;, &quot;*&quot;);'\\n              src='http://webapitests2018.ctawave.org:8000/images/gr&#10;een-256x256.png?&lt;'>\\n        \">\\n     </iframe>",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-init-002.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Initialize Response with headers values",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Initialize Response's body with application/octet-binary",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Initialize Response's body with multipart/form-data",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Initialize Response's body with application/x-www-form-urlencoded;charset=UTF-8",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Initialize Response's body with text/plain;charset=UTF-8",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Read Response's body as readableStream",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Testing empty Response Content-Type header",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Testing null Response body",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/policies/referrer-origin-worker.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Request's referrer is origin",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Cross-origin referrer is overridden by client origin",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/cross-origin-resource-policy/scheme-restriction.https.window.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Cross-Origin-Resource-Policy does not block Mixed Content <img>",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/response/response-consume.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Consume response's body: from text to text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from text to blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from text to arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from text to json",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from text with correct multipart type to formData",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from text without correct multipart type to formData (error case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from text with correct urlencoded type to formData",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from text without correct urlencoded type to formData (error case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from blob to blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from blob to text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from blob to arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from blob to json",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from blob with correct multipart type to formData",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from blob without correct multipart type to formData (error case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from blob with correct urlencoded type to formData",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from blob without correct urlencoded type to formData (error case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from FormData to formData",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from FormData without correct type to formData (error case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from FormData to blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from FormData to text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from FormData to arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from URLSearchParams to formData",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from URLSearchParams without correct type to formData (error case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from URLSearchParams to blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from URLSearchParams to text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from URLSearchParams to arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from stream to blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from stream to text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from stream to arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from stream to json",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from stream with correct multipart type to formData",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from stream without correct multipart type to formData (error case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from stream with correct urlencoded type to formData",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from stream without correct urlencoded type to formData (error case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from fetch to blob",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from fetch to text",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from fetch to arrayBuffer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from fetch without correct type to formData (error case)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Consume response's body: from multipart form data blob to formData",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/request/request-structure.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "Request has clone method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request has arrayBuffer method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request has blob method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request has formData method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request has json method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request has text method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check method attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check url attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check headers attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check destination attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrer attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check referrerPolicy attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check mode attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check credentials attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check cache attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check redirect attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check integrity attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check isReloadNavigation attribute",
          "status": "FAIL",
          "message": "assert_true: request has isReloadNavigation attribute expected true got false"
        },
        {
          "name": "Check isHistoryNavigation attribute",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Check bodyUsed attribute",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/http-cache/heuristic.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "HTTP cache reuses an unknown response with Last-Modified based upon heuristic freshness when Cache-Control: public is present",
          "status": "FAIL",
          "message": "assert_less_than: Response 2 does not come from cache expected a number less than 2 but got 2"
        },
        {
          "name": "HTTP cache does not reuse an unknown response with Last-Modified based upon heuristic freshness when Cache-Control: public is not present",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache reuses a 200 OK response with Last-Modified based upon heuristic freshness",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache reuses a 203 Non-Authoritative Information response with Last-Modified based upon heuristic freshness",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache reuses a 204 No Content response with Last-Modified based upon heuristic freshness",
          "status": "FAIL",
          "message": "assert_less_than: Response 2 does not come from cache expected a number less than 2 but got 2"
        },
        {
          "name": "HTTP cache reuses a 404 Not Found response with Last-Modified based upon heuristic freshness",
          "status": "FAIL",
          "message": "assert_less_than: Response 2 does not come from cache expected a number less than 2 but got 2"
        },
        {
          "name": "HTTP cache reuses a 405 Method Not Allowed response with Last-Modified based upon heuristic freshness",
          "status": "FAIL",
          "message": "assert_less_than: Response 2 does not come from cache expected a number less than 2 but got 2"
        },
        {
          "name": "HTTP cache reuses a 410 Gone response with Last-Modified based upon heuristic freshness",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache reuses a 414 URI Too Long response with Last-Modified based upon heuristic freshness",
          "status": "FAIL",
          "message": "assert_less_than: Response 2 does not come from cache expected a number less than 2 but got 2"
        },
        {
          "name": "HTTP cache reuses a 501 Not Implemented response with Last-Modified based upon heuristic freshness",
          "status": "FAIL",
          "message": "assert_less_than: Response 2 does not come from cache expected a number less than 2 but got 2"
        },
        {
          "name": "HTTP cache does not use a 201 Created response with Last-Modified based upon heuristic freshness",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache does not use a 202 Accepted response with Last-Modified based upon heuristic freshness",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache does not use a 403 Forbidden response with Last-Modified based upon heuristic freshness",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache does not use a 502 Bad Gateway response with Last-Modified based upon heuristic freshness",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache does not use a 503 Service Unavailable response with Last-Modified based upon heuristic freshness",
          "status": "PASS",
          "message": null
        },
        {
          "name": "HTTP cache does not use a 504 Gateway Timeout response with Last-Modified based upon heuristic freshness",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/redirect/redirect-origin.any.html",
      "status": "TIMEOUT",
      "message": null,
      "subtests": [
        {
          "name": "Same origin to same origin redirection 301",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin to other origin redirection 301",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Other origin to other origin redirection 301",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Other origin to same origin redirection 301",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin to same origin redirection 302",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin to other origin redirection 302",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Other origin to other origin redirection 302",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Other origin to same origin redirection 302",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin to same origin redirection 303",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Same origin to other origin redirection 303",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Other origin to other origin redirection 303",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Other origin to same origin redirection 303",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same origin to same origin redirection 307",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same origin to other origin redirection 307",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Other origin to other origin redirection 307",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Other origin to same origin redirection 307",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same origin to same origin redirection 308",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Same origin to other origin redirection 308",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Other origin to other origin redirection 308",
          "status": "NOTRUN",
          "message": null
        },
        {
          "name": "Other origin to same origin redirection 308",
          "status": "NOTRUN",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/api/idl.any.html",
      "status": "OK",
      "message": null,
      "subtests": [
        {
          "name": "idl_test setup",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: existence and properties of interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface object length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface object name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: existence and properties of interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: operation append(ByteString, ByteString)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: operation delete(ByteString)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: operation get(ByteString)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: operation has(ByteString)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: operation set(ByteString, ByteString)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Testing Symbol.iterator property of iterable interface Headers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Testing pair iterable interface Headers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: operation entries()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: operation keys()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: operation values()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: operation forEach(function, any)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers must be primary interface of new Headers()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Stringification of new Headers()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: new Headers() must inherit property \"append(ByteString, ByteString)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: calling append(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: new Headers() must inherit property \"delete(ByteString)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: calling delete(ByteString) on new Headers() with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: new Headers() must inherit property \"get(ByteString)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: calling get(ByteString) on new Headers() with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: new Headers() must inherit property \"has(ByteString)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: calling has(ByteString) on new Headers() with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: new Headers() must inherit property \"set(ByteString, ByteString)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: calling set(ByteString, ByteString) on new Headers() with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: new Headers() must inherit property \"entries()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: new Headers() must inherit property \"keys()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: new Headers() must inherit property \"values()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: new Headers() must inherit property \"forEach(function, any)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Headers interface: calling forEach(function, any) on new Headers() with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: existence and properties of interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface object length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface object name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: existence and properties of interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: attribute method",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: attribute url",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: attribute headers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: attribute destination",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: attribute referrer",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: attribute referrerPolicy",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: attribute mode",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: attribute credentials",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: attribute cache",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: attribute redirect",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: attribute integrity",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: attribute keepalive",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: attribute isReloadNavigation",
          "status": "FAIL",
          "message": "assert_true: The prototype object must have a property \"isReloadNavigation\" expected true got false"
        },
        {
          "name": "Request interface: attribute isHistoryNavigation",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: attribute signal",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: operation clone()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: attribute body",
          "status": "FAIL",
          "message": "assert_true: The prototype object must have a property \"body\" expected true got false"
        },
        {
          "name": "Request interface: attribute bodyUsed",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: operation arrayBuffer()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: operation blob()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: operation formData()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: operation json()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: operation text()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request must be primary interface of new Request('about:blank')",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Stringification of new Request('about:blank')",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"method\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"url\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"headers\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"destination\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"referrer\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"referrerPolicy\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"mode\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"credentials\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"cache\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"redirect\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"integrity\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"keepalive\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"isReloadNavigation\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"isReloadNavigation\" not found in prototype chain"
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"isHistoryNavigation\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"signal\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"clone()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"body\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"body\" not found in prototype chain"
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"bodyUsed\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"arrayBuffer()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"blob()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"formData()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"json()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Request interface: new Request('about:blank') must inherit property \"text()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: existence and properties of interface object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface object length",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface object name",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: existence and properties of interface prototype object",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: existence and properties of interface prototype object's \"constructor\" property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: existence and properties of interface prototype object's @@unscopables property",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: operation error()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: operation redirect(USVString, unsigned short)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: attribute type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: attribute url",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: attribute redirected",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: attribute status",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: attribute ok",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: attribute statusText",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: attribute headers",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: attribute trailer",
          "status": "FAIL",
          "message": "assert_true: The prototype object must have a property \"trailer\" expected true got false"
        },
        {
          "name": "Response interface: operation clone()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: attribute body",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: attribute bodyUsed",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: operation arrayBuffer()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: operation blob()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: operation formData()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: operation json()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: operation text()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response must be primary interface of new Response()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Stringification of new Response()",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"error()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"redirect(USVString, unsigned short)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: calling redirect(USVString, unsigned short) on new Response() with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"type\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"url\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"redirected\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"status\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"ok\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"statusText\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"headers\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"trailer\" with the proper type",
          "status": "FAIL",
          "message": "assert_inherits: property \"trailer\" not found in prototype chain"
        },
        {
          "name": "Response interface: new Response() must inherit property \"clone()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"body\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"bodyUsed\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"arrayBuffer()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"blob()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"formData()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"json()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Response interface: new Response() must inherit property \"text()\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Window interface: operation fetch(RequestInfo, RequestInit)",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Window interface: window must inherit property \"fetch(RequestInfo, RequestInit)\" with the proper type",
          "status": "PASS",
          "message": null
        },
        {
          "name": "Window interface: calling fetch(RequestInfo, RequestInit) on window with too few arguments must throw TypeError",
          "status": "PASS",
          "message": null
        },
        {
          "name": "WorkerGlobalScope interface: existence and properties of interface object",
          "status": "PASS",
          "message": null
        }
      ]
    },
    {
      "test": "/fetch/sec-metadata/window-open.tentative.https.sub.html",
      "status": "ERROR",
      "message": "unimplemented",
      "subtests": [
        {
          "name": "Same-origin window, forced",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-site window, forced",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Cross-site window, forced",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-origin window, user-activated",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Same-site window, user-activated",
          "status": "TIMEOUT",
          "message": "Test timed out"
        },
        {
          "name": "Cross-site window, user-activated",
          "status": "TIMEOUT",
          "message": "Test timed out"
        }
      ]
    }
  ]
}