From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- testing/web-platform/tests/preload/META.yml | 4 + ...id-delaying-onload-link-modulepreload-exec.html | 23 ++ .../avoid-delaying-onload-link-modulepreload.html | 22 ++ .../avoid-delaying-onload-link-preload-style.html | 15 + .../avoid-delaying-onload-link-preload.html | 15 + .../avoid-prefetching-on-text-plain-inner.html | 1 + ...id-prefetching-on-text-plain-inner.html.headers | 1 + .../preload/avoid-prefetching-on-text-plain.html | 47 +++ ...laying-onload-link-preload-after-discovery.html | 23 ++ .../tests/preload/download-resources.html | 57 +++ .../dynamic-adding-preload-imagesrcset.html | 36 ++ .../preload/dynamic-adding-preload-nonce.html | 51 +++ .../dynamic-adding-preload-nonce.html.headers | 1 + .../tests/preload/dynamic-adding-preload.html | 25 ++ .../tests/preload/link-header-modulepreload.html | 30 ++ .../tests/preload/link-header-on-subresource.html | 31 ++ .../preload/link-header-preload-delay-onload.html | 40 +++ .../link-header-preload-delay-onload.html.headers | 5 + .../preload/link-header-preload-imagesrcset.html | 56 +++ .../link-header-preload-imagesrcset.html.headers | 3 + .../preload/link-header-preload-non-html.html | 59 ++++ .../tests/preload/link-header-preload-nonce.html | 53 +++ .../tests/preload/link-header-preload.html | 63 ++++ .../tests/preload/link-header-preload.html.headers | 10 + .../tests/preload/modulepreload-as.html | 68 ++++ .../tests/preload/modulepreload-sri-importmap.html | 25 ++ .../tests/preload/modulepreload-sri.html | 18 + .../web-platform/tests/preload/modulepreload.html | 383 +++++++++++++++++++++ .../web-platform/tests/preload/onerror-event.html | 65 ++++ .../web-platform/tests/preload/onload-event.html | 66 ++++ .../tests/preload/preconnect-onerror-event.html | 37 ++ testing/web-platform/tests/preload/preconnect.html | 39 +++ .../tests/preload/prefetch-accept.html | 26 ++ .../web-platform/tests/preload/prefetch-cache.html | 37 ++ .../tests/preload/prefetch-document.html | 103 ++++++ .../tests/preload/prefetch-events.html | 97 ++++++ .../tests/preload/prefetch-headers.https.html | 35 ++ .../tests/preload/prefetch-load-event.html | 13 + .../preload/prefetch-time-to-fetch.https.html | 52 +++ .../tests/preload/prefetch-types.https.html | 73 ++++ .../tests/preload/preload-connect-to-doc.html | 102 ++++++ .../tests/preload/preload-csp.sub.html | 36 ++ .../tests/preload/preload-default-csp.sub.html | 35 ++ .../tests/preload/preload-dynamic-csp.html | 27 ++ .../tests/preload/preload-error.sub.html | 223 ++++++++++++ .../tests/preload/preload-font-crossorigin.html | 91 +++++ .../tests/preload/preload-in-data-doc-ref.html | 3 + .../tests/preload/preload-in-data-doc.html | 7 + .../tests/preload/preload-invalid-resources.html | 35 ++ ...eload-link-cached-stylesheet-different-doc.html | 20 ++ .../tests/preload/preload-nonce.sub.html | 47 +++ .../tests/preload/preload-referrer-policy.html | 119 +++++++ .../preload/preload-resource-match.https.html | 171 +++++++++ .../tests/preload/preload-strict-dynamic.sub.html | 88 +++++ .../tests/preload/preload-time-to-fetch.https.html | 99 ++++++ .../tests/preload/preload-type-match.html | 78 +++++ .../tests/preload/preload-with-type.html | 84 +++++ .../web-platform/tests/preload/preload-xhr.html | 57 +++ .../tests/preload/reflected-as-value.html | 27 ++ .../web-platform/tests/preload/resources/A4.ogv | Bin 0 -> 94372 bytes .../tests/preload/resources/A4.ogv.sub.headers | 1 + .../tests/preload/resources/cross-origin-module.py | 9 + .../resources/dummy-preloads-subresource.css | 1 + .../dummy-preloads-subresource.css.sub.headers | 2 + .../web-platform/tests/preload/resources/dummy.css | 1 + .../tests/preload/resources/dummy.css.sub.headers | 1 + .../web-platform/tests/preload/resources/dummy.js | 1 + .../tests/preload/resources/dummy.js.sub.headers | 1 + .../web-platform/tests/preload/resources/dummy.xml | 2 + .../tests/preload/resources/dummy.xml.sub.headers | 1 + .../tests/preload/resources/echo-preload-header.py | 16 + .../tests/preload/resources/echo-referrer.py | 6 + .../tests/preload/resources/echo-with-cors.py | 8 + .../tests/preload/resources/empty.html | 0 .../tests/preload/resources/empty.html.sub.headers | 1 + .../web-platform/tests/preload/resources/font.ttf | Bin 0 -> 21768 bytes .../tests/preload/resources/font.ttf.sub.headers | 2 + .../web-platform/tests/preload/resources/foo.vtt | 4 + .../tests/preload/resources/foo.vtt.sub.headers | 1 + .../resources/link-header-referrer-policy.html | 26 ++ .../resources/link-header-referrer-policy.py | 11 + .../tests/preload/resources/module1.js | 2 + .../tests/preload/resources/module1.mjs | 2 + .../tests/preload/resources/module2.js | 1 + .../preload/resources/modulepreload-iframe.html | 20 ++ .../tests/preload/resources/prefetch-exec.html | 9 + .../tests/preload/resources/prefetch-helper.js | 22 ++ .../tests/preload/resources/prefetch-info.py | 37 ++ .../tests/preload/resources/preload_helper.js | 60 ++++ .../tests/preload/resources/slow-exec.js | 3 + .../tests/preload/resources/sound_5.oga | Bin 0 -> 18541 bytes .../preload/resources/sound_5.oga.sub.headers | 1 + .../tests/preload/resources/square.png | Bin 0 -> 18299 bytes .../tests/preload/resources/square.png.sub.headers | 1 + .../tests/preload/resources/stash-put.py | 20 ++ .../tests/preload/resources/stash-take.py | 14 + .../tests/preload/resources/syntax-error.js | 1 + .../web-platform/tests/preload/resources/white.mp4 | Bin 0 -> 13713 bytes .../tests/preload/resources/white.mp4.sub.headers | 1 + .../preload/single-download-late-used-preload.html | 23 ++ .../tests/preload/single-download-preload.html | 60 ++++ .../tests/preload/subresource-integrity-font.html | 201 +++++++++++ .../subresource-integrity-partial-image.html | 28 ++ .../tests/preload/subresource-integrity.html | 381 ++++++++++++++++++++ 104 files changed, 4139 insertions(+) create mode 100644 testing/web-platform/tests/preload/META.yml create mode 100644 testing/web-platform/tests/preload/avoid-delaying-onload-link-modulepreload-exec.html create mode 100644 testing/web-platform/tests/preload/avoid-delaying-onload-link-modulepreload.html create mode 100644 testing/web-platform/tests/preload/avoid-delaying-onload-link-preload-style.html create mode 100644 testing/web-platform/tests/preload/avoid-delaying-onload-link-preload.html create mode 100644 testing/web-platform/tests/preload/avoid-prefetching-on-text-plain-inner.html create mode 100644 testing/web-platform/tests/preload/avoid-prefetching-on-text-plain-inner.html.headers create mode 100644 testing/web-platform/tests/preload/avoid-prefetching-on-text-plain.html create mode 100644 testing/web-platform/tests/preload/delaying-onload-link-preload-after-discovery.html create mode 100644 testing/web-platform/tests/preload/download-resources.html create mode 100644 testing/web-platform/tests/preload/dynamic-adding-preload-imagesrcset.html create mode 100644 testing/web-platform/tests/preload/dynamic-adding-preload-nonce.html create mode 100644 testing/web-platform/tests/preload/dynamic-adding-preload-nonce.html.headers create mode 100644 testing/web-platform/tests/preload/dynamic-adding-preload.html create mode 100644 testing/web-platform/tests/preload/link-header-modulepreload.html create mode 100644 testing/web-platform/tests/preload/link-header-on-subresource.html create mode 100644 testing/web-platform/tests/preload/link-header-preload-delay-onload.html create mode 100644 testing/web-platform/tests/preload/link-header-preload-delay-onload.html.headers create mode 100644 testing/web-platform/tests/preload/link-header-preload-imagesrcset.html create mode 100644 testing/web-platform/tests/preload/link-header-preload-imagesrcset.html.headers create mode 100644 testing/web-platform/tests/preload/link-header-preload-non-html.html create mode 100644 testing/web-platform/tests/preload/link-header-preload-nonce.html create mode 100644 testing/web-platform/tests/preload/link-header-preload.html create mode 100644 testing/web-platform/tests/preload/link-header-preload.html.headers create mode 100644 testing/web-platform/tests/preload/modulepreload-as.html create mode 100644 testing/web-platform/tests/preload/modulepreload-sri-importmap.html create mode 100644 testing/web-platform/tests/preload/modulepreload-sri.html create mode 100644 testing/web-platform/tests/preload/modulepreload.html create mode 100644 testing/web-platform/tests/preload/onerror-event.html create mode 100644 testing/web-platform/tests/preload/onload-event.html create mode 100644 testing/web-platform/tests/preload/preconnect-onerror-event.html create mode 100644 testing/web-platform/tests/preload/preconnect.html create mode 100644 testing/web-platform/tests/preload/prefetch-accept.html create mode 100644 testing/web-platform/tests/preload/prefetch-cache.html create mode 100644 testing/web-platform/tests/preload/prefetch-document.html create mode 100644 testing/web-platform/tests/preload/prefetch-events.html create mode 100644 testing/web-platform/tests/preload/prefetch-headers.https.html create mode 100644 testing/web-platform/tests/preload/prefetch-load-event.html create mode 100644 testing/web-platform/tests/preload/prefetch-time-to-fetch.https.html create mode 100644 testing/web-platform/tests/preload/prefetch-types.https.html create mode 100644 testing/web-platform/tests/preload/preload-connect-to-doc.html create mode 100644 testing/web-platform/tests/preload/preload-csp.sub.html create mode 100644 testing/web-platform/tests/preload/preload-default-csp.sub.html create mode 100644 testing/web-platform/tests/preload/preload-dynamic-csp.html create mode 100644 testing/web-platform/tests/preload/preload-error.sub.html create mode 100644 testing/web-platform/tests/preload/preload-font-crossorigin.html create mode 100644 testing/web-platform/tests/preload/preload-in-data-doc-ref.html create mode 100644 testing/web-platform/tests/preload/preload-in-data-doc.html create mode 100644 testing/web-platform/tests/preload/preload-invalid-resources.html create mode 100644 testing/web-platform/tests/preload/preload-link-cached-stylesheet-different-doc.html create mode 100644 testing/web-platform/tests/preload/preload-nonce.sub.html create mode 100644 testing/web-platform/tests/preload/preload-referrer-policy.html create mode 100644 testing/web-platform/tests/preload/preload-resource-match.https.html create mode 100644 testing/web-platform/tests/preload/preload-strict-dynamic.sub.html create mode 100644 testing/web-platform/tests/preload/preload-time-to-fetch.https.html create mode 100644 testing/web-platform/tests/preload/preload-type-match.html create mode 100644 testing/web-platform/tests/preload/preload-with-type.html create mode 100644 testing/web-platform/tests/preload/preload-xhr.html create mode 100644 testing/web-platform/tests/preload/reflected-as-value.html create mode 100644 testing/web-platform/tests/preload/resources/A4.ogv create mode 100644 testing/web-platform/tests/preload/resources/A4.ogv.sub.headers create mode 100644 testing/web-platform/tests/preload/resources/cross-origin-module.py create mode 100644 testing/web-platform/tests/preload/resources/dummy-preloads-subresource.css create mode 100644 testing/web-platform/tests/preload/resources/dummy-preloads-subresource.css.sub.headers create mode 100644 testing/web-platform/tests/preload/resources/dummy.css create mode 100644 testing/web-platform/tests/preload/resources/dummy.css.sub.headers create mode 100644 testing/web-platform/tests/preload/resources/dummy.js create mode 100644 testing/web-platform/tests/preload/resources/dummy.js.sub.headers create mode 100644 testing/web-platform/tests/preload/resources/dummy.xml create mode 100644 testing/web-platform/tests/preload/resources/dummy.xml.sub.headers create mode 100644 testing/web-platform/tests/preload/resources/echo-preload-header.py create mode 100644 testing/web-platform/tests/preload/resources/echo-referrer.py create mode 100644 testing/web-platform/tests/preload/resources/echo-with-cors.py create mode 100644 testing/web-platform/tests/preload/resources/empty.html create mode 100644 testing/web-platform/tests/preload/resources/empty.html.sub.headers create mode 100644 testing/web-platform/tests/preload/resources/font.ttf create mode 100644 testing/web-platform/tests/preload/resources/font.ttf.sub.headers create mode 100644 testing/web-platform/tests/preload/resources/foo.vtt create mode 100644 testing/web-platform/tests/preload/resources/foo.vtt.sub.headers create mode 100644 testing/web-platform/tests/preload/resources/link-header-referrer-policy.html create mode 100644 testing/web-platform/tests/preload/resources/link-header-referrer-policy.py create mode 100644 testing/web-platform/tests/preload/resources/module1.js create mode 100644 testing/web-platform/tests/preload/resources/module1.mjs create mode 100644 testing/web-platform/tests/preload/resources/module2.js create mode 100644 testing/web-platform/tests/preload/resources/modulepreload-iframe.html create mode 100644 testing/web-platform/tests/preload/resources/prefetch-exec.html create mode 100644 testing/web-platform/tests/preload/resources/prefetch-helper.js create mode 100644 testing/web-platform/tests/preload/resources/prefetch-info.py create mode 100644 testing/web-platform/tests/preload/resources/preload_helper.js create mode 100644 testing/web-platform/tests/preload/resources/slow-exec.js create mode 100644 testing/web-platform/tests/preload/resources/sound_5.oga create mode 100644 testing/web-platform/tests/preload/resources/sound_5.oga.sub.headers create mode 100644 testing/web-platform/tests/preload/resources/square.png create mode 100644 testing/web-platform/tests/preload/resources/square.png.sub.headers create mode 100644 testing/web-platform/tests/preload/resources/stash-put.py create mode 100644 testing/web-platform/tests/preload/resources/stash-take.py create mode 100644 testing/web-platform/tests/preload/resources/syntax-error.js create mode 100644 testing/web-platform/tests/preload/resources/white.mp4 create mode 100644 testing/web-platform/tests/preload/resources/white.mp4.sub.headers create mode 100644 testing/web-platform/tests/preload/single-download-late-used-preload.html create mode 100644 testing/web-platform/tests/preload/single-download-preload.html create mode 100644 testing/web-platform/tests/preload/subresource-integrity-font.html create mode 100644 testing/web-platform/tests/preload/subresource-integrity-partial-image.html create mode 100644 testing/web-platform/tests/preload/subresource-integrity.html (limited to 'testing/web-platform/tests/preload') diff --git a/testing/web-platform/tests/preload/META.yml b/testing/web-platform/tests/preload/META.yml new file mode 100644 index 0000000000..fd10e7d15a --- /dev/null +++ b/testing/web-platform/tests/preload/META.yml @@ -0,0 +1,4 @@ +spec: https://w3c.github.io/preload/ +suggested_reviewers: + - snuggs + - yoavweiss diff --git a/testing/web-platform/tests/preload/avoid-delaying-onload-link-modulepreload-exec.html b/testing/web-platform/tests/preload/avoid-delaying-onload-link-modulepreload-exec.html new file mode 100644 index 0000000000..160aef6b5f --- /dev/null +++ b/testing/web-platform/tests/preload/avoid-delaying-onload-link-modulepreload-exec.html @@ -0,0 +1,23 @@ + + + + + + diff --git a/testing/web-platform/tests/preload/avoid-delaying-onload-link-modulepreload.html b/testing/web-platform/tests/preload/avoid-delaying-onload-link-modulepreload.html new file mode 100644 index 0000000000..df1ac72eb3 --- /dev/null +++ b/testing/web-platform/tests/preload/avoid-delaying-onload-link-modulepreload.html @@ -0,0 +1,22 @@ + + + + + + diff --git a/testing/web-platform/tests/preload/avoid-delaying-onload-link-preload-style.html b/testing/web-platform/tests/preload/avoid-delaying-onload-link-preload-style.html new file mode 100644 index 0000000000..2997138340 --- /dev/null +++ b/testing/web-platform/tests/preload/avoid-delaying-onload-link-preload-style.html @@ -0,0 +1,15 @@ + + + + + + + diff --git a/testing/web-platform/tests/preload/avoid-delaying-onload-link-preload.html b/testing/web-platform/tests/preload/avoid-delaying-onload-link-preload.html new file mode 100644 index 0000000000..6b9b577b89 --- /dev/null +++ b/testing/web-platform/tests/preload/avoid-delaying-onload-link-preload.html @@ -0,0 +1,15 @@ + + + + + + + diff --git a/testing/web-platform/tests/preload/avoid-prefetching-on-text-plain-inner.html b/testing/web-platform/tests/preload/avoid-prefetching-on-text-plain-inner.html new file mode 100644 index 0000000000..518e246541 --- /dev/null +++ b/testing/web-platform/tests/preload/avoid-prefetching-on-text-plain-inner.html @@ -0,0 +1 @@ + diff --git a/testing/web-platform/tests/preload/avoid-prefetching-on-text-plain-inner.html.headers b/testing/web-platform/tests/preload/avoid-prefetching-on-text-plain-inner.html.headers new file mode 100644 index 0000000000..a1f9e38d90 --- /dev/null +++ b/testing/web-platform/tests/preload/avoid-prefetching-on-text-plain-inner.html.headers @@ -0,0 +1 @@ +Content-Type: text/plain diff --git a/testing/web-platform/tests/preload/avoid-prefetching-on-text-plain.html b/testing/web-platform/tests/preload/avoid-prefetching-on-text-plain.html new file mode 100644 index 0000000000..b14b7e4f8a --- /dev/null +++ b/testing/web-platform/tests/preload/avoid-prefetching-on-text-plain.html @@ -0,0 +1,47 @@ + +Ensures content delivered with Content-Type: text/plain header is not prefetched + + + + + + + + + diff --git a/testing/web-platform/tests/preload/delaying-onload-link-preload-after-discovery.html b/testing/web-platform/tests/preload/delaying-onload-link-preload-after-discovery.html new file mode 100644 index 0000000000..1c856d16d4 --- /dev/null +++ b/testing/web-platform/tests/preload/delaying-onload-link-preload-after-discovery.html @@ -0,0 +1,23 @@ + + + + + + + + + diff --git a/testing/web-platform/tests/preload/download-resources.html b/testing/web-platform/tests/preload/download-resources.html new file mode 100644 index 0000000000..4da7698035 --- /dev/null +++ b/testing/web-platform/tests/preload/download-resources.html @@ -0,0 +1,57 @@ + +Makes sure that preloaded resources are downloaded + + + + + + + + + + + + + + + + diff --git a/testing/web-platform/tests/preload/dynamic-adding-preload-imagesrcset.html b/testing/web-platform/tests/preload/dynamic-adding-preload-imagesrcset.html new file mode 100644 index 0000000000..6188355e26 --- /dev/null +++ b/testing/web-platform/tests/preload/dynamic-adding-preload-imagesrcset.html @@ -0,0 +1,36 @@ + + + + + + + + diff --git a/testing/web-platform/tests/preload/dynamic-adding-preload-nonce.html b/testing/web-platform/tests/preload/dynamic-adding-preload-nonce.html new file mode 100644 index 0000000000..2a5bc1ae85 --- /dev/null +++ b/testing/web-platform/tests/preload/dynamic-adding-preload-nonce.html @@ -0,0 +1,51 @@ + + + + + + + + diff --git a/testing/web-platform/tests/preload/dynamic-adding-preload-nonce.html.headers b/testing/web-platform/tests/preload/dynamic-adding-preload-nonce.html.headers new file mode 100644 index 0000000000..85de8bd415 --- /dev/null +++ b/testing/web-platform/tests/preload/dynamic-adding-preload-nonce.html.headers @@ -0,0 +1 @@ +Content-Security-Policy: script-src 'nonce-abc' diff --git a/testing/web-platform/tests/preload/dynamic-adding-preload.html b/testing/web-platform/tests/preload/dynamic-adding-preload.html new file mode 100644 index 0000000000..0cecc1983e --- /dev/null +++ b/testing/web-platform/tests/preload/dynamic-adding-preload.html @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/testing/web-platform/tests/preload/link-header-modulepreload.html b/testing/web-platform/tests/preload/link-header-modulepreload.html new file mode 100644 index 0000000000..fd759f6251 --- /dev/null +++ b/testing/web-platform/tests/preload/link-header-modulepreload.html @@ -0,0 +1,30 @@ + + +Makes sure that Link headers support modulepreload + + + + + + + + diff --git a/testing/web-platform/tests/preload/link-header-on-subresource.html b/testing/web-platform/tests/preload/link-header-on-subresource.html new file mode 100644 index 0000000000..418e8a63a7 --- /dev/null +++ b/testing/web-platform/tests/preload/link-header-on-subresource.html @@ -0,0 +1,31 @@ + +Makes sure that Link headers on subresources preload resources + + + + + + diff --git a/testing/web-platform/tests/preload/link-header-preload-delay-onload.html b/testing/web-platform/tests/preload/link-header-preload-delay-onload.html new file mode 100644 index 0000000000..a445d800a5 --- /dev/null +++ b/testing/web-platform/tests/preload/link-header-preload-delay-onload.html @@ -0,0 +1,40 @@ + + + + + + + + + +
+ diff --git a/testing/web-platform/tests/preload/link-header-preload-delay-onload.html.headers b/testing/web-platform/tests/preload/link-header-preload-delay-onload.html.headers new file mode 100644 index 0000000000..a9ca424d4b --- /dev/null +++ b/testing/web-platform/tests/preload/link-header-preload-delay-onload.html.headers @@ -0,0 +1,5 @@ +Link: ;rel=preload;as=image +Link: ;rel=preload;as=script +Link: ;rel=preload;as=style +Link: ;rel=preload;as=image + diff --git a/testing/web-platform/tests/preload/link-header-preload-imagesrcset.html b/testing/web-platform/tests/preload/link-header-preload-imagesrcset.html new file mode 100644 index 0000000000..65c8c061ad --- /dev/null +++ b/testing/web-platform/tests/preload/link-header-preload-imagesrcset.html @@ -0,0 +1,56 @@ + +Makes sure that Link headers preload images with imagesrcset/imagesizes attributes. + + + + + + + diff --git a/testing/web-platform/tests/preload/link-header-preload-imagesrcset.html.headers b/testing/web-platform/tests/preload/link-header-preload-imagesrcset.html.headers new file mode 100644 index 0000000000..906de0c95a --- /dev/null +++ b/testing/web-platform/tests/preload/link-header-preload-imagesrcset.html.headers @@ -0,0 +1,3 @@ +Link: ; rel=preload; as=image; imagesrcset="resources/square.png?from-header&2x 2x, resources/square.png?from-header&3x 3x" +Link: ; rel=preload; as=image; imagesrcset="resources/square.png?from-header&200 200w, resources/square.png?from-header&400 400w, resources/square.png?from-header&800 800w"; imagesizes=400px +Link: ; rel=preload; as=image; imagesrcset="resources/square.png?from-header&150 150w, resources/square.png?from-header&300 300w, resources/square.png?from-header&600 600w"; imagesizes="(min-width: 300px) 300px, 150px" diff --git a/testing/web-platform/tests/preload/link-header-preload-non-html.html b/testing/web-platform/tests/preload/link-header-preload-non-html.html new file mode 100644 index 0000000000..c990e610d9 --- /dev/null +++ b/testing/web-platform/tests/preload/link-header-preload-non-html.html @@ -0,0 +1,59 @@ + + +Makes sure that Link headers preload resources in non-HTML documents + + + + + + + + + diff --git a/testing/web-platform/tests/preload/link-header-preload-nonce.html b/testing/web-platform/tests/preload/link-header-preload-nonce.html new file mode 100644 index 0000000000..cd2d8fbb5a --- /dev/null +++ b/testing/web-platform/tests/preload/link-header-preload-nonce.html @@ -0,0 +1,53 @@ + + + + + + + + diff --git a/testing/web-platform/tests/preload/link-header-preload.html b/testing/web-platform/tests/preload/link-header-preload.html new file mode 100644 index 0000000000..5a477867fb --- /dev/null +++ b/testing/web-platform/tests/preload/link-header-preload.html @@ -0,0 +1,63 @@ + + +Makes sure that Link headers preload resources + + + + + + + + + + + +PASS - this text is here just so that the browser will download the font. + diff --git a/testing/web-platform/tests/preload/link-header-preload.html.headers b/testing/web-platform/tests/preload/link-header-preload.html.headers new file mode 100644 index 0000000000..83670cd86e --- /dev/null +++ b/testing/web-platform/tests/preload/link-header-preload.html.headers @@ -0,0 +1,10 @@ +Link: ;rel=preload;as=script +Link: ;rel=preload;as=script +Link: ;rel=preload;as=script;crossorigin +Link: ;rel=preload;as=script;crossorigin +Link: ;rel=preload;as=style +Link: ;rel=preload;as=image +Link: ;rel=preload;as=style;crossorigin +Link: ;rel=preload;as=style;crossorigin +Link: ;rel=preload;as=font;crossorigin="anonymous" +Link: ;rel=preload;as=font;crossorigin="anonymous" diff --git a/testing/web-platform/tests/preload/modulepreload-as.html b/testing/web-platform/tests/preload/modulepreload-as.html new file mode 100644 index 0000000000..42c2dd91d0 --- /dev/null +++ b/testing/web-platform/tests/preload/modulepreload-as.html @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing/web-platform/tests/preload/modulepreload-sri-importmap.html b/testing/web-platform/tests/preload/modulepreload-sri-importmap.html new file mode 100644 index 0000000000..d633fe1d51 --- /dev/null +++ b/testing/web-platform/tests/preload/modulepreload-sri-importmap.html @@ -0,0 +1,25 @@ + + + + + + + + + diff --git a/testing/web-platform/tests/preload/modulepreload-sri.html b/testing/web-platform/tests/preload/modulepreload-sri.html new file mode 100644 index 0000000000..ea32a6a302 --- /dev/null +++ b/testing/web-platform/tests/preload/modulepreload-sri.html @@ -0,0 +1,18 @@ + + + + + + + + diff --git a/testing/web-platform/tests/preload/modulepreload.html b/testing/web-platform/tests/preload/modulepreload.html new file mode 100644 index 0000000000..4764b58261 --- /dev/null +++ b/testing/web-platform/tests/preload/modulepreload.html @@ -0,0 +1,383 @@ + + + + + + + diff --git a/testing/web-platform/tests/preload/onerror-event.html b/testing/web-platform/tests/preload/onerror-event.html new file mode 100644 index 0000000000..443513e9fe --- /dev/null +++ b/testing/web-platform/tests/preload/onerror-event.html @@ -0,0 +1,65 @@ + + +Makes sure that preloaded resources trigger the onerror event + + + + + + + + + + + + + + + + + + + + + diff --git a/testing/web-platform/tests/preload/onload-event.html b/testing/web-platform/tests/preload/onload-event.html new file mode 100644 index 0000000000..2e1e8d3900 --- /dev/null +++ b/testing/web-platform/tests/preload/onload-event.html @@ -0,0 +1,66 @@ + +Makes sure that preloaded resources trigger the onload event + + + + + + + + + + + + + + + + + + diff --git a/testing/web-platform/tests/preload/preconnect-onerror-event.html b/testing/web-platform/tests/preload/preconnect-onerror-event.html new file mode 100644 index 0000000000..4ce583d4db --- /dev/null +++ b/testing/web-platform/tests/preload/preconnect-onerror-event.html @@ -0,0 +1,37 @@ + + +Makes sure that preloaded resources trigger the onerror event + + + + + + + + + diff --git a/testing/web-platform/tests/preload/preconnect.html b/testing/web-platform/tests/preload/preconnect.html new file mode 100644 index 0000000000..f95a5c0ba0 --- /dev/null +++ b/testing/web-platform/tests/preload/preconnect.html @@ -0,0 +1,39 @@ + + +Makes sure that preloaded resources reduce connection time to zero + + + + + + + + + + diff --git a/testing/web-platform/tests/preload/prefetch-accept.html b/testing/web-platform/tests/preload/prefetch-accept.html new file mode 100644 index 0000000000..3820b9b4db --- /dev/null +++ b/testing/web-platform/tests/preload/prefetch-accept.html @@ -0,0 +1,26 @@ + +Ensures that prefetch works with documents + + + + + + + + diff --git a/testing/web-platform/tests/preload/prefetch-cache.html b/testing/web-platform/tests/preload/prefetch-cache.html new file mode 100644 index 0000000000..844b4d7be5 --- /dev/null +++ b/testing/web-platform/tests/preload/prefetch-cache.html @@ -0,0 +1,37 @@ + +Ensures that prefetch respects HTTP cache semantics + + + + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/preload/prefetch-document.html b/testing/web-platform/tests/preload/prefetch-document.html new file mode 100644 index 0000000000..bdb12bd58a --- /dev/null +++ b/testing/web-platform/tests/preload/prefetch-document.html @@ -0,0 +1,103 @@ + +Ensures that prefetch works with documents + + + + + + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/preload/prefetch-events.html b/testing/web-platform/tests/preload/prefetch-events.html new file mode 100644 index 0000000000..7857b14f51 --- /dev/null +++ b/testing/web-platform/tests/preload/prefetch-events.html @@ -0,0 +1,97 @@ + +Ensures that prefetch respects HTTP cache semantics + + + + + + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/preload/prefetch-headers.https.html b/testing/web-platform/tests/preload/prefetch-headers.https.html new file mode 100644 index 0000000000..0a475c7d77 --- /dev/null +++ b/testing/web-platform/tests/preload/prefetch-headers.https.html @@ -0,0 +1,35 @@ + +Ensures that prefetch sends headers as per-spec + + + + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/preload/prefetch-load-event.html b/testing/web-platform/tests/preload/prefetch-load-event.html new file mode 100644 index 0000000000..c1cb75d52e --- /dev/null +++ b/testing/web-platform/tests/preload/prefetch-load-event.html @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/preload/prefetch-time-to-fetch.https.html b/testing/web-platform/tests/preload/prefetch-time-to-fetch.https.html new file mode 100644 index 0000000000..528cd657f6 --- /dev/null +++ b/testing/web-platform/tests/preload/prefetch-time-to-fetch.https.html @@ -0,0 +1,52 @@ + + + + + + + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/preload/prefetch-types.https.html b/testing/web-platform/tests/preload/prefetch-types.https.html new file mode 100644 index 0000000000..276439e544 --- /dev/null +++ b/testing/web-platform/tests/preload/prefetch-types.https.html @@ -0,0 +1,73 @@ + +Ensures that prefetch is not specific to resource types + + + + + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/preload/preload-connect-to-doc.html b/testing/web-platform/tests/preload/preload-connect-to-doc.html new file mode 100644 index 0000000000..ba45f6f3f8 --- /dev/null +++ b/testing/web-platform/tests/preload/preload-connect-to-doc.html @@ -0,0 +1,102 @@ + + + + + + + + + diff --git a/testing/web-platform/tests/preload/preload-csp.sub.html b/testing/web-platform/tests/preload/preload-csp.sub.html new file mode 100644 index 0000000000..524844df2e --- /dev/null +++ b/testing/web-platform/tests/preload/preload-csp.sub.html @@ -0,0 +1,36 @@ + + +Makes sure that preload requests respect CSP + + + + + + + + + + + + + + + + diff --git a/testing/web-platform/tests/preload/preload-default-csp.sub.html b/testing/web-platform/tests/preload/preload-default-csp.sub.html new file mode 100644 index 0000000000..8d280c4a47 --- /dev/null +++ b/testing/web-platform/tests/preload/preload-default-csp.sub.html @@ -0,0 +1,35 @@ + + +Makes sure that preload requests respect CSP + + + + + + + + + + + + + + + diff --git a/testing/web-platform/tests/preload/preload-dynamic-csp.html b/testing/web-platform/tests/preload/preload-dynamic-csp.html new file mode 100644 index 0000000000..7a696cb7ed --- /dev/null +++ b/testing/web-platform/tests/preload/preload-dynamic-csp.html @@ -0,0 +1,27 @@ + +Makes sure that preload requests respect CSP directives that are added after the preload + + + + + + + diff --git a/testing/web-platform/tests/preload/preload-error.sub.html b/testing/web-platform/tests/preload/preload-error.sub.html new file mode 100644 index 0000000000..7a170471fc --- /dev/null +++ b/testing/web-platform/tests/preload/preload-error.sub.html @@ -0,0 +1,223 @@ + + + +link rel=preload with various errors/non-errors + + + + + + diff --git a/testing/web-platform/tests/preload/preload-font-crossorigin.html b/testing/web-platform/tests/preload/preload-font-crossorigin.html new file mode 100644 index 0000000000..492dc393cc --- /dev/null +++ b/testing/web-platform/tests/preload/preload-font-crossorigin.html @@ -0,0 +1,91 @@ + +Makes sure that preload font destination needs crossorigin attribute + + + + + + + + diff --git a/testing/web-platform/tests/preload/preload-in-data-doc-ref.html b/testing/web-platform/tests/preload/preload-in-data-doc-ref.html new file mode 100644 index 0000000000..f6bf517e0b --- /dev/null +++ b/testing/web-platform/tests/preload/preload-in-data-doc-ref.html @@ -0,0 +1,3 @@ + +Test reference + diff --git a/testing/web-platform/tests/preload/preload-in-data-doc.html b/testing/web-platform/tests/preload/preload-in-data-doc.html new file mode 100644 index 0000000000..316100ad52 --- /dev/null +++ b/testing/web-platform/tests/preload/preload-in-data-doc.html @@ -0,0 +1,7 @@ + +Preload should work in non-http(s) docs + + + + + diff --git a/testing/web-platform/tests/preload/preload-invalid-resources.html b/testing/web-platform/tests/preload/preload-invalid-resources.html new file mode 100644 index 0000000000..be6f79e8e6 --- /dev/null +++ b/testing/web-platform/tests/preload/preload-invalid-resources.html @@ -0,0 +1,35 @@ + + + + + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/preload/preload-link-cached-stylesheet-different-doc.html b/testing/web-platform/tests/preload/preload-link-cached-stylesheet-different-doc.html new file mode 100644 index 0000000000..8df1383fcc --- /dev/null +++ b/testing/web-platform/tests/preload/preload-link-cached-stylesheet-different-doc.html @@ -0,0 +1,20 @@ + + + + + + + + + + diff --git a/testing/web-platform/tests/preload/preload-nonce.sub.html b/testing/web-platform/tests/preload/preload-nonce.sub.html new file mode 100644 index 0000000000..325c8a2e82 --- /dev/null +++ b/testing/web-platform/tests/preload/preload-nonce.sub.html @@ -0,0 +1,47 @@ + + +Makes sure that preload requests use their nonce for the CSP + + + + + + + + + + diff --git a/testing/web-platform/tests/preload/preload-referrer-policy.html b/testing/web-platform/tests/preload/preload-referrer-policy.html new file mode 100644 index 0000000000..0a4fbb0b4a --- /dev/null +++ b/testing/web-platform/tests/preload/preload-referrer-policy.html @@ -0,0 +1,119 @@ + + +The preload's referrerpolicy attribute should be respected + + + + + + + + +

