CanGc fixes originating from gamepadevent.rs & stereopannernode.rs (#33828)

* CanGc fixes originating from gamepadevent.rs & stereopannernode.rs

Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>

* Revert changes within task! macro

Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>

---------

Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>
This commit is contained in:
tanishka 2024-10-14 18:52:08 +05:30 committed by GitHub
parent 2322b22a6b
commit cfd15dd14d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 10 additions and 14 deletions

View file

@ -381,11 +381,12 @@ impl BaseAudioContextMethods for BaseAudioContext {
}
/// <https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-createstereopanner>
fn CreateStereoPanner(&self) -> Fallible<DomRoot<StereoPannerNode>> {
fn CreateStereoPanner(&self, can_gc: CanGc) -> Fallible<DomRoot<StereoPannerNode>> {
StereoPannerNode::new(
self.global().as_window(),
self,
&StereoPannerOptions::empty(),
can_gc,
)
}

View file

@ -25,7 +25,7 @@ DOMInterfaces = {
'BaseAudioContext': {
'inRealms': ['DecodeAudioData', 'Resume', 'ParseFromString', 'GetBounds', 'GetClientRects'],
'canGc': ['CreateOscillator'],
'canGc': ['CreateOscillator', 'CreateStereoPanner'],
},
'Blob': {

View file

@ -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::<Event>()
.fire(self.global().as_window().upcast::<EventTarget>());

View file

@ -45,16 +45,9 @@ impl GamepadEvent {
bubbles: bool,
cancelable: bool,
gamepad: &Gamepad,
can_gc: CanGc,
) -> DomRoot<GamepadEvent> {
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<GamepadEvent> {
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)
}
}

View file

@ -78,8 +78,9 @@ impl StereoPannerNode {
window: &Window,
context: &BaseAudioContext,
options: &StereoPannerOptions,
can_gc: CanGc,
) -> Fallible<DomRoot<StereoPannerNode>> {
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)]