From f79850754df974a9f58c235b0742d7e6b9f9559c Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 28 Feb 2017 13:45:32 -0500 Subject: [PATCH] Avoid marking image element as complete before its image data is available. --- components/script/dom/htmlimageelement.rs | 4 +++- tests/wpt/metadata/MANIFEST.json | 10 ++++++++++ .../the-img-element/delay-load-event.html | 17 +++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/delay-load-event.html diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index 65897f1c91ae..9379ebb48a95 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -296,7 +296,9 @@ impl HTMLImageElement { self.upcast::().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 707150546885..2223d4e22827 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 000000000000..c67074a40d89 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/delay-load-event.html @@ -0,0 +1,17 @@ + + +Image element delays window's load event + + + +