aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/htmlimageelement.rs4
-rw-r--r--tests/wpt/metadata/MANIFEST.json10
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/delay-load-event.html17
3 files changed, 30 insertions, 1 deletions
diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs
index 65897f1c91a..9379ebb48a9 100644
--- a/components/script/dom/htmlimageelement.rs
+++ b/components/script/dom/htmlimageelement.rs
@@ -296,7 +296,9 @@ impl HTMLImageElement {
self.upcast::<EventTarget>().fire_event(atom!("error"));
}
- LoadBlocker::terminate(&mut self.current_request.borrow_mut().blocker);
+ if trigger_image_load || trigger_image_error {
+ LoadBlocker::terminate(&mut self.current_request.borrow_mut().blocker);
+ }
// Trigger reflow
let window = window_from_node(self);
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 70715054688..2223d4e2282 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -93299,6 +93299,12 @@
{}
]
],
+ "html/semantics/embedded-content/the-img-element/delay-load-event.html": [
+ [
+ "/html/semantics/embedded-content/the-img-element/delay-load-event.html",
+ {}
+ ]
+ ],
"html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html": [
[
"/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html",
@@ -176326,6 +176332,10 @@
"bdbfbe9a5908c6233bd7b9697a0762bd2e0f6ede",
"testharness"
],
+ "html/semantics/embedded-content/the-img-element/delay-load-event.html": [
+ "e4782535af755b29864fd3de67bbdd0de13f19d7",
+ "testharness"
+ ],
"html/semantics/embedded-content/the-img-element/document-adopt-base-url.html": [
"a4b542eb344cca6bdcceceb3aa7006e900f5400f",
"reftest"
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/delay-load-event.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/delay-load-event.html
new file mode 100644
index 00000000000..c67074a40d8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/delay-load-event.html
@@ -0,0 +1,17 @@
+<html>
+<head>
+<title>Image element delays window's load event</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<img src="resources/cat.jpg?pipe=trickle(d2)">
+<script>
+ async_test(function(t) {
+ var saw_img_load = false;
+ document.querySelector('img').onload = t.step_func(function() {
+ saw_img_load = true;
+ });
+ addEventListener('load', t.step_func_done(function() {
+ assert_true(saw_img_load);
+ }));
+ });
+</script>