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