diff options
author | Martin Robinson <mrobinson@igalia.com> | 2025-01-07 04:36:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-07 03:36:39 +0000 |
commit | fe8a22b72c42296ccbbd5c4f459936ea28c5dee2 (patch) | |
tree | 9749d88dc818a054c204ebbc5dc82878ced68c8d /components/script/dom/htmlimageelement.rs | |
parent | d252a631d292afc492b337c8b32a34b86139f99d (diff) | |
download | servo-fe8a22b72c42296ccbbd5c4f459936ea28c5dee2.tar.gz servo-fe8a22b72c42296ccbbd5c4f459936ea28c5dee2.zip |
script: Unsilence all main thread `TaskQueue` errors (#34849)
No longer hide errors while queueing tasks on the main thread. This
requires creating two types of `TaskSource`s: one for the main thread
and one that can be sent to other threads. This makes queueing a bit
more efficient on the main thread and more importantly, no longer hides
task queue errors.
Fixes #25688.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Diffstat (limited to 'components/script/dom/htmlimageelement.rs')
-rw-r--r-- | components/script/dom/htmlimageelement.rs | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index 293fc1200cd..274faf873f0 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -891,8 +891,7 @@ impl HTMLImageElement { self.abort_request(State::Broken, ImageRequestPhase::Current, can_gc); self.abort_request(State::Broken, ImageRequestPhase::Pending, can_gc); // Step 9. - // FIXME(nox): Why are errors silenced here? - let _ = task_source.queue(task!(image_null_source_error: move || { + task_source.queue(task!(image_null_source_error: move || { let this = this.root(); { let mut current_request = @@ -924,8 +923,7 @@ impl HTMLImageElement { self.abort_request(State::Broken, ImageRequestPhase::Pending, can_gc); // Step 12.1-12.5. let src = src.0; - // FIXME(nox): Why are errors silenced here? - let _ = task_source.queue(task!(image_selected_source_error: move || { + task_source.queue(task!(image_selected_source_error: move || { let this = this.root(); { let mut current_request = @@ -1016,7 +1014,7 @@ impl HTMLImageElement { let this = Trusted::new(self); let src = src.0; - let _ = window.task_manager().dom_manipulation_task_source().queue( + window.task_manager().dom_manipulation_task_source().queue( task!(image_load_event: move || { let this = this.root(); { @@ -1063,7 +1061,11 @@ impl HTMLImageElement { ) -> IpcSender<PendingImageResponse> { let trusted_node = Trusted::new(elem); let (responder_sender, responder_receiver) = ipc::channel().unwrap(); - let task_source = elem.owner_window().task_manager().networking_task_source(); + let task_source = elem + .owner_window() + .task_manager() + .networking_task_source() + .to_sendable(); let generation = elem.generation.get(); ROUTER.add_typed_route( @@ -1075,7 +1077,7 @@ impl HTMLImageElement { let element = trusted_node.clone(); let image: PendingImageResponse = message.unwrap(); let selected_source_clone = selected_source.clone(); - let _ = task_source.queue( + task_source.queue( task!(process_image_response_for_environment_change: move || { let element = element.root(); // Ignore any image response for a previous request that has been discarded. @@ -1240,7 +1242,7 @@ impl HTMLImageElement { let this = Trusted::new(self); let window = self.owner_window(); let src = src.0; - let _ = window.task_manager().dom_manipulation_task_source().queue( + window.task_manager().dom_manipulation_task_source().queue( task!(image_load_event: move || { let this = this.root(); let relevant_mutation = this.generation.get() != generation; |