mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
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>
This commit is contained in:
parent
c00c6e728d
commit
2b71130a8a
24 changed files with 168 additions and 119 deletions
|
@ -15,6 +15,7 @@ use crate::dom::globalscope::GlobalScope;
|
|||
use crate::dom::xrinputsource::XRInputSource;
|
||||
use crate::dom::xrinputsourceschangeevent::XRInputSourcesChangeEvent;
|
||||
use crate::dom::xrsession::XRSession;
|
||||
use crate::script_runtime::CanGc;
|
||||
|
||||
#[dom_struct]
|
||||
pub struct XRInputSourceArray {
|
||||
|
@ -34,7 +35,7 @@ impl XRInputSourceArray {
|
|||
reflect_dom_object(Box::new(XRInputSourceArray::new_inherited()), global)
|
||||
}
|
||||
|
||||
pub fn add_input_sources(&self, session: &XRSession, inputs: &[InputSource]) {
|
||||
pub fn add_input_sources(&self, session: &XRSession, inputs: &[InputSource], can_gc: CanGc) {
|
||||
let mut input_sources = self.input_sources.borrow_mut();
|
||||
let global = self.global();
|
||||
|
||||
|
@ -46,7 +47,7 @@ impl XRInputSourceArray {
|
|||
!input_sources.iter().any(|i| i.id() == info.id),
|
||||
"Should never add a duplicate input id!"
|
||||
);
|
||||
let input = XRInputSource::new(&global, session, info.clone());
|
||||
let input = XRInputSource::new(&global, session, info.clone(), can_gc);
|
||||
input_sources.push(Dom::from_ref(&input));
|
||||
added.push(input);
|
||||
}
|
||||
|
@ -90,7 +91,13 @@ impl XRInputSourceArray {
|
|||
event.upcast::<Event>().fire(session.upcast());
|
||||
}
|
||||
|
||||
pub fn add_remove_input_source(&self, session: &XRSession, id: InputId, info: InputSource) {
|
||||
pub fn add_remove_input_source(
|
||||
&self,
|
||||
session: &XRSession,
|
||||
id: InputId,
|
||||
info: InputSource,
|
||||
can_gc: CanGc,
|
||||
) {
|
||||
let mut input_sources = self.input_sources.borrow_mut();
|
||||
let global = self.global();
|
||||
let root;
|
||||
|
@ -103,7 +110,7 @@ impl XRInputSourceArray {
|
|||
&[]
|
||||
};
|
||||
input_sources.retain(|i| i.id() != id);
|
||||
let input = XRInputSource::new(&global, session, info);
|
||||
let input = XRInputSource::new(&global, session, info, can_gc);
|
||||
input_sources.push(Dom::from_ref(&input));
|
||||
|
||||
let added = [input];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue