Add CanGc argument to reflect_dom_object (#34606)

* applied mach fmt

Signed-off-by: Domenico Rizzo <domenico.rizzo@gmail.com>

Refinements

Signed-off-by: Domenico Rizzo <domenico.rizzo@gmail.com>

Modified reflect_dom_object signature and all its calls

Signed-off-by: Domenico Rizzo <domenico.rizzo@gmail.com>

* fix function calls when parameter is passed up

Signed-off-by: Domenico Rizzo <domenico.rizzo@gmail.com>

---------

Signed-off-by: Domenico Rizzo <domenico.rizzo@gmail.com>
This commit is contained in:
Domenico Rizzo 2024-12-13 16:51:59 +01:00 committed by GitHub
parent 471d3572b7
commit 0e9746fbbe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
207 changed files with 570 additions and 101 deletions

View file

@ -14,6 +14,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{DomRoot, MutDom}; use crate::dom::bindings::root::{DomRoot, MutDom};
use crate::dom::document::Document; use crate::dom::document::Document;
use crate::dom::node::{Node, ShadowIncluding}; use crate::dom::node::{Node, ShadowIncluding};
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct AbstractRange { pub struct AbstractRange {
@ -51,6 +52,7 @@ impl AbstractRange {
end_offset, end_offset,
)), )),
document.window(), document.window(),
CanGc::note(),
); );
abstractrange abstractrange
} }

View file

@ -13,6 +13,7 @@ use crate::dom::bindings::codegen::Bindings::AudioNodeBinding::{
use crate::dom::bindings::reflector::reflect_dom_object; use crate::dom::bindings::reflector::reflect_dom_object;
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct AudioDestinationNode { pub struct AudioDestinationNode {
@ -44,7 +45,7 @@ impl AudioDestinationNode {
options: &AudioNodeOptions, options: &AudioNodeOptions,
) -> DomRoot<AudioDestinationNode> { ) -> DomRoot<AudioDestinationNode> {
let node = AudioDestinationNode::new_inherited(context, options); let node = AudioDestinationNode::new_inherited(context, options);
reflect_dom_object(Box::new(node), global) reflect_dom_object(Box::new(node), global, CanGc::note())
} }
} }

View file

@ -19,6 +19,7 @@ use crate::dom::bindings::num::Finite;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot}; use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct AudioListener { pub struct AudioListener {
@ -153,9 +154,13 @@ impl AudioListener {
} }
#[allow(crown::unrooted_must_root)] #[allow(crown::unrooted_must_root)]
pub fn new(window: &Window, context: &BaseAudioContext) -> DomRoot<AudioListener> { pub fn new(
window: &Window,
context: &BaseAudioContext,
can_gc: CanGc,
) -> DomRoot<AudioListener> {
let node = AudioListener::new_inherited(window, context); let node = AudioListener::new_inherited(window, context);
reflect_dom_object(Box::new(node), window) reflect_dom_object(Box::new(node), window, can_gc)
} }
} }

View file

@ -20,6 +20,7 @@ use crate::dom::bindings::num::Finite;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot}; use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct AudioParam { pub struct AudioParam {
@ -87,7 +88,7 @@ impl AudioParam {
min_value, min_value,
max_value, max_value,
); );
reflect_dom_object(Box::new(audio_param), window) reflect_dom_object(Box::new(audio_param), window, CanGc::note())
} }
fn message_node(&self, message: AudioNodeMessage) { fn message_node(&self, message: AudioNodeMessage) {

View file

@ -13,6 +13,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot}; use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct AudioTrack { pub struct AudioTrack {
@ -57,6 +58,7 @@ impl AudioTrack {
id, kind, label, language, track_list, id, kind, label, language, track_list,
)), )),
window, window,
CanGc::note(),
) )
} }

View file

@ -45,6 +45,7 @@ impl AudioTrackList {
reflect_dom_object( reflect_dom_object(
Box::new(AudioTrackList::new_inherited(tracks, media_element)), Box::new(AudioTrackList::new_inherited(tracks, media_element)),
window, window,
CanGc::note(),
) )
} }

View file

@ -341,7 +341,8 @@ impl BaseAudioContextMethods<crate::DomTypeHolder> for BaseAudioContext {
fn Listener(&self) -> DomRoot<AudioListener> { fn Listener(&self) -> DomRoot<AudioListener> {
let global = self.global(); let global = self.global();
let window = global.as_window(); let window = global.as_window();
self.listener.or_init(|| AudioListener::new(window, self)) self.listener
.or_init(|| AudioListener::new(window, self, CanGc::note()))
} }
// https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-onstatechange // https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-onstatechange

View file

@ -16,6 +16,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::event::{Event, EventBubbles, EventCancelable}; use crate::dom::event::{Event, EventBubbles, EventCancelable};
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
// https://html.spec.whatwg.org/multipage/#beforeunloadevent // https://html.spec.whatwg.org/multipage/#beforeunloadevent
#[dom_struct] #[dom_struct]
@ -33,7 +34,11 @@ impl BeforeUnloadEvent {
} }
pub fn new_uninitialized(window: &Window) -> DomRoot<BeforeUnloadEvent> { pub fn new_uninitialized(window: &Window) -> DomRoot<BeforeUnloadEvent> {
reflect_dom_object(Box::new(BeforeUnloadEvent::new_inherited()), window) reflect_dom_object(
Box::new(BeforeUnloadEvent::new_inherited()),
window,
CanGc::note(),
)
} }
pub fn new( pub fn new(

View file

@ -72,7 +72,7 @@ impl<T: DomObjectIteratorWrap + JSTraceable + Iterable> IterableIterator<T> {
iterable: Dom::from_ref(iterable), iterable: Dom::from_ref(iterable),
index: Cell::new(0), index: Cell::new(0),
}); });
reflect_dom_object(iterator, &*iterable.global()) reflect_dom_object(iterator, &*iterable.global(), CanGc::note())
} }
/// Return the next value from the iterable object. /// Return the next value from the iterable object.

View file

@ -19,21 +19,13 @@ use crate::script_runtime::{CanGc, JSContext};
/// Create the reflector for a new DOM object and yield ownership to the /// Create the reflector for a new DOM object and yield ownership to the
/// reflector. /// reflector.
pub fn reflect_dom_object<T, U>(obj: Box<T>, global: &U) -> DomRoot<T> pub fn reflect_dom_object<T, U>(obj: Box<T>, global: &U, can_gc: CanGc) -> DomRoot<T>
where where
T: DomObject + DomObjectWrap, T: DomObject + DomObjectWrap,
U: DerivedFrom<GlobalScope>, U: DerivedFrom<GlobalScope>,
{ {
let global_scope = global.upcast(); let global_scope = global.upcast();
unsafe { unsafe { T::WRAP(GlobalScope::get_cx(), global_scope, None, obj, can_gc) }
T::WRAP(
GlobalScope::get_cx(),
global_scope,
None,
obj,
CanGc::note(),
)
}
} }
pub fn reflect_dom_object_with_proto<T, U>( pub fn reflect_dom_object_with_proto<T, U>(

View file

@ -152,7 +152,7 @@ impl Bluetooth {
} }
pub fn new(global: &GlobalScope) -> DomRoot<Bluetooth> { pub fn new(global: &GlobalScope) -> DomRoot<Bluetooth> {
reflect_dom_object(Box::new(Bluetooth::new_inherited()), global) reflect_dom_object(Box::new(Bluetooth::new_inherited()), global, CanGc::note())
} }
fn get_bluetooth_thread(&self) -> IpcSender<BluetoothRequest> { fn get_bluetooth_thread(&self) -> IpcSender<BluetoothRequest> {

View file

@ -8,6 +8,7 @@ use crate::dom::bindings::codegen::Bindings::BluetoothCharacteristicPropertiesBi
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::script_runtime::CanGc;
// https://webbluetoothcg.github.io/web-bluetooth/#characteristicproperties // https://webbluetoothcg.github.io/web-bluetooth/#characteristicproperties
#[dom_struct] #[dom_struct]
@ -78,6 +79,7 @@ impl BluetoothCharacteristicProperties {
writableAuxiliaries, writableAuxiliaries,
)), )),
global, global,
CanGc::note(),
) )
} }
} }

