diff --git a/components/script/dom/baseaudiocontext.rs b/components/script/dom/baseaudiocontext.rs index 82fa1152d91..0542b8a6273 100644 --- a/components/script/dom/baseaudiocontext.rs +++ b/components/script/dom/baseaudiocontext.rs @@ -381,11 +381,12 @@ impl BaseAudioContextMethods for BaseAudioContext { } /// - fn CreateStereoPanner(&self) -> Fallible> { + fn CreateStereoPanner(&self, can_gc: CanGc) -> Fallible> { StereoPannerNode::new( self.global().as_window(), self, &StereoPannerOptions::empty(), + can_gc, ) } diff --git a/components/script/dom/bindings/codegen/Bindings.conf b/components/script/dom/bindings/codegen/Bindings.conf index a9c540a175e..1316b444e5b 100644 --- a/components/script/dom/bindings/codegen/Bindings.conf +++ b/components/script/dom/bindings/codegen/Bindings.conf @@ -25,7 +25,7 @@ DOMInterfaces = { 'BaseAudioContext': { 'inRealms': ['DecodeAudioData', 'Resume', 'ParseFromString', 'GetBounds', 'GetClientRects'], - 'canGc': ['CreateOscillator'], + 'canGc': ['CreateOscillator', 'CreateStereoPanner'], }, 'Blob': { diff --git a/components/script/dom/gamepad.rs b/components/script/dom/gamepad.rs index 75c4c1c8b2a..7f69f69af84 100644 --- a/components/script/dom/gamepad.rs +++ b/components/script/dom/gamepad.rs @@ -246,7 +246,7 @@ impl Gamepad { } pub fn notify_event(&self, event_type: GamepadEventType) { - let event = GamepadEvent::new_with_type(&self.global(), event_type, self); + let event = GamepadEvent::new_with_type(&self.global(), event_type, self, CanGc::note()); event .upcast::() .fire(self.global().as_window().upcast::()); diff --git a/components/script/dom/gamepadevent.rs b/components/script/dom/gamepadevent.rs index 11acd2e68ee..13020205110 100644 --- a/components/script/dom/gamepadevent.rs +++ b/components/script/dom/gamepadevent.rs @@ -45,16 +45,9 @@ impl GamepadEvent { bubbles: bool, cancelable: bool, gamepad: &Gamepad, + can_gc: CanGc, ) -> DomRoot { - Self::new_with_proto( - global, - None, - type_, - bubbles, - cancelable, - gamepad, - CanGc::note(), - ) + Self::new_with_proto(global, None, type_, bubbles, cancelable, gamepad, can_gc) } fn new_with_proto( @@ -83,13 +76,14 @@ impl GamepadEvent { global: &GlobalScope, event_type: GamepadEventType, gamepad: &Gamepad, + can_gc: CanGc, ) -> DomRoot { let name = match event_type { GamepadEventType::Connected => "gamepadconnected", GamepadEventType::Disconnected => "gamepaddisconnected", }; - GamepadEvent::new(global, name.into(), false, false, gamepad) + GamepadEvent::new(global, name.into(), false, false, gamepad, can_gc) } } diff --git a/components/script/dom/stereopannernode.rs b/components/script/dom/stereopannernode.rs index 29945c58222..1e1b05a7b43 100644 --- a/components/script/dom/stereopannernode.rs +++ b/components/script/dom/stereopannernode.rs @@ -78,8 +78,9 @@ impl StereoPannerNode { window: &Window, context: &BaseAudioContext, options: &StereoPannerOptions, + can_gc: CanGc, ) -> Fallible> { - Self::new_with_proto(window, None, context, options, CanGc::note()) + Self::new_with_proto(window, None, context, options, can_gc) } #[allow(crown::unrooted_must_root)]