summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources')
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/blue-10.pngbin0 -> 76 bytes
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/cat.jpgbin0 -> 21474 bytes
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/green.pngbin0 -> 91 bytes
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image-and-stash.py44
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image-loading-lazy-below-viewport.html22
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image-loading-lazy-in-viewport.html20
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image.pngbin0 -> 11493 bytes
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/newwindow.html2
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/red.pngbin0 -> 510 bytes
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/referrer-checker-img.py14
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/sw.js20
-rw-r--r--testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/sw.js.headers1
12 files changed, 123 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/blue-10.png b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/blue-10.png
new file mode 100644
index 0000000000..62949e08d8
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/blue-10.png
Binary files differ
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/cat.jpg b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/cat.jpg
new file mode 100644
index 0000000000..a4f14f54d6
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/cat.jpg
Binary files differ
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/green.png b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/green.png
new file mode 100644
index 0000000000..25b76c3c6f
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/green.png
Binary files differ
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image-and-stash.py b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image-and-stash.py
new file mode 100644
index 0000000000..d16a3e591d
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image-and-stash.py
@@ -0,0 +1,44 @@
+# This is a simple implementation of a server-side stash that supports two
+# operations:
+# - increment:
+# Increments a value in the stash keyed by a given uuid, and returns an
+# image file
+# - read:
+# Returns the value in the stash keyed by a given uuid or 0 otherwise.
+# This is a read-only operation, and does not remove the value from the
+# stash as-is the default WPT stash behavior:
+# https://web-platform-tests.org/tools/wptserve/docs/stash.html.
+
+import os
+
+from wptserve.utils import isomorphic_decode
+
+def main(request, response):
+ if b"increment" in request.GET:
+ uuid = request.GET[b"increment"]
+
+ # First, increment the stash value keyed by `uuid`, and write it back to the
+ # stash. Writing it back to the stash is necessary since `take()` actually
+ # removes the value whereas we want to increment it.
+ stash_value = request.server.stash.take(uuid)
+ if stash_value is None:
+ stash_value = 0
+ request.server.stash.put(uuid, stash_value + 1)
+
+ # Return a basic image.
+ response_headers = [(b"Content-Type", b"image/png")]
+ image_path = os.path.join(os.path.dirname(isomorphic_decode(__file__)), u"image.png")
+ return (200, response_headers, open(image_path, mode='rb').read())
+
+ elif b"read" in request.GET:
+ uuid = request.GET[b"read"]
+ stash_value = request.server.stash.take(uuid)
+
+ if stash_value is None:
+ stash_value = 0
+ # Write the stash value keyed by `uuid` back to the stash. This is necessary
+ # because `take()` actually removes it, but we want a read-only read.
+ request.server.stash.put(uuid, stash_value);
+ return (200, [], str(stash_value))
+
+ return (404 , [], "Not found")
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image-loading-lazy-below-viewport.html b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image-loading-lazy-below-viewport.html
new file mode 100644
index 0000000000..f25bd6f4d0
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image-loading-lazy-below-viewport.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<div style="height:1000vh;"></div>
+
+<img id="img" loading="lazy" src="image.png?lazy-below-viewport">
+
+<script>
+ const img = document.querySelector('#img');
+
+ img.addEventListener("load", () => {
+ parent.postMessage("image_loaded", "*");
+ });
+
+ window.addEventListener("load", () => {
+ parent.postMessage("window_loaded", "*");
+ });
+
+ window.addEventListener("message", event => {
+ if (event.data == "scroll") {
+ img.scrollIntoView();
+ }
+ });
+</script>
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image-loading-lazy-in-viewport.html b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image-loading-lazy-in-viewport.html
new file mode 100644
index 0000000000..bafdacc883
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image-loading-lazy-in-viewport.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+
+<!-- This frame is used by image-loading-lazy-in-cross-origin-iframe-002.sub.html -->
+
+<img id="img" loading="lazy">
+
+<script>
+ const img = document.querySelector('#img');
+
+ // Prevent the list of available images check from loading the image non-lazily.
+ img.src = "image.png?image-loading-lazy-in-viewport-" + Math.random() + "-" + Date.now();
+
+ img.addEventListener("load", () => {
+ parent.postMessage("image_loaded", "*");
+ });
+
+ window.addEventListener("load", () => {
+ parent.postMessage("window_loaded", "*");
+ });
+</script>
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image.png b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image.png
new file mode 100644
index 0000000000..b712825093
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/image.png
Binary files differ
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/newwindow.html b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/newwindow.html
new file mode 100644
index 0000000000..735b8f6213
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/newwindow.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<div style="height:1000vh;"></div>
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/red.png b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/red.png
new file mode 100644
index 0000000000..57bf3ddc52
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/red.png
Binary files differ
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/referrer-checker-img.py b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/referrer-checker-img.py
new file mode 100644
index 0000000000..bb2071cb97
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/referrer-checker-img.py
@@ -0,0 +1,14 @@
+import os
+
+from wptserve.utils import isomorphic_decode
+
+# Returns a valid image response when request's |referrer| matches
+# |expected_referrer|.
+def main(request, response):
+ referrer = request.headers.get(b"referer", b"")
+ expected_referrer = request.GET.first(b"expected_referrer", b"")
+ response_headers = [(b"Content-Type", b"image/png")]
+ if referrer == expected_referrer:
+ image_path = os.path.join(os.path.dirname(isomorphic_decode(__file__)), u"image.png")
+ return (200, response_headers, open(image_path, mode='rb').read())
+ return (404, response_headers, u"Not found")
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/sw.js b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/sw.js
new file mode 100644
index 0000000000..8bd079f790
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/sw.js
@@ -0,0 +1,20 @@
+addEventListener('install', (event) => {
+ skipWaiting();
+});
+
+addEventListener('activate', (event) => {
+ event.waitUntil(clients.claim());
+});
+
+async function broadcast(msg) {
+ const allClients = await clients.matchAll();
+ for (const client of allClients) {
+ client.postMessage(msg);
+ }
+}
+
+addEventListener('fetch', (event) => {
+ event.waitUntil(
+ broadcast({ url: event.request.url, mode: event.request.mode })
+ )
+});
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/sw.js.headers b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/sw.js.headers
new file mode 100644
index 0000000000..3c534471c8
--- /dev/null
+++ b/testing/web-platform/tests/html/semantics/embedded-content/the-img-element/resources/sw.js.headers
@@ -0,0 +1 @@
+Service-Worker-Allowed: /html/semantics/embedded-content/the-img-element/