View file

@ -85,6 +85,7 @@ impl BluetoothDevice {
reflect_dom_object( reflect_dom_object(
Box::new(BluetoothDevice::new_inherited(id, name, context)), Box::new(BluetoothDevice::new_inherited(id, name, context)),
global, global,
CanGc::note(),
) )
} }

View file

@ -52,6 +52,7 @@ impl BluetoothPermissionResult {
reflect_dom_object( reflect_dom_object(
Box::new(BluetoothPermissionResult::new_inherited(status)), Box::new(BluetoothPermissionResult::new_inherited(status)),
global, global,
CanGc::note(),
) )
} }

View file

@ -79,6 +79,7 @@ impl BluetoothRemoteGATTCharacteristic {
instance_id, instance_id,
)), )),
global, global,
CanGc::note(),
) )
} }

View file

@ -66,6 +66,7 @@ impl BluetoothRemoteGATTDescriptor {
instance_id, instance_id,
)), )),
global, global,
CanGc::note(),
) )
} }

View file

@ -46,6 +46,7 @@ impl BluetoothRemoteGATTServer {
reflect_dom_object( reflect_dom_object(
Box::new(BluetoothRemoteGATTServer::new_inherited(device)), Box::new(BluetoothRemoteGATTServer::new_inherited(device)),
global, global,
CanGc::note(),
) )
} }

View file

@ -60,6 +60,7 @@ impl BluetoothRemoteGATTService {
device, uuid, isPrimary, instanceID, device, uuid, isPrimary, instanceID,
)), )),
global, global,
CanGc::note(),
) )
} }

View file

@ -43,7 +43,11 @@ impl CanvasGradient {
} }
pub fn new(global: &GlobalScope, style: CanvasGradientStyle) -> DomRoot<CanvasGradient> { pub fn new(global: &GlobalScope, style: CanvasGradientStyle) -> DomRoot<CanvasGradient> {
reflect_dom_object(Box::new(CanvasGradient::new_inherited(style)), global) reflect_dom_object(
Box::new(CanvasGradient::new_inherited(style)),
global,
CanGc::note(),
)
} }
} }

View file

@ -10,6 +10,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::DomRoot;
use crate::dom::canvasgradient::ToFillOrStrokeStyle; use crate::dom::canvasgradient::ToFillOrStrokeStyle;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::script_runtime::CanGc;
// https://html.spec.whatwg.org/multipage/#canvaspattern // https://html.spec.whatwg.org/multipage/#canvaspattern
#[dom_struct] #[dom_struct]
@ -61,6 +62,7 @@ impl CanvasPattern {
origin_clean, origin_clean,
)), )),
global, global,
CanGc::note(),
) )
} }
pub fn origin_is_clean(&self) -> bool { pub fn origin_is_clean(&self) -> bool {

View file

@ -64,7 +64,7 @@ impl CanvasRenderingContext2D {
Some(canvas), Some(canvas),
size, size,
)); ));
reflect_dom_object(boxed, global) reflect_dom_object(boxed, global, CanGc::note())
} }
// https://html.spec.whatwg.org/multipage/#concept-canvas-set-bitmap-dimensions // https://html.spec.whatwg.org/multipage/#concept-canvas-set-bitmap-dimensions

View file

@ -14,6 +14,7 @@ use crate::dom::bindings::root::{DomRoot, MutNullableDom};
use crate::dom::bindings::str::{DOMString, USVString}; use crate::dom::bindings::str::{DOMString, USVString};
use crate::dom::serviceworker::ServiceWorker; use crate::dom::serviceworker::ServiceWorker;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct Client { pub struct Client {
@ -39,7 +40,11 @@ impl Client {
} }
pub fn new(window: &Window) -> DomRoot<Client> { pub fn new(window: &Window) -> DomRoot<Client> {
reflect_dom_object(Box::new(Client::new_inherited(window.get_url())), window) reflect_dom_object(
Box::new(Client::new_inherited(window.get_url())),
window,
CanGc::note(),
)
} }
pub fn creation_url(&self) -> ServoUrl { pub fn creation_url(&self) -> ServoUrl {

View file

@ -32,7 +32,11 @@ impl CompositionEvent {
} }
pub fn new_uninitialized(window: &Window) -> DomRoot<CompositionEvent> { pub fn new_uninitialized(window: &Window) -> DomRoot<CompositionEvent> {
reflect_dom_object(Box::new(CompositionEvent::new_inherited()), window) reflect_dom_object(
Box::new(CompositionEvent::new_inherited()),
window,
CanGc::note(),
)
} }
#[allow(clippy::too_many_arguments)] #[allow(clippy::too_many_arguments)]

View file

@ -17,7 +17,7 @@ use crate::dom::bindings::root::{DomRoot, MutNullableDom};
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::dom::subtlecrypto::SubtleCrypto; use crate::dom::subtlecrypto::SubtleCrypto;
use crate::script_runtime::JSContext; use crate::script_runtime::{CanGc, JSContext};
// https://developer.mozilla.org/en-US/docs/Web/API/Crypto // https://developer.mozilla.org/en-US/docs/Web/API/Crypto
#[dom_struct] #[dom_struct]
@ -38,7 +38,7 @@ impl Crypto {
} }
pub fn new(global: &GlobalScope) -> DomRoot<Crypto> { pub fn new(global: &GlobalScope) -> DomRoot<Crypto> {
reflect_dom_object(Box::new(Crypto::new_inherited()), global) reflect_dom_object(Box::new(Crypto::new_inherited()), global, CanGc::note())
} }
} }

View file

@ -17,7 +17,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::js::conversions::ToJSValConvertible; use crate::js::conversions::ToJSValConvertible;
use crate::script_runtime::JSContext; use crate::script_runtime::{CanGc, JSContext};
/// The underlying cryptographic data this key represents /// The underlying cryptographic data this key represents
#[allow(dead_code)] #[allow(dead_code)]
@ -96,6 +96,7 @@ impl CryptoKey {
handle, handle,
)), )),
global, global,
CanGc::note(),
); );
object.algorithm_object.set(algorithm_object.get()); object.algorithm_object.set(algorithm_object.get());

View file

@ -13,6 +13,7 @@ use crate::dom::bindings::str::DOMString;
use crate::dom::cssrule::{CSSRule, SpecificCSSRule}; use crate::dom::cssrule::{CSSRule, SpecificCSSRule};
use crate::dom::cssstylesheet::CSSStyleSheet; use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct CSSFontFaceRule { pub struct CSSFontFaceRule {
@ -45,6 +46,7 @@ impl CSSFontFaceRule {
fontfacerule, fontfacerule,
)), )),
window, window,
CanGc::note(),
) )
} }
} }

View file

