diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index 4a9a94dccde..505b649e50c 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -22,7 +22,7 @@ use crate::dom::bindings::str::{DOMString, USVString}; use crate::dom::document::Document; use crate::dom::element::{reflect_cross_origin_attribute, set_cross_origin_attribute}; use crate::dom::element::{AttributeMutation, Element, RawLayoutElementHelpers}; -use crate::dom::event::{Event, EventBubbles, EventCancelable}; +use crate::dom::event::Event; use crate::dom::eventtarget::EventTarget; use crate::dom::globalscope::GlobalScope; use crate::dom::htmlareaelement::HTMLAreaElement; @@ -37,7 +37,6 @@ use crate::dom::node::{ document_from_node, window_from_node, BindContext, Node, NodeDamage, ShadowIncluding, }; use crate::dom::performanceresourcetiming::InitiatorType; -use crate::dom::progressevent::ProgressEvent; use crate::dom::values::UNSIGNED_LONG_MAX; use crate::dom::virtualmethods::VirtualMethods; use crate::dom::window::Window; @@ -809,26 +808,7 @@ impl HTMLImageElement { return; }, }; - // Step 10. - let target = Trusted::new(self.upcast::()); - // FIXME(nox): Why are errors silenced here? - let _ = task_source.queue( - task!(fire_progress_event: move || { - let target = target.root(); - let event = ProgressEvent::new( - &target.global(), - atom!("loadstart"), - EventBubbles::DoesNotBubble, - EventCancelable::NotCancelable, - false, - 0, - 0, - ); - event.upcast::().fire(&target); - }), - window.upcast(), - ); // Step 11 let base_url = document.base_url(); let parsed_url = base_url.join(&src.0); @@ -850,7 +830,6 @@ impl HTMLImageElement { current_request.source_url = Some(USVString(src)) } this.upcast::().fire_event(atom!("error")); - this.upcast::().fire_event(atom!("loadend")); // FIXME(nox): According to the spec, setting the current // request to the broken state is done prior to queuing a diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index f692fd6e6cd..3d023211792 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -640951,7 +640951,7 @@ "support" ], "html/semantics/embedded-content/the-img-element/invalid-src.html": [ - "c3c57ee3c0a05019be4db6650eeefdd53648401e", + "37ea8ce754a3feaa3e305f10899632d231c92363", "testharness" ], "html/semantics/embedded-content/the-img-element/ismap/img-ismap-coordinates-iframe-after.html": [ diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/historical-progress-event.window.js.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/historical-progress-event.window.js.ini deleted file mode 100644 index d691ef02bd6..00000000000 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/historical-progress-event.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[historical-progress-event.window.html] - [ does not support ProgressEvent or loadstart/progress/loadend] - expected: FAIL - diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html index c3c57ee3c0a..37ea8ce754a 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html @@ -9,41 +9,23 @@ async_test(function(t) { var img = document.getElementById("brokenurl"); img.src = "http://["; - var errorevent = false; - var loadendevent = false; // The errors should be queued in the event loop, so they should only trigger // after this block of code finishes, not during the img.src setter itself img.addEventListener('error', t.step_func(function() { - assert_false(loadendevent, "loadend should fire after error"); - errorevent = true; - t.step_timeout(t.step_func_done(function() { - assert_true(loadendevent, "loadend event fired"); - }), 0); - })); - img.addEventListener('loadend', t.step_func(function() { - assert_true(errorevent, "error event fired"); - loadendevent = true; + t.step_timeout(t.step_func_done(), 0); })); }, 'src="http://["'); async_test(function(t) { var img = document.getElementById("emptysrc"); img.src = ""; - var loadendevent = false; // Setting src to empty string triggers only error event. // The errors should be queued in the event loop, so they should only trigger // after this block of code finishes, not during the img.src setter itself img.addEventListener('error', t.step_func(function() { - // Queue this check in the event loop to check there is no loadend event - // fired. - t.step_timeout(t.step_func_done(function() { - assert_false(loadendevent, "loadend event should not be fired"); - }), 0); - })); - img.addEventListener('loadend', t.step_func(function() { - loadendevent = true; + t.step_timeout(t.step_func_done(), 0); })); }, 'src=""');