diff options
author | Josh Matthews <josh@joshmatthews.net> | 2024-10-18 13:26:54 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-18 17:26:54 +0000 |
commit | b85093ad7461122447298d91acd19040c31c42a9 (patch) | |
tree | b83e2e52452cf3e93caefa0461bf66be25c97205 /components/script/dom/htmlimageelement.rs | |
parent | a58da5aa832a67c827021592fe0397a532491c4c (diff) | |
download | servo-b85093ad7461122447298d91acd19040c31c42a9.tar.gz servo-b85093ad7461122447298d91acd19040c31c42a9.zip |
Prevent moving CanGc values between threads/tasks (#33902)
* Make CanGc non-sendable, and add documentation.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Update CanGc usage to fix usages that were moved between threads/tasks.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Diffstat (limited to 'components/script/dom/htmlimageelement.rs')
-rw-r--r-- | components/script/dom/htmlimageelement.rs | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index 797ff8557fc..d2bfff7721d 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -516,12 +516,7 @@ impl HTMLImageElement { }); self.pending_request.borrow_mut().final_url = Some(url); self.pending_request.borrow_mut().image = Some(image); - self.finish_reacting_to_environment_change( - src, - generation, - selected_pixel_density, - can_gc, - ); + self.finish_reacting_to_environment_change(src, generation, selected_pixel_density); }, ImageResponse::MetadataLoaded(meta) => { self.pending_request.borrow_mut().metadata = Some(meta); @@ -1067,7 +1062,6 @@ impl HTMLImageElement { elem: &HTMLImageElement, selected_source: String, selected_pixel_density: f64, - can_gc: CanGc, ) -> IpcSender<PendingImageResponse> { let trusted_node = Trusted::new(elem); let (responder_sender, responder_receiver) = ipc::channel().unwrap(); @@ -1094,7 +1088,7 @@ impl HTMLImageElement { if generation == element.generation.get() { element.process_image_response_for_environment_change(image.response, USVString::from(selected_source_clone), generation, - selected_pixel_density, can_gc); + selected_pixel_density, CanGc::note()); } }), &canceller, @@ -1160,7 +1154,6 @@ impl HTMLImageElement { self, selected_source.0.clone(), selected_pixel_density, - can_gc, ); let cache_result = image_cache.track_image( img_url.clone(), @@ -1177,7 +1170,6 @@ impl HTMLImageElement { selected_source, generation, selected_pixel_density, - can_gc, ) }, ImageCacheResult::Available(ImageOrMetadataAvailable::MetadataAvailable(m)) => { @@ -1251,7 +1243,6 @@ impl HTMLImageElement { src: USVString, generation: u32, selected_pixel_density: f64, - can_gc: CanGc, ) { let this = Trusted::new(self); let window = window_from_node(self); @@ -1262,7 +1253,7 @@ impl HTMLImageElement { let relevant_mutation = this.generation.get() != generation; // Step 15.1 if relevant_mutation { - this.abort_request(State::Unavailable, ImageRequestPhase::Pending, can_gc); + this.abort_request(State::Unavailable, ImageRequestPhase::Pending, CanGc::note()); return; } // Step 15.2 @@ -1280,7 +1271,7 @@ impl HTMLImageElement { // Step 15.5 mem::swap(&mut this.current_request.borrow_mut(), &mut pending_request); - this.abort_request(State::Unavailable, ImageRequestPhase::Pending, can_gc); + this.abort_request(State::Unavailable, ImageRequestPhase::Pending, CanGc::note()); } // Step 15.6 |