@ -16,6 +16,7 @@ use crate::dom::bindings::str::DOMString;
use crate::dom::cssrule::{CSSRule, SpecificCSSRule}; use crate::dom::cssrule::{CSSRule, SpecificCSSRule};
use crate::dom::cssstylesheet::CSSStyleSheet; use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct CSSImportRule { pub struct CSSImportRule {
@ -45,6 +46,7 @@ impl CSSImportRule {
reflect_dom_object( reflect_dom_object(
Box::new(Self::new_inherited(parent_stylesheet, import_rule)), Box::new(Self::new_inherited(parent_stylesheet, import_rule)),
window, window,
CanGc::note(),
) )
} }
} }

View file

@ -17,6 +17,7 @@ use crate::dom::cssrule::{CSSRule, SpecificCSSRule};
use crate::dom::cssstyledeclaration::{CSSModificationAccess, CSSStyleDeclaration, CSSStyleOwner}; use crate::dom::cssstyledeclaration::{CSSModificationAccess, CSSStyleDeclaration, CSSStyleOwner};
use crate::dom::cssstylesheet::CSSStyleSheet; use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct CSSKeyframeRule { pub struct CSSKeyframeRule {
@ -51,6 +52,7 @@ impl CSSKeyframeRule {
keyframerule, keyframerule,
)), )),
window, window,
CanGc::note(),
) )
} }
} }

View file

@ -21,6 +21,7 @@ use crate::dom::cssrule::{CSSRule, SpecificCSSRule};
use crate::dom::cssrulelist::{CSSRuleList, RulesSource}; use crate::dom::cssrulelist::{CSSRuleList, RulesSource};
use crate::dom::cssstylesheet::CSSStyleSheet; use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct CSSKeyframesRule { pub struct CSSKeyframesRule {
@ -55,6 +56,7 @@ impl CSSKeyframesRule {
keyframesrule, keyframesrule,
)), )),
window, window,
CanGc::note(),
) )
} }

View file

@ -16,6 +16,7 @@ use crate::dom::cssgroupingrule::CSSGroupingRule;
use crate::dom::cssrule::SpecificCSSRule; use crate::dom::cssrule::SpecificCSSRule;
use crate::dom::cssstylesheet::CSSStyleSheet; use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct CSSLayerBlockRule { pub struct CSSLayerBlockRule {
@ -51,6 +52,7 @@ impl CSSLayerBlockRule {
layerblockrule, layerblockrule,
)), )),
window, window,
CanGc::note(),
) )
} }
} }

View file

@ -17,7 +17,7 @@ use crate::dom::bindings::utils::to_frozen_array;
use crate::dom::cssrule::{CSSRule, SpecificCSSRule}; use crate::dom::cssrule::{CSSRule, SpecificCSSRule};
use crate::dom::cssstylesheet::CSSStyleSheet; use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::JSContext as SafeJSContext; use crate::script_runtime::{CanGc, JSContext as SafeJSContext};
#[dom_struct] #[dom_struct]
pub struct CSSLayerStatementRule { pub struct CSSLayerStatementRule {
@ -50,6 +50,7 @@ impl CSSLayerStatementRule {
layerstatementrule, layerstatementrule,
)), )),
window, window,
CanGc::note(),
) )
} }
} }

View file

@ -17,6 +17,7 @@ use crate::dom::cssrule::SpecificCSSRule;
use crate::dom::cssstylesheet::CSSStyleSheet; use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::medialist::MediaList; use crate::dom::medialist::MediaList;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct CSSMediaRule { pub struct CSSMediaRule {
@ -46,6 +47,7 @@ impl CSSMediaRule {
reflect_dom_object( reflect_dom_object(
Box::new(CSSMediaRule::new_inherited(parent_stylesheet, mediarule)), Box::new(CSSMediaRule::new_inherited(parent_stylesheet, mediarule)),
window, window,
CanGc::note(),
) )
} }

View file

@ -14,6 +14,7 @@ use crate::dom::bindings::str::DOMString;
use crate::dom::cssrule::{CSSRule, SpecificCSSRule}; use crate::dom::cssrule::{CSSRule, SpecificCSSRule};
use crate::dom::cssstylesheet::CSSStyleSheet; use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct CSSNamespaceRule { pub struct CSSNamespaceRule {
@ -46,6 +47,7 @@ impl CSSNamespaceRule {
namespacerule, namespacerule,
)), )),
window, window,
CanGc::note(),
) )
} }
} }

View file

@ -22,6 +22,7 @@ use crate::dom::cssrule::CSSRule;
use crate::dom::cssstylesheet::CSSStyleSheet; use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::htmlelement::HTMLElement; use crate::dom::htmlelement::HTMLElement;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
use crate::stylesheet_loader::StylesheetLoader; use crate::stylesheet_loader::StylesheetLoader;
unsafe_no_jsmanaged_fields!(RulesSource); unsafe_no_jsmanaged_fields!(RulesSource);
@ -87,6 +88,7 @@ impl CSSRuleList {
reflect_dom_object( reflect_dom_object(
Box::new(CSSRuleList::new_inherited(parent_stylesheet, rules)), Box::new(CSSRuleList::new_inherited(parent_stylesheet, rules)),
window, window,
CanGc::note(),
) )
} }

View file

@ -244,6 +244,7 @@ impl CSSStyleDeclaration {
modification_access, modification_access,
)), )),
global, global,
CanGc::note(),
) )
} }

View file

@ -22,6 +22,7 @@ use crate::dom::cssstyledeclaration::{CSSModificationAccess, CSSStyleDeclaration
use crate::dom::cssstylesheet::CSSStyleSheet; use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::node::{stylesheets_owner_from_node, Node}; use crate::dom::node::{stylesheets_owner_from_node, Node};
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct CSSStyleRule { pub struct CSSStyleRule {
@ -53,6 +54,7 @@ impl CSSStyleRule {
reflect_dom_object( reflect_dom_object(
Box::new(CSSStyleRule::new_inherited(parent_stylesheet, stylerule)), Box::new(CSSStyleRule::new_inherited(parent_stylesheet, stylerule)),
window, window,
CanGc::note(),
) )
} }
} }

View file

@ -21,6 +21,7 @@ use crate::dom::medialist::MediaList;
use crate::dom::node::{stylesheets_owner_from_node, Node}; use crate::dom::node::{stylesheets_owner_from_node, Node};
use crate::dom::stylesheet::StyleSheet; use crate::dom::stylesheet::StyleSheet;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct CSSStyleSheet { pub struct CSSStyleSheet {
@ -64,6 +65,7 @@ impl CSSStyleSheet {
owner, type_, href, title, stylesheet, owner, type_, href, title, stylesheet,
)), )),
window, window,
CanGc::note(),
) )
} }

View file

@ -11,6 +11,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct CSSStyleValue { pub struct CSSStyleValue {
@ -27,7 +28,11 @@ impl CSSStyleValue {
} }
pub fn new(global: &GlobalScope, value: String) -> DomRoot<CSSStyleValue> { pub fn new(global: &GlobalScope, value: String) -> DomRoot<CSSStyleValue> {
reflect_dom_object(Box::new(CSSStyleValue::new_inherited(value)), global) reflect_dom_object(
Box::new(CSSStyleValue::new_inherited(value)),
global,
CanGc::note(),
)
} }
} }

View file

@ -15,6 +15,7 @@ use crate::dom::cssconditionrule::CSSConditionRule;
use crate::dom::cssrule::SpecificCSSRule; use crate::dom::cssrule::SpecificCSSRule;
use crate::dom::cssstylesheet::CSSStyleSheet; use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct CSSSupportsRule { pub struct CSSSupportsRule {
@ -48,6 +49,7 @@ impl CSSSupportsRule {
supportsrule, supportsrule,
)), )),
window, window,
CanGc::note(),
) )
} }

