diff options
author | webbeef <me@webbeef.org> | 2024-10-10 20:53:39 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-11 03:53:39 +0000 |
commit | 2b71130a8a95d0c723532d2486493b5db0c9e1b1 (patch) | |
tree | 0d6ea3caab12b9787f3f76cd8056272c82eb4afc /components/script/dom/xrsession.rs | |
parent | c00c6e728ddb82d6cb646eb924a73c4b43a798a4 (diff) | |
download | servo-2b71130a8a95d0c723532d2486493b5db0c9e1b1.tar.gz servo-2b71130a8a95d0c723532d2486493b5db0c9e1b1.zip |
Various CanGc fixes (#33800)
* CanGc fix for pagetransitionevent
Signed-off-by: webbeef <me@webbeef.org>
* CanGc fix for dom/node
Signed-off-by: webbeef <me@webbeef.org>
* CanGc fix for gamepad
Signed-off-by: webbeef <me@webbeef.org>
* CanGc fix for gpu
Signed-off-by: webbeef <me@webbeef.org>
* CanGc fix for dom/element
Signed-off-by: webbeef <me@webbeef.org>
* CanGc fix for xhr
Signed-off-by: webbeef <me@webbeef.org>
* CanGc fix for dom/worker
Signed-off-by: webbeef <me@webbeef.org>
* CanGc fix for rtcdatachannel
Signed-off-by: webbeef <me@webbeef.org>
* CanGc fix for rtcerror
Signed-off-by: webbeef <me@webbeef.org>
* Address review comments
Signed-off-by: webbeef <me@webbeef.org>
---------
Signed-off-by: webbeef <me@webbeef.org>
Diffstat (limited to 'components/script/dom/xrsession.rs')
-rw-r--r-- | components/script/dom/xrsession.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/components/script/dom/xrsession.rs b/components/script/dom/xrsession.rs index 43ed08df3d8..c146cef6da2 100644 --- a/components/script/dom/xrsession.rs +++ b/components/script/dom/xrsession.rs @@ -68,6 +68,7 @@ use crate::dom::xrspace::XRSpace; use crate::realms::InRealm; use crate::script_runtime::JSContext; use crate::task_source::TaskSource; +use crate::script_runtime::CanGc; #[dom_struct] pub struct XRSession { @@ -240,7 +241,7 @@ impl XRSession { let this = this.clone(); let _ = task_source.queue_with_canceller( task!(xr_event_callback: move || { - this.root().event_callback(message.to().unwrap()); + this.root().event_callback(message.to().unwrap(), CanGc::note()); }), &canceller, ); @@ -275,13 +276,13 @@ impl XRSession { let _ = task_source.queue_with_canceller( task!(session_initial_inputs: move || { let this = this.root(); - this.input_sources.add_input_sources(&this, &initial_inputs); + this.input_sources.add_input_sources(&this, &initial_inputs, CanGc::note()); }), &canceller, ); } - fn event_callback(&self, event: XREvent) { + fn event_callback(&self, event: XREvent, can_gc: CanGc) { match event { XREvent::SessionEnd => { // https://immersive-web.github.io/webxr/#shut-down-the-session @@ -366,13 +367,14 @@ impl XRSession { self.dirty_layers(); }, XREvent::AddInput(info) => { - self.input_sources.add_input_sources(self, &[info]); + self.input_sources.add_input_sources(self, &[info], can_gc); }, XREvent::RemoveInput(id) => { self.input_sources.remove_input_source(self, id); }, XREvent::UpdateInput(id, source) => { - self.input_sources.add_remove_input_source(self, id, source); + self.input_sources + .add_remove_input_source(self, id, source, can_gc); }, XREvent::InputChanged(id, frame) => { self.input_frames.borrow_mut().insert(id, frame); |