Avoid marking image element as complete before its image data is available.

This commit is contained in:
Josh Matthews 2017-02-28 13:45:32 -05:00
parent db79dfb3aa
commit f79850754d
3 changed files with 30 additions and 1 deletions

View file

@ -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);

View file

@ -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"

View file

@ -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>