View file

@ -92,6 +92,7 @@ impl CustomElementRegistry {
reflect_dom_object( reflect_dom_object(
Box::new(CustomElementRegistry::new_inherited(window)), Box::new(CustomElementRegistry::new_inherited(window)),
window, window,
CanGc::note(),
) )
} }

View file

@ -16,6 +16,7 @@ use crate::dom::bindings::str::DOMString;
use crate::dom::file::File; use crate::dom::file::File;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::drag_data_store::Kind; use crate::drag_data_store::Kind;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct DataTransferItem { pub struct DataTransferItem {
@ -34,7 +35,11 @@ impl DataTransferItem {
} }
pub fn new(global: &GlobalScope, item: Kind) -> DomRoot<DataTransferItem> { pub fn new(global: &GlobalScope, item: Kind) -> DomRoot<DataTransferItem> {
reflect_dom_object(Box::new(DataTransferItem::new_inherited(item)), global) reflect_dom_object(
Box::new(DataTransferItem::new_inherited(item)),
global,
CanGc::note(),
)
} }
} }

View file

@ -18,7 +18,7 @@ use crate::dom::datatransferitem::DataTransferItem;
use crate::dom::file::File; use crate::dom::file::File;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::drag_data_store::{Binary, DragDataStore, Kind, Mode, PlainString}; use crate::drag_data_store::{Binary, DragDataStore, Kind, Mode, PlainString};
use crate::script_runtime::JSContext; use crate::script_runtime::{CanGc, JSContext};
#[dom_struct] #[dom_struct]
pub struct DataTransferItemList { pub struct DataTransferItemList {
@ -46,6 +46,7 @@ impl DataTransferItemList {
reflect_dom_object( reflect_dom_object(
Box::new(DataTransferItemList::new_inherited(data_store)), Box::new(DataTransferItemList::new_inherited(data_store)),
window, window,
CanGc::note(),
) )
} }

View file

@ -10,6 +10,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot}; use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::{DOMString, USVString}; use crate::dom::bindings::str::{DOMString, USVString};
use crate::dom::dissimilaroriginwindow::DissimilarOriginWindow; use crate::dom::dissimilaroriginwindow::DissimilarOriginWindow;
use crate::script_runtime::CanGc;
/// Represents a dissimilar-origin `Location` that exists in another script thread. /// Represents a dissimilar-origin `Location` that exists in another script thread.
/// ///
@ -40,6 +41,7 @@ impl DissimilarOriginLocation {
reflect_dom_object( reflect_dom_object(
Box::new(DissimilarOriginLocation::new_inherited(window)), Box::new(DissimilarOriginLocation::new_inherited(window)),
window, window,
CanGc::note(),
) )
} }
} }

View file

@ -148,7 +148,11 @@ impl DOMException {
pub fn new(global: &GlobalScope, code: DOMErrorName) -> DomRoot<DOMException> { pub fn new(global: &GlobalScope, code: DOMErrorName) -> DomRoot<DOMException> {
let (message, name) = DOMException::get_error_data_by_code(code); let (message, name) = DOMException::get_error_data_by_code(code);
reflect_dom_object(Box::new(DOMException::new_inherited(message, name)), global) reflect_dom_object(
Box::new(DOMException::new_inherited(message, name)),
global,
CanGc::note(),
)
} }
// not an IDL stringifier, used internally // not an IDL stringifier, used internally

View file

@ -47,7 +47,11 @@ impl DOMImplementation {
pub fn new(document: &Document) -> DomRoot<DOMImplementation> { pub fn new(document: &Document) -> DomRoot<DOMImplementation> {
let window = document.window(); let window = document.window();
reflect_dom_object(Box::new(DOMImplementation::new_inherited(document)), window) reflect_dom_object(
Box::new(DOMImplementation::new_inherited(document)),
window,
CanGc::note(),
)
} }
} }

View file

@ -78,7 +78,7 @@ impl DOMRectMethods<crate::DomTypeHolder> for DOMRect {
fn FromRect(global: &GlobalScope, other: &DOMRectInit) -> DomRoot<DOMRect> { fn FromRect(global: &GlobalScope, other: &DOMRectInit) -> DomRoot<DOMRect> {
let rect = create_a_domrectreadonly_from_the_dictionary(other); let rect = create_a_domrectreadonly_from_the_dictionary(other);
reflect_dom_object(Box::new(Self { rect }), global) reflect_dom_object(Box::new(Self { rect }), global, CanGc::note())
} }
// https://drafts.fxtf.org/geometry/#dom-domrect-x // https://drafts.fxtf.org/geometry/#dom-domrect-x

View file

@ -93,7 +93,7 @@ impl DOMRectReadOnlyMethods<crate::DomTypeHolder> for DOMRectReadOnly {
fn FromRect(global: &GlobalScope, other: &DOMRectInit) -> DomRoot<DOMRectReadOnly> { fn FromRect(global: &GlobalScope, other: &DOMRectInit) -> DomRoot<DOMRectReadOnly> {
let dom_rect = create_a_domrectreadonly_from_the_dictionary(other); let dom_rect = create_a_domrectreadonly_from_the_dictionary(other);
reflect_dom_object(Box::new(dom_rect), global) reflect_dom_object(Box::new(dom_rect), global, CanGc::note())
} }
// https://drafts.fxtf.org/geometry/#dom-domrectreadonly-x // https://drafts.fxtf.org/geometry/#dom-domrectreadonly-x

View file

@ -9,6 +9,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct DOMStringList { pub struct DOMStringList {
@ -27,7 +28,11 @@ impl DOMStringList {
#[allow(unused)] #[allow(unused)]
pub fn new(window: &Window, strings: Vec<DOMString>) -> DomRoot<DOMStringList> { pub fn new(window: &Window, strings: Vec<DOMString>) -> DomRoot<DOMStringList> {
reflect_dom_object(Box::new(DOMStringList::new_inherited(strings)), window) reflect_dom_object(
Box::new(DOMStringList::new_inherited(strings)),
window,
CanGc::note(),
)
} }
} }

View file

@ -29,7 +29,11 @@ impl DOMStringMap {
pub fn new(element: &HTMLElement) -> DomRoot<DOMStringMap> { pub fn new(element: &HTMLElement) -> DomRoot<DOMStringMap> {
let window = window_from_node(element); let window = window_from_node(element);
reflect_dom_object(Box::new(DOMStringMap::new_inherited(element)), &*window) reflect_dom_object(
Box::new(DOMStringMap::new_inherited(element)),
&*window,
CanGc::note(),
)
} }
} }

View file

@ -54,6 +54,7 @@ impl DOMTokenList {
supported_tokens, supported_tokens,
)), )),
&*window, &*window,
CanGc::note(),
) )
} }

View file

@ -12,6 +12,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::dom::promise::Promise; use crate::dom::promise::Promise;
use crate::script_runtime::CanGc;
/// An unique id for dynamic module /// An unique id for dynamic module
#[derive(Clone, Copy, Debug, Eq, Hash, JSTraceable, PartialEq)] #[derive(Clone, Copy, Debug, Eq, Hash, JSTraceable, PartialEq)]
@ -44,6 +45,7 @@ impl DynamicModuleOwner {
reflect_dom_object( reflect_dom_object(
Box::new(DynamicModuleOwner::new_inherited(promise, id)), Box::new(DynamicModuleOwner::new_inherited(promise, id)),
global, global,
CanGc::note(),
) )
} }
} }

View file