The preload's referrerpolicy attribute should be respected, + and consumed regardless of consumer referrer policy

+ + diff --git a/testing/web-platform/tests/preload/preload-resource-match.https.html b/testing/web-platform/tests/preload/preload-resource-match.https.html new file mode 100644 index 0000000000..55cfd872d3 --- /dev/null +++ b/testing/web-platform/tests/preload/preload-resource-match.https.html @@ -0,0 +1,171 @@ + + + + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/preload/preload-strict-dynamic.sub.html b/testing/web-platform/tests/preload/preload-strict-dynamic.sub.html new file mode 100644 index 0000000000..bdd7a1746b --- /dev/null +++ b/testing/web-platform/tests/preload/preload-strict-dynamic.sub.html @@ -0,0 +1,88 @@ + + + + + + +CSP strict-dynamic + preload + + + + + + + + + diff --git a/testing/web-platform/tests/preload/preload-time-to-fetch.https.html b/testing/web-platform/tests/preload/preload-time-to-fetch.https.html new file mode 100644 index 0000000000..774501ef3e --- /dev/null +++ b/testing/web-platform/tests/preload/preload-time-to-fetch.https.html @@ -0,0 +1,99 @@ + + + + + + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/preload/preload-type-match.html b/testing/web-platform/tests/preload/preload-type-match.html new file mode 100644 index 0000000000..53f12d0ad7 --- /dev/null +++ b/testing/web-platform/tests/preload/preload-type-match.html @@ -0,0 +1,78 @@ + +Makes sure that only matching types are loaded + + + + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/preload/preload-with-type.html b/testing/web-platform/tests/preload/preload-with-type.html new file mode 100644 index 0000000000..7f92606cb7 --- /dev/null +++ b/testing/web-platform/tests/preload/preload-with-type.html @@ -0,0 +1,84 @@ + +Makes sure that preloaded resources with a type attribute trigger the onload event + + + + + + + + + + + + + + + + + + + + + + diff --git a/testing/web-platform/tests/preload/preload-xhr.html b/testing/web-platform/tests/preload/preload-xhr.html new file mode 100644 index 0000000000..53515bfa33 --- /dev/null +++ b/testing/web-platform/tests/preload/preload-xhr.html @@ -0,0 +1,57 @@ + + + + + diff --git a/testing/web-platform/tests/preload/reflected-as-value.html b/testing/web-platform/tests/preload/reflected-as-value.html new file mode 100644 index 0000000000..da8dad7803 --- /dev/null +++ b/testing/web-platform/tests/preload/reflected-as-value.html @@ -0,0 +1,27 @@ + + + + diff --git a/testing/web-platform/tests/preload/resources/A4.ogv b/testing/web-platform/tests/preload/resources/A4.ogv new file mode 100644 index 0000000000..de99616ece Binary files /dev/null and b/testing/web-platform/tests/preload/resources/A4.ogv differ diff --git a/testing/web-platform/tests/preload/resources/A4.ogv.sub.headers b/testing/web-platform/tests/preload/resources/A4.ogv.sub.headers new file mode 100644 index 0000000000..360e6686bf --- /dev/null +++ b/testing/web-platform/tests/preload/resources/A4.ogv.sub.headers @@ -0,0 +1 @@ +Cache-Control: max-age=1000 diff --git a/testing/web-platform/tests/preload/resources/cross-origin-module.py b/testing/web-platform/tests/preload/resources/cross-origin-module.py new file mode 100644 index 0000000000..35dce5401c --- /dev/null +++ b/testing/web-platform/tests/preload/resources/cross-origin-module.py @@ -0,0 +1,9 @@ +def main(request, response): + headers = [ + (b"Content-Type", b"text/javascript"), + (b"Access-Control-Allow-Origin", request.headers.get(b"Origin")), + (b"Timing-Allow-Origin", request.headers.get(b"Origin")), + (b"Access-Control-Allow-Credentials", b"true") + ] + + return headers, u"// Cross-origin module, nothing to see here" diff --git a/testing/web-platform/tests/preload/resources/dummy-preloads-subresource.css b/testing/web-platform/tests/preload/resources/dummy-preloads-subresource.css new file mode 100644 index 0000000000..5097166a05 --- /dev/null +++ b/testing/web-platform/tests/preload/resources/dummy-preloads-subresource.css @@ -0,0 +1 @@ +/* This is just a dummy, empty CSS file */ diff --git a/testing/web-platform/tests/preload/resources/dummy-preloads-subresource.css.sub.headers b/testing/web-platform/tests/preload/resources/dummy-preloads-subresource.css.sub.headers new file mode 100644 index 0000000000..f6b4b491ce --- /dev/null +++ b/testing/web-platform/tests/preload/resources/dummy-preloads-subresource.css.sub.headers @@ -0,0 +1,2 @@ +Cache-Control: max-age=1000 +Link: ; rel=preload;as=font;crossorigin diff --git a/testing/web-platform/tests/preload/resources/dummy.css b/testing/web-platform/tests/preload/resources/dummy.css new file mode 100644 index 0000000000..5097166a05 --- /dev/null +++ b/testing/web-platform/tests/preload/resources/dummy.css @@ -0,0 +1 @@ +/* This is just a dummy, empty CSS file */ diff --git a/testing/web-platform/tests/preload/resources/dummy.css.sub.headers b/testing/web-platform/tests/preload/resources/dummy.css.sub.headers new file mode 100644 index 0000000000..360e6686bf --- /dev/null +++ b/testing/web-platform/tests/preload/resources/dummy.css.sub.headers @@ -0,0 +1 @@ +Cache-Control: max-age=1000 diff --git a/testing/web-platform/tests/preload/resources/dummy.js b/testing/web-platform/tests/preload/resources/dummy.js new file mode 100644 index 0000000000..cfcb9d89a1 --- /dev/null +++ b/testing/web-platform/tests/preload/resources/dummy.js @@ -0,0 +1 @@ +// This is example JS content. Nothing to see here. diff --git a/testing/web-platform/tests/preload/resources/dummy.js.sub.headers b/testing/web-platform/tests/preload/resources/dummy.js.sub.headers new file mode 100644 index 0000000000..360e6686bf --- /dev/null +++ b/testing/web-platform/tests/preload/resources/dummy.js.sub.headers @@ -0,0 +1 @@ +Cache-Control: max-age=1000 diff --git a/testing/web-platform/tests/preload/resources/dummy.xml b/testing/web-platform/tests/preload/resources/dummy.xml new file mode 100644 index 0000000000..0d88d0cb3e --- /dev/null +++ b/testing/web-platform/tests/preload/resources/dummy.xml @@ -0,0 +1,2 @@ + +Text.me diff --git a/testing/web-platform/tests/preload/resources/dummy.xml.sub.headers b/testing/web-platform/tests/preload/resources/dummy.xml.sub.headers new file mode 100644 index 0000000000..360e6686bf --- /dev/null +++ b/testing/web-platform/tests/preload/resources/dummy.xml.sub.headers @@ -0,0 +1 @@ +Cache-Control: max-age=1000 diff --git a/testing/web-platform/tests/preload/resources/echo-preload-header.py b/testing/web-platform/tests/preload/resources/echo-preload-header.py new file mode 100644 index 0000000000..5cfb9e8c25 --- /dev/null +++ b/testing/web-platform/tests/preload/resources/echo-preload-header.py @@ -0,0 +1,16 @@ +import os +from wptserve.utils import isomorphic_encode + +def main(request, response): + response.headers.set(b"Content-Type", request.GET.first(b"type")) + link = request.GET.first(b"link") + response.headers.set(b"Access-Control-Allow-Origin", b"*") + response.headers.set(b"Access-Control-Allow-Credentials", b"true") + if link is not None: + response.headers.set(b"Link", link) + + if b"file" in request.GET: + path = os.path.join(os.path.dirname(isomorphic_encode(__file__)), request.GET.first(b"file")); + response.content = open(path, mode=u'rb').read(); + else: + return request.GET.first(b"content") diff --git a/testing/web-platform/tests/preload/resources/echo-referrer.py b/testing/web-platform/tests/preload/resources/echo-referrer.py new file mode 100644 index 0000000000..287e000f8f --- /dev/null +++ b/testing/web-platform/tests/preload/resources/echo-referrer.py @@ -0,0 +1,6 @@ +def main(request, response): + response_headers = [(b"Access-Control-Allow-Origin", b"*"), (b"Content-Type", b"text/javascript")] + body = b""" + window.referrers["%s"] = "%s"; + """ % (request.GET.first(b"uid", b""), request.headers.get(b"referer", b"")) + return (200, response_headers, body) diff --git a/testing/web-platform/tests/preload/resources/echo-with-cors.py b/testing/web-platform/tests/preload/resources/echo-with-cors.py new file mode 100644 index 0000000000..06d30c303c --- /dev/null +++ b/testing/web-platform/tests/preload/resources/echo-with-cors.py @@ -0,0 +1,8 @@ +def main(request, response): + response.headers.set(b"Content-Type", request.GET.first(b"type")) + origin = request.headers.get('Origin') + if origin is not None: + response.headers.set(b"Access-Control-Allow-Origin", origin) + response.headers.set(b"Access-Control-Allow-Credentials", b"true") + + return request.GET.first(b"content") diff --git a/testing/web-platform/tests/preload/resources/empty.html b/testing/web-platform/tests/preload/resources/empty.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/testing/web-platform/tests/preload/resources/empty.html.sub.headers b/testing/web-platform/tests/preload/resources/empty.html.sub.headers new file mode 100644 index 0000000000..360e6686bf --- /dev/null +++ b/testing/web-platform/tests/preload/resources/empty.html.sub.headers @@ -0,0 +1 @@ +Cache-Control: max-age=1000 diff --git a/testing/web-platform/tests/preload/resources/font.ttf b/testing/web-platform/tests/preload/resources/font.ttf new file mode 100644 index 0000000000..4d4785a412 Binary files /dev/null and b/testing/web-platform/tests/preload/resources/font.ttf differ diff --git a/testing/web-platform/tests/preload/resources/font.ttf.sub.headers b/testing/web-platform/tests/preload/resources/font.ttf.sub.headers new file mode 100644 index 0000000000..baff318e67 --- /dev/null +++ b/testing/web-platform/tests/preload/resources/font.ttf.sub.headers @@ -0,0 +1,2 @@ +Access-Control-Allow-Origin: {{header_or_default(Origin, *)}} +Access-Control-Allow-Credentials: true diff --git a/testing/web-platform/tests/preload/resources/foo.vtt b/testing/web-platform/tests/preload/resources/foo.vtt new file mode 100644 index 0000000000..b533895c60 --- /dev/null +++ b/testing/web-platform/tests/preload/resources/foo.vtt @@ -0,0 +1,4 @@ +WEBVTT + +00:00:00.000 --> 00:00:05.000 +Foo diff --git a/testing/web-platform/tests/preload/resources/foo.vtt.sub.headers b/testing/web-platform/tests/preload/resources/foo.vtt.sub.headers new file mode 100644 index 0000000000..360e6686bf --- /dev/null +++ b/testing/web-platform/tests/preload/resources/foo.vtt.sub.headers @@ -0,0 +1 @@ +Cache-Control: max-age=1000 diff --git a/testing/web-platform/tests/preload/resources/link-header-referrer-policy.html b/testing/web-platform/tests/preload/resources/link-header-referrer-policy.html new file mode 100644 index 0000000000..dd2144d507 --- /dev/null +++ b/testing/web-platform/tests/preload/resources/link-header-referrer-policy.html @@ -0,0 +1,26 @@ + + + + + diff --git a/testing/web-platform/tests/preload/resources/link-header-referrer-policy.py b/testing/web-platform/tests/preload/resources/link-header-referrer-policy.py new file mode 100644 index 0000000000..984518d364 --- /dev/null +++ b/testing/web-platform/tests/preload/resources/link-header-referrer-policy.py @@ -0,0 +1,11 @@ +def main(request, response): + response_headers = [(b"Link", b"<%s>;rel=\"preload\";%s;as=\"script\"" % + (request.GET.first(b"href", b""), + request.GET.first(b"preload-policy", b"")))] + body = "" + body_name_list = __file__.split(".")[:-1] + body_name_list.append("html") + filename = ".".join(body_name_list) + with open(filename, 'r+b') as f: + body = f.readlines() + return (200, response_headers, body) diff --git a/testing/web-platform/tests/preload/resources/module1.js b/testing/web-platform/tests/preload/resources/module1.js new file mode 100644 index 0000000000..ebaeae7ac7 --- /dev/null +++ b/testing/web-platform/tests/preload/resources/module1.js @@ -0,0 +1,2 @@ +import { y } from './module2.js'; +export let x = y + 1; \ No newline at end of file diff --git a/testing/web-platform/tests/preload/resources/module1.mjs b/testing/web-platform/tests/preload/resources/module1.mjs new file mode 100644 index 0000000000..ebaeae7ac7 --- /dev/null +++ b/testing/web-platform/tests/preload/resources/module1.mjs @@ -0,0 +1,2 @@ +import { y } from './module2.js'; +export let x = y + 1; \ No newline at end of file diff --git a/testing/web-platform/tests/preload/resources/module2.js b/testing/web-platform/tests/preload/resources/module2.js new file mode 100644 index 0000000000..e4e3217b8c --- /dev/null +++ b/testing/web-platform/tests/preload/resources/module2.js @@ -0,0 +1 @@ +export let y = 1; diff --git a/testing/web-platform/tests/preload/resources/modulepreload-iframe.html b/testing/web-platform/tests/preload/resources/modulepreload-iframe.html new file mode 100644 index 0000000000..1d3d21f4d9 --- /dev/null +++ b/testing/web-platform/tests/preload/resources/modulepreload-iframe.html @@ -0,0 +1,20 @@ + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/preload/resources/prefetch-exec.html b/testing/web-platform/tests/preload/resources/prefetch-exec.html new file mode 100644 index 0000000000..1d6765bc93 --- /dev/null +++ b/testing/web-platform/tests/preload/resources/prefetch-exec.html @@ -0,0 +1,9 @@ + + +Message BC + + diff --git a/testing/web-platform/tests/preload/resources/prefetch-helper.js b/testing/web-platform/tests/preload/resources/prefetch-helper.js new file mode 100644 index 0000000000..367d4824c4 --- /dev/null +++ b/testing/web-platform/tests/preload/resources/prefetch-helper.js @@ -0,0 +1,22 @@ +async function get_prefetch_info(href) { + const response = await fetch(`${href}&mode=info`, {mode: "cors"}); + return await response.json(); +} + +async function prefetch(p = {}, t) { + const link = document.createElement("link"); + link.rel = "prefetch"; + link.as = p.as; + if (p.crossOrigin) + link.setAttribute("crossorigin", p.crossOrigin); + const uid = token(); + const params = new URLSearchParams(); + params.set("key", uid); + for (const key in p) + params.set(key, p[key]); + const origin = p.origin || ''; + link.href = `${origin}/preload/resources/prefetch-info.py?${params.toString()}`; + document.head.appendChild(link); + while (!(await get_prefetch_info(link.href)).length) { } + return {href: link.href, uid}; +} diff --git a/testing/web-platform/tests/preload/resources/prefetch-info.py b/testing/web-platform/tests/preload/resources/prefetch-info.py new file mode 100644 index 0000000000..04d942ba05 --- /dev/null +++ b/testing/web-platform/tests/preload/resources/prefetch-info.py @@ -0,0 +1,37 @@ +import os +from wptserve.utils import isomorphic_encode +from json import dumps, loads + +def main(request, response): + key = request.GET.first(b"key").decode("utf8") + mode = request.GET.first(b"mode", "content") + status = int(request.GET.first(b"status", b"200")) + stash = request.server.stash + cors = request.GET.first(b"cors", "true") + if cors == "true" or mode == b"info": + response.headers.set(b"Access-Control-Allow-Origin", b"*") + + response.status = status + with stash.lock: + requests = loads(stash.take(key) or '[]') + if mode == b"info": + response.headers.set(b"Content-Type", "application/json") + json_reqs = dumps(requests) + response.content = json_reqs + stash.put(key, json_reqs) + return + else: + headers = {} + for header, value in request.headers.items(): + headers[header.decode("utf8")] = value[0].decode("utf8") + path = request.url + requests.append({"headers": headers, "url": request.url}) + stash.put(key, dumps(requests)) + + response.headers.set(b"Content-Type", request.GET.first(b"type", "text/plain")) + response.headers.set(b"Cache-Control", request.GET.first(b"cache-control", b"max-age: 604800")) + if b"file" in request.GET: + path = os.path.join(os.path.dirname(isomorphic_encode(__file__)), os.path.basename(request.GET.first(b"file"))) + response.content = open(path, mode=u'rb').read() + else: + return request.GET.first(b"content", "123") diff --git a/testing/web-platform/tests/preload/resources/preload_helper.js b/testing/web-platform/tests/preload/resources/preload_helper.js new file mode 100644 index 0000000000..5b7a6eb52b --- /dev/null +++ b/testing/web-platform/tests/preload/resources/preload_helper.js @@ -0,0 +1,60 @@ +function stashPutUrl(token) { + return `/preload/resources/stash-put.py?key=${token}`; +} + +function encodedStashPutUrl(token) { + return encodeURIComponent(stashPutUrl(token)); +} + +async function hasArrivedAtServer(token) { + const res = await fetch(`/preload/resources/stash-take.py?key=${token}`); + assert_true(res.status === 200 || res.status === 404, + 'status must be either 200 or 404'); + return res.status === 200; +} + +function verifyPreloadAndRTSupport() +{ + var link = window.document.createElement("link"); + assert_true(link.relList && link.relList.supports("preload"), "Preload not supported"); + assert_true(!!window.PerformanceResourceTiming, "ResourceTiming not supported"); +} + +function getAbsoluteURL(url) +{ + return new URL(url, location.href).href; +} + +function verifyNumberOfResourceTimingEntries(url, number) +{ + assert_equals(numberOfResourceTimingEntries(url), number, url); +} + +function numberOfResourceTimingEntries(url) +{ + return performance.getEntriesByName(getAbsoluteURL(url)).length; +} + +// Verifies that the resource is loaded, but not downloaded from network +// more than once. This can be used to verify that a preloaded resource is +// not downloaded again when used. +function verifyLoadedAndNoDoubleDownload(url) { + var entries = performance.getEntriesByName(getAbsoluteURL(url)); + // UA may create separate RT entries for preload and normal load, + // so we just check (entries.length > 0). + assert_greater_than(entries.length, 0, url + ' should be loaded'); + + var numDownloads = 0; + entries.forEach(entry => { + // transferSize is zero if the resource is loaded from cache. + if (entry.transferSize > 0) { + numDownloads++; + } + }); + // numDownloads can be zero if the resource was already cached before running + // the test (for example, when the test is running repeatedly without + // clearing cache between runs). + assert_less_than_equal( + numDownloads, 1, + url + ' should be downloaded from network at most once'); +} diff --git a/testing/web-platform/tests/preload/resources/slow-exec.js b/testing/web-platform/tests/preload/resources/slow-exec.js new file mode 100644 index 0000000000..3b37da4ef4 --- /dev/null +++ b/testing/web-platform/tests/preload/resources/slow-exec.js @@ -0,0 +1,3 @@ +window.didLoadModule = false; +await new Promise(r => setTimeout(t, 5000)); +window.didLoadModule = true; diff --git a/testing/web-platform/tests/preload/resources/sound_5.oga b/testing/web-platform/tests/preload/resources/sound_5.oga new file mode 100644 index 0000000000..239ad2bd08 Binary files /dev/null and b/testing/web-platform/tests/preload/resources/sound_5.oga differ diff --git a/testing/web-platform/tests/preload/resources/sound_5.oga.sub.headers b/testing/web-platform/tests/preload/resources/sound_5.oga.sub.headers new file mode 100644 index 0000000000..360e6686bf --- /dev/null +++ b/testing/web-platform/tests/preload/resources/sound_5.oga.sub.headers @@ -0,0 +1 @@ +Cache-Control: max-age=1000 diff --git a/testing/web-platform/tests/preload/resources/square.png b/testing/web-platform/tests/preload/resources/square.png new file mode 100644 index 0000000000..01c9666a8d Binary files /dev/null and b/testing/web-platform/tests/preload/resources/square.png differ diff --git a/testing/web-platform/tests/preload/resources/square.png.sub.headers b/testing/web-platform/tests/preload/resources/square.png.sub.headers new file mode 100644 index 0000000000..360e6686bf --- /dev/null +++ b/testing/web-platform/tests/preload/resources/square.png.sub.headers @@ -0,0 +1 @@ +Cache-Control: max-age=1000 diff --git a/testing/web-platform/tests/preload/resources/stash-put.py b/testing/web-platform/tests/preload/resources/stash-put.py new file mode 100644 index 0000000000..f4bc87940e --- /dev/null +++ b/testing/web-platform/tests/preload/resources/stash-put.py @@ -0,0 +1,20 @@ +from wptserve.utils import isomorphic_decode + +def main(request, response): + if request.method == u'OPTIONS': + # CORS preflight + response.headers.set(b'Access-Control-Allow-Origin', b'*') + response.headers.set(b'Access-Control-Allow-Methods', b'*') + response.headers.set(b'Access-Control-Allow-Headers', b'*') + return 'done' + + url_dir = u'/'.join(request.url_parts.path.split(u'/')[:-1]) + u'/' + key = request.GET.first(b"key") + if b"value" in request.GET: + value = request.GET.first(b"value") + else: + value = b"value" + # value here must be a text string. It will be json.dump()'ed in stash-take.py. + request.server.stash.put(key, isomorphic_decode(value), url_dir) + response.headers.set(b'Access-Control-Allow-Origin', b'*') + return "done" diff --git a/testing/web-platform/tests/preload/resources/stash-take.py b/testing/web-platform/tests/preload/resources/stash-take.py new file mode 100644 index 0000000000..9977197cae --- /dev/null +++ b/testing/web-platform/tests/preload/resources/stash-take.py @@ -0,0 +1,14 @@ +from wptserve.handlers import json_handler + + +@json_handler +def main(request, response): + dir = u'/'.join(request.url_parts.path.split(u'/')[:-1]) + u'/' + key = request.GET.first(b"key") + response.headers.set(b'Access-Control-Allow-Origin', b'*') + value = request.server.stash.take(key, dir) + if value is None: + response.status = 404 + return 'No entry is found' + response.status = 200 + return value diff --git a/testing/web-platform/tests/preload/resources/syntax-error.js b/testing/web-platform/tests/preload/resources/syntax-error.js new file mode 100644 index 0000000000..471697a43b --- /dev/null +++ b/testing/web-platform/tests/preload/resources/syntax-error.js @@ -0,0 +1 @@ +;-) diff --git a/testing/web-platform/tests/preload/resources/white.mp4 b/testing/web-platform/tests/preload/resources/white.mp4 new file mode 100644 index 0000000000..ef609e4281 Binary files /dev/null and b/testing/web-platform/tests/preload/resources/white.mp4 differ diff --git a/testing/web-platform/tests/preload/resources/white.mp4.sub.headers b/testing/web-platform/tests/preload/resources/white.mp4.sub.headers new file mode 100644 index 0000000000..360e6686bf --- /dev/null +++ b/testing/web-platform/tests/preload/resources/white.mp4.sub.headers @@ -0,0 +1 @@ +Cache-Control: max-age=1000 diff --git a/testing/web-platform/tests/preload/single-download-late-used-preload.html b/testing/web-platform/tests/preload/single-download-late-used-preload.html new file mode 100644 index 0000000000..bf02fdb636 --- /dev/null +++ b/testing/web-platform/tests/preload/single-download-late-used-preload.html @@ -0,0 +1,23 @@ + +Ensure preloaded resources are not downloaded again when used + + + + + + diff --git a/testing/web-platform/tests/preload/single-download-preload.html b/testing/web-platform/tests/preload/single-download-preload.html new file mode 100644 index 0000000000..74dc00a4d7 --- /dev/null +++ b/testing/web-platform/tests/preload/single-download-preload.html @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + +
+ + + + +PASS - this text is here just so that the browser will download the font. diff --git a/testing/web-platform/tests/preload/subresource-integrity-font.html b/testing/web-platform/tests/preload/subresource-integrity-font.html new file mode 100644 index 0000000000..da705dcb13 --- /dev/null +++ b/testing/web-platform/tests/preload/subresource-integrity-font.html @@ -0,0 +1,201 @@ + +Subresource Integrity for font + + + + + + + + + + diff --git a/testing/web-platform/tests/preload/subresource-integrity-partial-image.html b/testing/web-platform/tests/preload/subresource-integrity-partial-image.html new file mode 100644 index 0000000000..108897c4d6 --- /dev/null +++ b/testing/web-platform/tests/preload/subresource-integrity-partial-image.html @@ -0,0 +1,28 @@ + + +Subresource Integrity Check + preload + partial image rendering + + + + + + + diff --git a/testing/web-platform/tests/preload/subresource-integrity.html b/testing/web-platform/tests/preload/subresource-integrity.html new file mode 100644 index 0000000000..58f59126ed --- /dev/null +++ b/testing/web-platform/tests/preload/subresource-integrity.html @@ -0,0 +1,381 @@ + + +Subresource Integrity + + + + + + + + +
+ +
+ -- cgit v1.2.3