@ -89,7 +89,11 @@ impl ElementInternals {
pub fn new(element: &HTMLElement) -> DomRoot<ElementInternals> { pub fn new(element: &HTMLElement) -> DomRoot<ElementInternals> {
let global = window_from_node(element); let global = window_from_node(element);
reflect_dom_object(Box::new(ElementInternals::new_inherited(element)), &*global) reflect_dom_object(
Box::new(ElementInternals::new_inherited(element)),
&*global,
CanGc::note(),
)
} }
fn is_target_form_associated(&self) -> bool { fn is_target_form_associated(&self) -> bool {

View file

@ -11,6 +11,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot}; use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::file::File; use crate::dom::file::File;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
// https://w3c.github.io/FileAPI/#dfn-filelist // https://w3c.github.io/FileAPI/#dfn-filelist
#[dom_struct] #[dom_struct]
@ -35,6 +36,7 @@ impl FileList {
files.iter().map(|r| Dom::from_ref(&**r)).collect(), files.iter().map(|r| Dom::from_ref(&**r)).collect(),
)), )),
window, window,
CanGc::note(),
) )
} }

View file

@ -11,6 +11,7 @@ use crate::dom::bindings::num::Finite;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct GamepadButton { pub struct GamepadButton {
@ -34,6 +35,7 @@ impl GamepadButton {
reflect_dom_object( reflect_dom_object(
Box::new(GamepadButton::new_inherited(pressed, touched)), Box::new(GamepadButton::new_inherited(pressed, touched)),
global, global,
CanGc::note(),
) )
} }
} }

View file

@ -9,6 +9,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot, DomSlice}; use crate::dom::bindings::root::{Dom, DomRoot, DomSlice};
use crate::dom::gamepadbutton::GamepadButton; use crate::dom::gamepadbutton::GamepadButton;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::script_runtime::CanGc;
// https://w3c.github.io/gamepad/#gamepadbutton-interface // https://w3c.github.io/gamepad/#gamepadbutton-interface
#[dom_struct] #[dom_struct]
@ -27,7 +28,11 @@ impl GamepadButtonList {
} }
pub fn new(global: &GlobalScope, list: &[&GamepadButton]) -> DomRoot<GamepadButtonList> { pub fn new(global: &GlobalScope, list: &[&GamepadButton]) -> DomRoot<GamepadButtonList> {
reflect_dom_object(Box::new(GamepadButtonList::new_inherited(list)), global) reflect_dom_object(
Box::new(GamepadButtonList::new_inherited(list)),
global,
CanGc::note(),
)
} }
} }

View file

@ -10,7 +10,7 @@ use crate::dom::bindings::codegen::Bindings::GamepadPoseBinding::GamepadPoseMeth
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::script_runtime::JSContext; use crate::script_runtime::{CanGc, JSContext};
#[dom_struct] #[dom_struct]
pub struct GamepadPose { pub struct GamepadPose {
@ -45,7 +45,11 @@ impl GamepadPose {
} }
pub fn new(global: &GlobalScope) -> DomRoot<GamepadPose> { pub fn new(global: &GlobalScope) -> DomRoot<GamepadPose> {
reflect_dom_object(Box::new(GamepadPose::new_inherited()), global) reflect_dom_object(
Box::new(GamepadPose::new_inherited()),
global,
CanGc::note(),
)
} }
} }

View file

@ -62,7 +62,11 @@ impl History {
} }
pub fn new(window: &Window) -> DomRoot<History> { pub fn new(window: &Window) -> DomRoot<History> {
reflect_dom_object(Box::new(History::new_inherited(window)), window) reflect_dom_object(
Box::new(History::new_inherited(window)),
window,
CanGc::note(),
)
} }
} }

View file

@ -20,6 +20,7 @@ use crate::dom::bindings::xmlname::namespace_from_domstring;
use crate::dom::element::Element; use crate::dom::element::Element;
use crate::dom::node::{document_from_node, Node}; use crate::dom::node::{document_from_node, Node};
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
pub trait CollectionFilter: JSTraceable { pub trait CollectionFilter: JSTraceable {
fn filter<'a>(&self, elem: &'a Element, root: &'a Node) -> bool; fn filter<'a>(&self, elem: &'a Element, root: &'a Node) -> bool;
@ -107,6 +108,7 @@ impl HTMLCollection {
reflect_dom_object( reflect_dom_object(
Box::new(HTMLCollection::new_inherited(root, filter)), Box::new(HTMLCollection::new_inherited(root, filter)),
window, window,
CanGc::note(),
) )
} }

View file

@ -19,6 +19,7 @@ use crate::dom::htmlformelement::HTMLFormElement;
use crate::dom::node::Node; use crate::dom::node::Node;
use crate::dom::radionodelist::RadioNodeList; use crate::dom::radionodelist::RadioNodeList;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct HTMLFormControlsCollection { pub struct HTMLFormControlsCollection {
@ -48,6 +49,7 @@ impl HTMLFormControlsCollection {
reflect_dom_object( reflect_dom_object(
Box::new(HTMLFormControlsCollection::new_inherited(form, filter)), Box::new(HTMLFormControlsCollection::new_inherited(form, filter)),
window, window,
CanGc::note(),
) )
} }
} }

View file

@ -51,6 +51,7 @@ impl HTMLOptionsCollection {
reflect_dom_object( reflect_dom_object(
Box::new(HTMLOptionsCollection::new_inherited(select, filter)), Box::new(HTMLOptionsCollection::new_inherited(select, filter)),
window, window,
CanGc::note(),
) )
} }

View file

@ -13,6 +13,7 @@ use crate::dom::bindings::error::Fallible;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct ImageBitmap { pub struct ImageBitmap {
@ -43,7 +44,7 @@ impl ImageBitmap {
//assigning to a variable the return object of new_inherited //assigning to a variable the return object of new_inherited
let imagebitmap = Box::new(ImageBitmap::new_inherited(width, height)); let imagebitmap = Box::new(ImageBitmap::new_inherited(width, height));
Ok(reflect_dom_object(imagebitmap, global)) Ok(reflect_dom_object(imagebitmap, global, CanGc::note()))
} }
pub fn set_bitmap_data(&self, data: Vec<u8>) { pub fn set_bitmap_data(&self, data: Vec<u8>) {

View file

@ -58,7 +58,11 @@ impl Location {
} }
pub fn new(window: &Window) -> DomRoot<Location> { pub fn new(window: &Window) -> DomRoot<Location> {
reflect_dom_object(Box::new(Location::new_inherited(window)), window) reflect_dom_object(
Box::new(Location::new_inherited(window)),
window,
CanGc::note(),
)
} }
/// Navigate the relevant `Document`'s browsing context. /// Navigate the relevant `Document`'s browsing context.

View file

@ -663,6 +663,7 @@ macro_rules! impl_performance_entry_struct(
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::dom::performanceentry::PerformanceEntry; use crate::dom::performanceentry::PerformanceEntry;
use crate::script_runtime::CanGc;
use dom_struct::dom_struct; use dom_struct::dom_struct;
#[dom_struct] #[dom_struct]
@ -687,7 +688,7 @@ macro_rules! impl_performance_entry_struct(
start_time: CrossProcessInstant, start_time: CrossProcessInstant,
duration: Duration) -> DomRoot<$struct> { duration: Duration) -> DomRoot<$struct> {
let entry = $struct::new_inherited(name, start_time, duration); let entry = $struct::new_inherited(name, start_time, duration);
reflect_dom_object(Box::new(entry), global) reflect_dom_object(Box::new(entry), global, CanGc::note())
} }
} }
); );

View file

@ -13,6 +13,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct MediaDeviceInfo { pub struct MediaDeviceInfo {
@ -51,6 +52,7 @@ impl MediaDeviceInfo {
device_id, kind, label, group_id, device_id, kind, label, group_id,
)), )),
global, global,
CanGc::note(),
) )
} }
} }

View file

@ -41,7 +41,11 @@ impl MediaDevices {
} }
pub fn new(global: &GlobalScope) -> DomRoot<MediaDevices> { pub fn new(global: &GlobalScope) -> DomRoot<MediaDevices> {
reflect_dom_object(Box::new(MediaDevices::new_inherited()), global) reflect_dom_object(
Box::new(MediaDevices::new_inherited()),
global,
CanGc::note(),
)
} }
} }

View file

@ -9,6 +9,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct MediaError { pub struct MediaError {
@ -25,7 +26,11 @@ impl MediaError {
} }
pub fn new(window: &Window, code: u16) -> DomRoot<MediaError> { pub fn new(window: &Window, code: u16) -> DomRoot<MediaError> {
reflect_dom_object(Box::new(MediaError::new_inherited(code)), window) reflect_dom_object(
Box::new(MediaError::new_inherited(code)),
window,
CanGc::note(),
)
} }
} }

View file

@ -18,6 +18,7 @@ use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::cssstylesheet::CSSStyleSheet; use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct MediaList { pub struct MediaList {
@ -50,6 +51,7 @@ impl MediaList {
reflect_dom_object( reflect_dom_object(
Box::new(MediaList::new_inherited(parent_stylesheet, media_queries)), Box::new(MediaList::new_inherited(parent_stylesheet, media_queries)),
window, window,
CanGc::note(),
) )
} }

View file

@ -20,6 +20,7 @@ use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::document::Document; use crate::dom::document::Document;
use crate::dom::eventtarget::EventTarget; use crate::dom::eventtarget::EventTarget;
use crate::script_runtime::CanGc;
pub enum MediaQueryListMatchState { pub enum MediaQueryListMatchState {
Same, Same,
@ -49,6 +50,7 @@ impl MediaQueryList {
reflect_dom_object( reflect_dom_object(
Box::new(MediaQueryList::new_inherited(document, media_query_list)), Box::new(MediaQueryList::new_inherited(document, media_query_list)),
document.window(), document.window(),
CanGc::note(),
) )
} }
} }

View file

@ -62,7 +62,11 @@ impl MediaSession {
} }
pub fn new(window: &Window) -> DomRoot<MediaSession> { pub fn new(window: &Window) -> DomRoot<MediaSession> {
reflect_dom_object(Box::new(MediaSession::new_inherited()), window) reflect_dom_object(
Box::new(MediaSession::new_inherited()),
window,
CanGc::note(),
)
} }
pub fn register_media_instance(&self, media_instance: &HTMLMediaElement) { pub fn register_media_instance(&self, media_instance: &HTMLMediaElement) {

View file

@ -12,6 +12,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::eventtarget::EventTarget; use crate::dom::eventtarget::EventTarget;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct MediaStreamTrack { pub struct MediaStreamTrack {
@ -38,7 +39,11 @@ impl MediaStreamTrack {
id: MediaStreamId, id: MediaStreamId,
ty: MediaStreamType, ty: MediaStreamType,
) -> DomRoot<MediaStreamTrack> { ) -> DomRoot<MediaStreamTrack> {
reflect_dom_object(Box::new(MediaStreamTrack::new_inherited(id, ty)), global) reflect_dom_object(
Box::new(MediaStreamTrack::new_inherited(id, ty)),
global,
CanGc::note(),
)
} }
pub fn id(&self) -> MediaStreamId { pub fn id(&self) -> MediaStreamId {

View file

@ -54,7 +54,11 @@ impl MessagePort {
/// <https://html.spec.whatwg.org/multipage/#create-a-new-messageport-object> /// <https://html.spec.whatwg.org/multipage/#create-a-new-messageport-object>
pub fn new(owner: &GlobalScope) -> DomRoot<MessagePort> { pub fn new(owner: &GlobalScope) -> DomRoot<MessagePort> {
let port_id = MessagePortId::new(); let port_id = MessagePortId::new();
reflect_dom_object(Box::new(MessagePort::new_inherited(port_id)), owner) reflect_dom_object(
Box::new(MessagePort::new_inherited(port_id)),
owner,
CanGc::note(),
)
} }
/// Create a new port for an incoming transfer-received one. /// Create a new port for an incoming transfer-received one.
@ -71,6 +75,7 @@ impl MessagePort {
entangled_port: RefCell::new(entangled_port), entangled_port: RefCell::new(entangled_port),
}), }),
owner, owner,
CanGc::note(),
) )
} }

View file

@ -10,6 +10,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::dom::mimetype::MimeType; use crate::dom::mimetype::MimeType;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct MimeTypeArray { pub struct MimeTypeArray {
@ -24,7 +25,11 @@ impl MimeTypeArray {
} }
pub fn new(global: &GlobalScope) -> DomRoot<MimeTypeArray> { pub fn new(global: &GlobalScope) -> DomRoot<MimeTypeArray> {
reflect_dom_object(Box::new(MimeTypeArray::new_inherited()), global) reflect_dom_object(
Box::new(MimeTypeArray::new_inherited()),
global,
CanGc::note(),
)
} }
} }

View file

@ -11,6 +11,7 @@ use crate::dom::bindings::root::{Dom, DomRoot, MutNullableDom};
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::node::{window_from_node, Node}; use crate::dom::node::{window_from_node, Node};
use crate::dom::nodelist::NodeList; use crate::dom::nodelist::NodeList;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct MutationRecord { pub struct MutationRecord {
@ -45,7 +46,7 @@ impl MutationRecord {
None, None,
None, None,
)); ));
reflect_dom_object(record, &*window_from_node(target)) reflect_dom_object(record, &*window_from_node(target), CanGc::note())
} }
pub fn character_data_mutated( pub fn character_data_mutated(
@ -65,6 +66,7 @@ impl MutationRecord {
None, None,
)), )),
&*window_from_node(target), &*window_from_node(target),
CanGc::note(),
) )
} }
@ -93,6 +95,7 @@ impl MutationRecord {
prev_sibling, prev_sibling,
)), )),
&*window, &*window,
CanGc::note(),
) )
} }

View file

@ -15,6 +15,7 @@ use crate::dom::bindings::str::DOMString;
use crate::dom::bindings::xmlname::namespace_from_domstring; use crate::dom::bindings::xmlname::namespace_from_domstring;
use crate::dom::element::Element; use crate::dom::element::Element;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct NamedNodeMap { pub struct NamedNodeMap {
@ -31,7 +32,11 @@ impl NamedNodeMap {
} }
pub fn new(window: &Window, elem: &Element) -> DomRoot<NamedNodeMap> { pub fn new(window: &Window, elem: &Element) -> DomRoot<NamedNodeMap> {
reflect_dom_object(Box::new(NamedNodeMap::new_inherited(elem)), window) reflect_dom_object(
Box::new(NamedNodeMap::new_inherited(elem)),
window,
CanGc::note(),
)
} }
} }

View file

@ -40,7 +40,7 @@ impl NavigationPreloadManager {
registration: &ServiceWorkerRegistration, registration: &ServiceWorkerRegistration,
) -> DomRoot<NavigationPreloadManager> { ) -> DomRoot<NavigationPreloadManager> {
let manager = NavigationPreloadManager::new_inherited(registration); let manager = NavigationPreloadManager::new_inherited(registration);
reflect_dom_object(Box::new(manager), global) reflect_dom_object(Box::new(manager), global, CanGc::note())
} }
} }

View file

@ -80,7 +80,7 @@ impl Navigator {
} }
pub fn new(window: &Window) -> DomRoot<Navigator> { pub fn new(window: &Window) -> DomRoot<Navigator> {
reflect_dom_object(Box::new(Navigator::new_inherited()), window) reflect_dom_object(Box::new(Navigator::new_inherited()), window, CanGc::note())
} }
#[cfg(feature = "webxr")] #[cfg(feature = "webxr")]

View file

@ -16,6 +16,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot, MutDom}; use crate::dom::bindings::root::{Dom, DomRoot, MutDom};
use crate::dom::document::Document; use crate::dom::document::Document;
use crate::dom::node::Node; use crate::dom::node::Node;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct NodeIterator { pub struct NodeIterator {
@ -52,6 +53,7 @@ impl NodeIterator {
reflect_dom_object( reflect_dom_object(
Box::new(NodeIterator::new_inherited(root_node, what_to_show, filter)), Box::new(NodeIterator::new_inherited(root_node, what_to_show, filter)),
document.window(), document.window(),
CanGc::note(),
) )
} }

View file

@ -17,6 +17,7 @@ use crate::dom::htmlelement::HTMLElement;
use crate::dom::htmlformelement::HTMLFormElement; use crate::dom::htmlformelement::HTMLFormElement;
use crate::dom::node::{ChildrenMutation, Node}; use crate::dom::node::{ChildrenMutation, Node};
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[derive(JSTraceable, MallocSizeOf)] #[derive(JSTraceable, MallocSizeOf)]
#[crown::unrooted_must_root_lint::must_root] #[crown::unrooted_must_root_lint::must_root]
@ -46,7 +47,11 @@ impl NodeList {
#[allow(crown::unrooted_must_root)] #[allow(crown::unrooted_must_root)]
pub fn new(window: &Window, list_type: NodeListType) -> DomRoot<NodeList> { pub fn new(window: &Window, list_type: NodeListType) -> DomRoot<NodeList> {
reflect_dom_object(Box::new(NodeList::new_inherited(list_type)), window) reflect_dom_object(
Box::new(NodeList::new_inherited(list_type)),
window,
CanGc::note(),
)
} }
pub fn new_simple_list<T>(window: &Window, iter: T) -> DomRoot<NodeList> pub fn new_simple_list<T>(window: &Window, iter: T) -> DomRoot<NodeList>

View file

@ -59,7 +59,7 @@ impl OffscreenCanvasRenderingContext2D {
let boxed = Box::new(OffscreenCanvasRenderingContext2D::new_inherited( let boxed = Box::new(OffscreenCanvasRenderingContext2D::new_inherited(
global, canvas, htmlcanvas, global, canvas, htmlcanvas,
)); ));
reflect_dom_object(boxed, global) reflect_dom_object(boxed, global, CanGc::note())
} }
pub fn set_canvas_bitmap_dimensions(&self, size: Size2D<u64>) { pub fn set_canvas_bitmap_dimensions(&self, size: Size2D<u64>) {

View file

@ -51,6 +51,7 @@ impl PaintRenderingContext2D {
reflect_dom_object( reflect_dom_object(
Box::new(PaintRenderingContext2D::new_inherited(global)), Box::new(PaintRenderingContext2D::new_inherited(global)),
global, global,
CanGc::note(),
) )
} }

View file

@ -11,6 +11,7 @@ use crate::dom::bindings::num::Finite;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::DomRoot;
use crate::dom::paintworkletglobalscope::PaintWorkletGlobalScope; use crate::dom::paintworkletglobalscope::PaintWorkletGlobalScope;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct PaintSize { pub struct PaintSize {
@ -32,7 +33,11 @@ impl PaintSize {
global: &PaintWorkletGlobalScope, global: &PaintWorkletGlobalScope,
size: Size2D<f32, CSSPixel>, size: Size2D<f32, CSSPixel>,
) -> DomRoot<PaintSize> { ) -> DomRoot<PaintSize> {
reflect_dom_object(Box::new(PaintSize::new_inherited(size)), global) reflect_dom_object(
Box::new(PaintSize::new_inherited(size)),
global,
CanGc::note(),
)
} }
} }

View file

@ -171,6 +171,7 @@ impl Performance {
reflect_dom_object( reflect_dom_object(
Box::new(Performance::new_inherited(navigation_start)), Box::new(Performance::new_inherited(navigation_start)),
global, global,
CanGc::note(),
) )
} }

View file

@ -13,6 +13,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct PerformanceEntry { pub struct PerformanceEntry {
@ -53,7 +54,7 @@ impl PerformanceEntry {
duration: Duration, duration: Duration,
) -> DomRoot<PerformanceEntry> { ) -> DomRoot<PerformanceEntry> {
let entry = PerformanceEntry::new_inherited(name, entry_type, Some(start_time), duration); let entry = PerformanceEntry::new_inherited(name, entry_type, Some(start_time), duration);
reflect_dom_object(Box::new(entry), global) reflect_dom_object(Box::new(entry), global, CanGc::note())
} }
pub fn entry_type(&self) -> &DOMString { pub fn entry_type(&self) -> &DOMString {

View file

@ -11,6 +11,7 @@ use crate::dom::bindings::codegen::Bindings::WindowBinding::Window_Binding::Wind
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector}; use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct PerformanceNavigation { pub struct PerformanceNavigation {
@ -25,7 +26,11 @@ impl PerformanceNavigation {
} }
pub fn new(global: &GlobalScope) -> DomRoot<PerformanceNavigation> { pub fn new(global: &GlobalScope) -> DomRoot<PerformanceNavigation> {
reflect_dom_object(Box::new(PerformanceNavigation::new_inherited()), global) reflect_dom_object(
Box::new(PerformanceNavigation::new_inherited()),
global,
CanGc::note(),
)
} }
} }

View file

@ -15,6 +15,7 @@ use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::document::Document; use crate::dom::document::Document;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::dom::performanceresourcetiming::{InitiatorType, PerformanceResourceTiming}; use crate::dom::performanceresourcetiming::{InitiatorType, PerformanceResourceTiming};
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
// https://w3c.github.io/navigation-timing/#dom-performancenavigationtiming // https://w3c.github.io/navigation-timing/#dom-performancenavigationtiming
@ -55,6 +56,7 @@ impl PerformanceNavigationTiming {
document, document,
)), )),
global, global,
CanGc::note(),
) )
} }
} }

View file

@ -12,6 +12,7 @@ use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::dom::performance::PerformanceEntryList; use crate::dom::performance::PerformanceEntryList;
use crate::dom::performanceentry::PerformanceEntry; use crate::dom::performanceentry::PerformanceEntry;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct PerformanceObserverEntryList { pub struct PerformanceObserverEntryList {
@ -33,7 +34,7 @@ impl PerformanceObserverEntryList {
entries: PerformanceEntryList, entries: PerformanceEntryList,
) -> DomRoot<PerformanceObserverEntryList> { ) -> DomRoot<PerformanceObserverEntryList> {
let observer_entry_list = PerformanceObserverEntryList::new_inherited(entries); let observer_entry_list = PerformanceObserverEntryList::new_inherited(entries);
reflect_dom_object(Box::new(observer_entry_list), global) reflect_dom_object(Box::new(observer_entry_list), global, CanGc::note())
} }
} }

View file

@ -12,6 +12,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::dom::performanceentry::PerformanceEntry; use crate::dom::performanceentry::PerformanceEntry;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct PerformancePaintTiming { pub struct PerformancePaintTiming {
@ -47,6 +48,6 @@ impl PerformancePaintTiming {
start_time: CrossProcessInstant, start_time: CrossProcessInstant,
) -> DomRoot<PerformancePaintTiming> { ) -> DomRoot<PerformancePaintTiming> {
let entry = PerformancePaintTiming::new_inherited(metric_type, start_time); let entry = PerformancePaintTiming::new_inherited(metric_type, start_time);
reflect_dom_object(Box::new(entry), global) reflect_dom_object(Box::new(entry), global, CanGc::note())
} }
} }

View file

@ -15,7 +15,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::dom::performanceentry::PerformanceEntry; use crate::dom::performanceentry::PerformanceEntry;
use crate::script_runtime::CanGc;
// TODO UA may choose to limit how many resources are included as PerformanceResourceTiming objects // TODO UA may choose to limit how many resources are included as PerformanceResourceTiming objects
// recommended minimum is 150, can be changed by setResourceTimingBufferSize in performance // recommended minimum is 150, can be changed by setResourceTimingBufferSize in performance
// https://w3c.github.io/resource-timing/#sec-extensions-performance-interface // https://w3c.github.io/resource-timing/#sec-extensions-performance-interface
@ -168,6 +168,7 @@ impl PerformanceResourceTiming {
resource_timing, resource_timing,
)), )),
global, global,
CanGc::note(),
) )
} }

View file

@ -71,7 +71,11 @@ impl Permissions {
} }
pub fn new(global: &GlobalScope) -> DomRoot<Permissions> { pub fn new(global: &GlobalScope) -> DomRoot<Permissions> {
reflect_dom_object(Box::new(Permissions::new_inherited()), global) reflect_dom_object(
Box::new(Permissions::new_inherited()),
global,
CanGc::note(),
)
} }
// https://w3c.github.io/permissions/#dom-permissions-query // https://w3c.github.io/permissions/#dom-permissions-query

View file

@ -14,6 +14,7 @@ use crate::dom::bindings::reflector::reflect_dom_object;
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::DomRoot;
use crate::dom::eventtarget::EventTarget; use crate::dom::eventtarget::EventTarget;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::script_runtime::CanGc;
// https://w3c.github.io/permissions/#permissionstatus // https://w3c.github.io/permissions/#permissionstatus
#[dom_struct] #[dom_struct]
@ -36,6 +37,7 @@ impl PermissionStatus {
reflect_dom_object( reflect_dom_object(
Box::new(PermissionStatus::new_inherited(query.name)), Box::new(PermissionStatus::new_inherited(query.name)),
global, global,
CanGc::note(),
) )
} }

View file

@ -10,6 +10,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString; use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::dom::plugin::Plugin; use crate::dom::plugin::Plugin;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct PluginArray { pub struct PluginArray {
@ -24,7 +25,11 @@ impl PluginArray {
} }
pub fn new(global: &GlobalScope) -> DomRoot<PluginArray> { pub fn new(global: &GlobalScope) -> DomRoot<PluginArray> {
reflect_dom_object(Box::new(PluginArray::new_inherited()), global) reflect_dom_object(
Box::new(PluginArray::new_inherited()),
global,
CanGc::note(),
)
} }
} }

View file

@ -42,6 +42,7 @@ impl PromiseNativeHandler {
reject, reject,
}), }),
global, global,
CanGc::note(),
) )
} }

View file

@ -17,6 +17,7 @@ use crate::dom::htmlinputelement::{HTMLInputElement, InputType};
use crate::dom::node::Node; use crate::dom::node::Node;
use crate::dom::nodelist::{NodeList, NodeListType, RadioList, RadioListMode}; use crate::dom::nodelist::{NodeList, NodeListType, RadioList, RadioListMode};
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct RadioNodeList { pub struct RadioNodeList {
@ -33,7 +34,11 @@ impl RadioNodeList {
#[allow(crown::unrooted_must_root)] #[allow(crown::unrooted_must_root)]
pub fn new(window: &Window, list_type: NodeListType) -> DomRoot<RadioNodeList> { pub fn new(window: &Window, list_type: NodeListType) -> DomRoot<RadioNodeList> {
reflect_dom_object(Box::new(RadioNodeList::new_inherited(list_type)), window) reflect_dom_object(
Box::new(RadioNodeList::new_inherited(list_type)),
window,
CanGc::note(),
)
} }
pub fn new_controls_except_image_inputs( pub fn new_controls_except_image_inputs(

View file

@ -78,6 +78,7 @@ impl ReadableStream {
reflect_dom_object( reflect_dom_object(
Box::new(ReadableStream::new_inherited(external_underlying_source)), Box::new(ReadableStream::new_inherited(external_underlying_source)),
global, global,
CanGc::note(),
) )
} }

View file

@ -105,6 +105,7 @@ impl RTCDataChannel {
servo_media_id, servo_media_id,
)), )),
global, global,
CanGc::note(),
); );
peer_connection.register_data_channel(rtc_data_channel.servo_media_id, &rtc_data_channel); peer_connection.register_data_channel(rtc_data_channel.servo_media_id, &rtc_data_channel);

View file

@ -29,7 +29,7 @@ impl RTCRtpSender {
} }
pub(crate) fn new(global: &GlobalScope) -> DomRoot<Self> { pub(crate) fn new(global: &GlobalScope) -> DomRoot<Self> {
reflect_dom_object(Box::new(Self::new_inherited()), global) reflect_dom_object(Box::new(Self::new_inherited()), global, CanGc::note())
} }
} }

View file

@ -13,6 +13,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot}; use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::dom::rtcrtpsender::RTCRtpSender; use crate::dom::rtcrtpsender::RTCRtpSender;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct RTCRtpTransceiver { pub struct RTCRtpTransceiver {
@ -35,7 +36,11 @@ impl RTCRtpTransceiver {
global: &GlobalScope, global: &GlobalScope,
direction: RTCRtpTransceiverDirection, direction: RTCRtpTransceiverDirection,
) -> DomRoot<Self> { ) -> DomRoot<Self> {
reflect_dom_object(Box::new(Self::new_inherited(global, direction)), global) reflect_dom_object(
Box::new(Self::new_inherited(global, direction)),
global,
CanGc::note(),
)
} }
} }

View file

@ -14,6 +14,7 @@ use crate::dom::bindings::num::Finite;
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector}; use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot}; use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::script_runtime::CanGc;
#[dom_struct] #[dom_struct]
pub struct Screen { pub struct Screen {
@ -30,7 +31,11 @@ impl Screen {
} }
pub fn new(window: &Window) -> DomRoot<Screen> { pub fn new(window: &Window) -> DomRoot<Screen> {
reflect_dom_object(Box::new(Screen::new_inherited(window)), window) reflect_dom_object(
Box::new(Screen::new_inherited(window)),
window,
CanGc::note(),
)
} }
fn screen_size(&self) -> Size2D<u32, CSSPixel> { fn screen_size(&self) -> Size2D<u32, CSSPixel> {

View file

@ -53,6 +53,7 @@ impl Selection {
reflect_dom_object( reflect_dom_object(
Box::new(Selection::new_inherited(document)), Box::new(Selection::new_inherited(document)),
&*document.global(), &*document.global(),
CanGc::note(),
) )
} }

View file

@ -71,6 +71,7 @@ impl ServiceWorker {
worker_id, worker_id,
)), )),
global, global,
CanGc::note(),
) )
} }

Some files were not shown because too many files have changed in this diff Show more