aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/abstractrange.rs2
-rw-r--r--components/script/dom/audiodestinationnode.rs3
-rw-r--r--components/script/dom/audiolistener.rs9
-rw-r--r--components/script/dom/audioparam.rs3
-rw-r--r--components/script/dom/audiotrack.rs2
-rw-r--r--components/script/dom/audiotracklist.rs1
-rw-r--r--components/script/dom/baseaudiocontext.rs3
-rw-r--r--components/script/dom/beforeunloadevent.rs7
-rw-r--r--components/script/dom/bindings/iterable.rs2
-rw-r--r--components/script/dom/bindings/reflector.rs12
-rw-r--r--components/script/dom/bluetooth.rs2
-rw-r--r--components/script/dom/bluetoothcharacteristicproperties.rs2
-rw-r--r--components/script/dom/bluetoothdevice.rs1
-rw-r--r--components/script/dom/bluetoothpermissionresult.rs1
-rw-r--r--components/script/dom/bluetoothremotegattcharacteristic.rs1
-rw-r--r--components/script/dom/bluetoothremotegattdescriptor.rs1
-rw-r--r--components/script/dom/bluetoothremotegattserver.rs1
-rw-r--r--components/script/dom/bluetoothremotegattservice.rs1
-rw-r--r--components/script/dom/canvasgradient.rs6
-rw-r--r--components/script/dom/canvaspattern.rs2
-rw-r--r--components/script/dom/canvasrenderingcontext2d.rs2
-rw-r--r--components/script/dom/client.rs7
-rw-r--r--components/script/dom/compositionevent.rs6
-rw-r--r--components/script/dom/crypto.rs4
-rw-r--r--components/script/dom/cryptokey.rs3
-rw-r--r--components/script/dom/cssfontfacerule.rs2
-rw-r--r--components/script/dom/cssimportrule.rs2
-rw-r--r--components/script/dom/csskeyframerule.rs2
-rw-r--r--components/script/dom/csskeyframesrule.rs2
-rw-r--r--components/script/dom/csslayerblockrule.rs2
-rw-r--r--components/script/dom/csslayerstatementrule.rs3
-rw-r--r--components/script/dom/cssmediarule.rs2
-rw-r--r--components/script/dom/cssnamespacerule.rs2
-rw-r--r--components/script/dom/cssrulelist.rs2
-rw-r--r--components/script/dom/cssstyledeclaration.rs1
-rw-r--r--components/script/dom/cssstylerule.rs2
-rw-r--r--components/script/dom/cssstylesheet.rs2
-rw-r--r--components/script/dom/cssstylevalue.rs7
-rw-r--r--components/script/dom/csssupportsrule.rs2
-rw-r--r--components/script/dom/customelementregistry.rs1
-rw-r--r--components/script/dom/datatransferitem.rs7
-rw-r--r--components/script/dom/datatransferitemlist.rs3
-rw-r--r--components/script/dom/dissimilaroriginlocation.rs2
-rw-r--r--components/script/dom/domexception.rs6
-rw-r--r--components/script/dom/domimplementation.rs6
-rw-r--r--components/script/dom/domrect.rs2
-rw-r--r--components/script/dom/domrectreadonly.rs2
-rw-r--r--components/script/dom/domstringlist.rs7
-rw-r--r--components/script/dom/domstringmap.rs6
-rw-r--r--components/script/dom/domtokenlist.rs1
-rw-r--r--components/script/dom/dynamicmoduleowner.rs2
-rw-r--r--components/script/dom/elementinternals.rs6
-rw-r--r--components/script/dom/filelist.rs2
-rw-r--r--components/script/dom/gamepadbutton.rs2
-rw-r--r--components/script/dom/gamepadbuttonlist.rs7
-rw-r--r--components/script/dom/gamepadpose.rs8
-rw-r--r--components/script/dom/history.rs6
-rw-r--r--components/script/dom/htmlcollection.rs2
-rw-r--r--components/script/dom/htmlformcontrolscollection.rs2
-rw-r--r--components/script/dom/htmloptionscollection.rs1
-rw-r--r--components/script/dom/imagebitmap.rs3
-rw-r--r--components/script/dom/location.rs6
-rw-r--r--components/script/dom/macros.rs3
-rw-r--r--components/script/dom/mediadeviceinfo.rs2
-rw-r--r--components/script/dom/mediadevices.rs6
-rw-r--r--components/script/dom/mediaerror.rs7
-rw-r--r--components/script/dom/medialist.rs2
-rw-r--r--components/script/dom/mediaquerylist.rs2
-rw-r--r--components/script/dom/mediasession.rs6
-rw-r--r--components/script/dom/mediastreamtrack.rs7
-rw-r--r--components/script/dom/messageport.rs7
-rw-r--r--components/script/dom/mimetypearray.rs7
-rw-r--r--components/script/dom/mutationrecord.rs5
-rw-r--r--components/script/dom/namednodemap.rs7
-rw-r--r--components/script/dom/navigationpreloadmanager.rs2
-rw-r--r--components/script/dom/navigator.rs2
-rw-r--r--components/script/dom/nodeiterator.rs2
-rw-r--r--components/script/dom/nodelist.rs7
-rw-r--r--components/script/dom/offscreencanvasrenderingcontext2d.rs2
-rw-r--r--components/script/dom/paintrenderingcontext2d.rs1
-rw-r--r--components/script/dom/paintsize.rs7
-rw-r--r--components/script/dom/performance.rs1
-rw-r--r--components/script/dom/performanceentry.rs3
-rw-r--r--components/script/dom/performancenavigation.rs7
-rw-r--r--components/script/dom/performancenavigationtiming.rs2
-rw-r--r--components/script/dom/performanceobserverentrylist.rs3
-rw-r--r--components/script/dom/performancepainttiming.rs3
-rw-r--r--components/script/dom/performanceresourcetiming.rs3
-rw-r--r--components/script/dom/permissions.rs6
-rw-r--r--components/script/dom/permissionstatus.rs2
-rw-r--r--components/script/dom/pluginarray.rs7
-rw-r--r--components/script/dom/promisenativehandler.rs1
-rw-r--r--components/script/dom/radionodelist.rs7
-rw-r--r--components/script/dom/readablestream.rs1
-rw-r--r--components/script/dom/rtcdatachannel.rs1
-rw-r--r--components/script/dom/rtcrtpsender.rs2
-rw-r--r--components/script/dom/rtcrtptransceiver.rs7
-rw-r--r--components/script/dom/screen.rs7
-rw-r--r--components/script/dom/selection.rs1
-rw-r--r--components/script/dom/serviceworker.rs1
-rw-r--r--components/script/dom/serviceworkercontainer.rs2
-rw-r--r--components/script/dom/serviceworkerregistration.rs2
-rw-r--r--components/script/dom/servoparser/mod.rs1
-rw-r--r--components/script/dom/shadowroot.rs1
-rw-r--r--components/script/dom/storage.rs6
-rw-r--r--components/script/dom/stylepropertymapreadonly.rs2
-rw-r--r--components/script/dom/stylesheetlist.rs7
-rw-r--r--components/script/dom/subtlecrypto.rs6
-rw-r--r--components/script/dom/testrunner.rs3
-rw-r--r--components/script/dom/textmetrics.rs2
-rw-r--r--components/script/dom/texttrack.rs2
-rw-r--r--components/script/dom/texttrackcue.rs2
-rw-r--r--components/script/dom/texttrackcuelist.rs7
-rw-r--r--components/script/dom/texttracklist.rs6
-rw-r--r--components/script/dom/timeranges.rs7
-rw-r--r--components/script/dom/touch.rs2
-rw-r--r--components/script/dom/touchevent.rs2
-rw-r--r--components/script/dom/touchlist.rs7
-rw-r--r--components/script/dom/treewalker.rs2
-rwxr-xr-xcomponents/script/dom/validitystate.rs7
-rw-r--r--components/script/dom/videotrack.rs2
-rw-r--r--components/script/dom/videotracklist.rs1
-rw-r--r--components/script/dom/visibilitystateentry.rs2
-rw-r--r--components/script/dom/webgl2renderingcontext.rs2
-rw-r--r--components/script/dom/webgl_extensions/ext/angleinstancedarrays.rs2
-rw-r--r--components/script/dom/webgl_extensions/ext/extblendminmax.rs7
-rw-r--r--components/script/dom/webgl_extensions/ext/extcolorbufferhalffloat.rs2
-rw-r--r--components/script/dom/webgl_extensions/ext/extfragdepth.rs7
-rw-r--r--components/script/dom/webgl_extensions/ext/extshadertexturelod.rs7
-rw-r--r--components/script/dom/webgl_extensions/ext/exttexturefilteranisotropic.rs7
-rw-r--r--components/script/dom/webgl_extensions/ext/oeselementindexuint.rs2
-rw-r--r--components/script/dom/webgl_extensions/ext/oesstandardderivatives.rs2
-rw-r--r--components/script/dom/webgl_extensions/ext/oestexturefloat.rs7
-rw-r--r--components/script/dom/webgl_extensions/ext/oestexturefloatlinear.rs2
-rw-r--r--components/script/dom/webgl_extensions/ext/oestexturehalffloat.rs2
-rw-r--r--components/script/dom/webgl_extensions/ext/oestexturehalffloatlinear.rs2
-rw-r--r--components/script/dom/webgl_extensions/ext/oesvertexarrayobject.rs2
-rw-r--r--components/script/dom/webgl_extensions/ext/webglcolorbufferfloat.rs2
-rw-r--r--components/script/dom/webgl_extensions/ext/webglcompressedtextureetc1.rs2
-rw-r--r--components/script/dom/webgl_extensions/ext/webglcompressedtextures3tc.rs2
-rw-r--r--components/script/dom/webglactiveinfo.rs2
-rw-r--r--components/script/dom/webglbuffer.rs2
-rw-r--r--components/script/dom/webglframebuffer.rs2
-rw-r--r--components/script/dom/webglprogram.rs2
-rw-r--r--components/script/dom/webglquery.rs2
-rw-r--r--components/script/dom/webglrenderbuffer.rs2
-rw-r--r--components/script/dom/webglrenderingcontext.rs2
-rw-r--r--components/script/dom/webglsampler.rs2
-rw-r--r--components/script/dom/webglshader.rs2
-rw-r--r--components/script/dom/webglshaderprecisionformat.rs2
-rw-r--r--components/script/dom/webglsync.rs2
-rw-r--r--components/script/dom/webgltexture.rs3
-rw-r--r--components/script/dom/webgltransformfeedback.rs2
-rw-r--r--components/script/dom/webgluniformlocation.rs2
-rw-r--r--components/script/dom/webglvertexarrayobject.rs2
-rw-r--r--components/script/dom/webglvertexarrayobjectoes.rs2
-rw-r--r--components/script/dom/webgpu/gpu.rs2
-rw-r--r--components/script/dom/webgpu/gpuadapter.rs1
-rw-r--r--components/script/dom/webgpu/gpuadapterinfo.rs3
-rw-r--r--components/script/dom/webgpu/gpubindgroup.rs2
-rw-r--r--components/script/dom/webgpu/gpubindgrouplayout.rs2
-rw-r--r--components/script/dom/webgpu/gpubuffer.rs1
-rw-r--r--components/script/dom/webgpu/gpucanvascontext.rs2
-rw-r--r--components/script/dom/webgpu/gpucommandbuffer.rs2
-rw-r--r--components/script/dom/webgpu/gpucommandencoder.rs2
-rw-r--r--components/script/dom/webgpu/gpucompilationmessage.rs2
-rw-r--r--components/script/dom/webgpu/gpucomputepassencoder.rs2
-rw-r--r--components/script/dom/webgpu/gpucomputepipeline.rs2
-rw-r--r--components/script/dom/webgpu/gpudevice.rs1
-rw-r--r--components/script/dom/webgpu/gpudevicelostinfo.rs2
-rw-r--r--components/script/dom/webgpu/gpupipelinelayout.rs2
-rw-r--r--components/script/dom/webgpu/gpuqueue.rs6
-rw-r--r--components/script/dom/webgpu/gpurenderbundle.rs2
-rw-r--r--components/script/dom/webgpu/gpurenderbundleencoder.rs2
-rw-r--r--components/script/dom/webgpu/gpurenderpassencoder.rs2
-rw-r--r--components/script/dom/webgpu/gpurenderpipeline.rs2
-rw-r--r--components/script/dom/webgpu/gpusampler.rs2
-rw-r--r--components/script/dom/webgpu/gpushadermodule.rs1
-rw-r--r--components/script/dom/webgpu/gpusupportedlimits.rs3
-rw-r--r--components/script/dom/webgpu/gputexture.rs2
-rw-r--r--components/script/dom/webgpu/gputextureview.rs2
-rw-r--r--components/script/dom/webxr/fakexrdevice.rs6
-rw-r--r--components/script/dom/webxr/fakexrinputcontroller.rs2
-rw-r--r--components/script/dom/webxr/xrboundedreferencespace.rs1
-rw-r--r--components/script/dom/webxr/xrframe.rs6
-rw-r--r--components/script/dom/webxr/xrhand.rs7
-rw-r--r--components/script/dom/webxr/xrhittestresult.rs1
-rw-r--r--components/script/dom/webxr/xrhittestsource.rs2
-rw-r--r--components/script/dom/webxr/xrinputsource.rs1
-rw-r--r--components/script/dom/webxr/xrinputsourcearray.rs6
-rw-r--r--components/script/dom/webxr/xrjointpose.rs1
-rw-r--r--components/script/dom/webxr/xrjointspace.rs2
-rw-r--r--components/script/dom/webxr/xrpose.rs6
-rw-r--r--components/script/dom/webxr/xrreferencespace.rs1
-rw-r--r--components/script/dom/webxr/xrrenderstate.rs3
-rw-r--r--components/script/dom/webxr/xrsession.rs1
-rw-r--r--components/script/dom/webxr/xrspace.rs2
-rw-r--r--components/script/dom/webxr/xrsystem.rs1
-rw-r--r--components/script/dom/webxr/xrtest.rs2
-rw-r--r--components/script/dom/webxr/xrview.rs1
-rw-r--r--components/script/dom/webxr/xrviewerpose.rs6
-rw-r--r--components/script/dom/webxr/xrviewport.rs7
-rw-r--r--components/script/dom/workerlocation.rs7
-rw-r--r--components/script/dom/workernavigator.rs8
-rw-r--r--components/script/dom/worklet.rs1
-rw-r--r--components/script/dom/xmldocument.rs2
-rw-r--r--components/script/dom/xmlhttprequestupload.rs7
207 files changed, 570 insertions, 101 deletions
diff --git a/components/script/dom/abstractrange.rs b/components/script/dom/abstractrange.rs
index bced93d478b..c16a6434d5b 100644
--- a/components/script/dom/abstractrange.rs
+++ b/components/script/dom/abstractrange.rs
@@ -14,6 +14,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{DomRoot, MutDom};
use crate::dom::document::Document;
use crate::dom::node::{Node, ShadowIncluding};
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct AbstractRange {
@@ -51,6 +52,7 @@ impl AbstractRange {
end_offset,
)),
document.window(),
+ CanGc::note(),
);
abstractrange
}
diff --git a/components/script/dom/audiodestinationnode.rs b/components/script/dom/audiodestinationnode.rs
index f0071a2f111..34f29a8fec3 100644
--- a/components/script/dom/audiodestinationnode.rs
+++ b/components/script/dom/audiodestinationnode.rs
@@ -13,6 +13,7 @@ use crate::dom::bindings::codegen::Bindings::AudioNodeBinding::{
use crate::dom::bindings::reflector::reflect_dom_object;
use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct AudioDestinationNode {
@@ -44,7 +45,7 @@ impl AudioDestinationNode {
options: &AudioNodeOptions,
) -> DomRoot<AudioDestinationNode> {
let node = AudioDestinationNode::new_inherited(context, options);
- reflect_dom_object(Box::new(node), global)
+ reflect_dom_object(Box::new(node), global, CanGc::note())
}
}
diff --git a/components/script/dom/audiolistener.rs b/components/script/dom/audiolistener.rs
index 7f005ba77f1..27382b80757 100644
--- a/components/script/dom/audiolistener.rs
+++ b/components/script/dom/audiolistener.rs
@@ -19,6 +19,7 @@ use crate::dom::bindings::num::Finite;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct AudioListener {
@@ -153,9 +154,13 @@ impl AudioListener {
}
#[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);
- reflect_dom_object(Box::new(node), window)
+ reflect_dom_object(Box::new(node), window, can_gc)
}
}
diff --git a/components/script/dom/audioparam.rs b/components/script/dom/audioparam.rs
index 92d0471f6f4..44925883b20 100644
--- a/components/script/dom/audioparam.rs
+++ b/components/script/dom/audioparam.rs
@@ -20,6 +20,7 @@ use crate::dom::bindings::num::Finite;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct AudioParam {
@@ -87,7 +88,7 @@ impl AudioParam {
min_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) {
diff --git a/components/script/dom/audiotrack.rs b/components/script/dom/audiotrack.rs
index 34666ae7d44..56a2fc15251 100644
--- a/components/script/dom/audiotrack.rs
+++ b/components/script/dom/audiotrack.rs
@@ -13,6 +13,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::DOMString;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct AudioTrack {
@@ -57,6 +58,7 @@ impl AudioTrack {
id, kind, label, language, track_list,
)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/audiotracklist.rs b/components/script/dom/audiotracklist.rs
index a285c508eb4..889eb43147f 100644
--- a/components/script/dom/audiotracklist.rs
+++ b/components/script/dom/audiotracklist.rs
@@ -45,6 +45,7 @@ impl AudioTrackList {
reflect_dom_object(
Box::new(AudioTrackList::new_inherited(tracks, media_element)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/baseaudiocontext.rs b/components/script/dom/baseaudiocontext.rs
index 83ea5c4d5c2..a93c3d6dd3e 100644
--- a/components/script/dom/baseaudiocontext.rs
+++ b/components/script/dom/baseaudiocontext.rs
@@ -341,7 +341,8 @@ impl BaseAudioContextMethods<crate::DomTypeHolder> for BaseAudioContext {
fn Listener(&self) -> DomRoot<AudioListener> {
let global = self.global();
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
diff --git a/components/script/dom/beforeunloadevent.rs b/components/script/dom/beforeunloadevent.rs
index 5df2bbc6452..7e020752a23 100644
--- a/components/script/dom/beforeunloadevent.rs
+++ b/components/script/dom/beforeunloadevent.rs
@@ -16,6 +16,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::event::{Event, EventBubbles, EventCancelable};
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
// https://html.spec.whatwg.org/multipage/#beforeunloadevent
#[dom_struct]
@@ -33,7 +34,11 @@ impl 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(
diff --git a/components/script/dom/bindings/iterable.rs b/components/script/dom/bindings/iterable.rs
index 531454077b3..afde8c83111 100644
--- a/components/script/dom/bindings/iterable.rs
+++ b/components/script/dom/bindings/iterable.rs
@@ -72,7 +72,7 @@ impl<T: DomObjectIteratorWrap + JSTraceable + Iterable> IterableIterator<T> {
iterable: Dom::from_ref(iterable),
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.
diff --git a/components/script/dom/bindings/reflector.rs b/components/script/dom/bindings/reflector.rs
index 843d7dee131..da2534402b6 100644
--- a/components/script/dom/bindings/reflector.rs
+++ b/components/script/dom/bindings/reflector.rs
@@ -19,21 +19,13 @@ use crate::script_runtime::{CanGc, JSContext};
/// Create the reflector for a new DOM object and yield ownership to the
/// 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
T: DomObject + DomObjectWrap,
U: DerivedFrom<GlobalScope>,
{
let global_scope = global.upcast();
- unsafe {
- T::WRAP(
- GlobalScope::get_cx(),
- global_scope,
- None,
- obj,
- CanGc::note(),
- )
- }
+ unsafe { T::WRAP(GlobalScope::get_cx(), global_scope, None, obj, can_gc) }
}
pub fn reflect_dom_object_with_proto<T, U>(
diff --git a/components/script/dom/bluetooth.rs b/components/script/dom/bluetooth.rs
index 7f27b3dc66b..116c2762e81 100644
--- a/components/script/dom/bluetooth.rs
+++ b/components/script/dom/bluetooth.rs
@@ -152,7 +152,7 @@ impl 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> {
diff --git a/components/script/dom/bluetoothcharacteristicproperties.rs b/components/script/dom/bluetoothcharacteristicproperties.rs
index addfd0c8719..dd7be6e2beb 100644
--- a/components/script/dom/bluetoothcharacteristicproperties.rs
+++ b/components/script/dom/bluetoothcharacteristicproperties.rs
@@ -8,6 +8,7 @@ use crate::dom::bindings::codegen::Bindings::BluetoothCharacteristicPropertiesBi
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
// https://webbluetoothcg.github.io/web-bluetooth/#characteristicproperties
#[dom_struct]
@@ -78,6 +79,7 @@ impl BluetoothCharacteristicProperties {
writableAuxiliaries,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/bluetoothdevice.rs b/components/script/dom/bluetoothdevice.rs
index 3e44386d910..2848a57dd84 100644
--- a/components/script/dom/bluetoothdevice.rs
+++ b/components/script/dom/bluetoothdevice.rs
@@ -85,6 +85,7 @@ impl BluetoothDevice {
reflect_dom_object(
Box::new(BluetoothDevice::new_inherited(id, name, context)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/bluetoothpermissionresult.rs b/components/script/dom/bluetoothpermissionresult.rs
index 2b540d977b5..d4ee404fea1 100644
--- a/components/script/dom/bluetoothpermissionresult.rs
+++ b/components/script/dom/bluetoothpermissionresult.rs
@@ -52,6 +52,7 @@ impl BluetoothPermissionResult {
reflect_dom_object(
Box::new(BluetoothPermissionResult::new_inherited(status)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/bluetoothremotegattcharacteristic.rs b/components/script/dom/bluetoothremotegattcharacteristic.rs
index 207b4e438f3..86f50eb464a 100644
--- a/components/script/dom/bluetoothremotegattcharacteristic.rs
+++ b/components/script/dom/bluetoothremotegattcharacteristic.rs
@@ -79,6 +79,7 @@ impl BluetoothRemoteGATTCharacteristic {
instance_id,
)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/bluetoothremotegattdescriptor.rs b/components/script/dom/bluetoothremotegattdescriptor.rs
index 9492ecd7363..d0b810fd1e4 100644
--- a/components/script/dom/bluetoothremotegattdescriptor.rs
+++ b/components/script/dom/bluetoothremotegattdescriptor.rs
@@ -66,6 +66,7 @@ impl BluetoothRemoteGATTDescriptor {
instance_id,
)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/bluetoothremotegattserver.rs b/components/script/dom/bluetoothremotegattserver.rs
index b386693d172..bbcead3cbe1 100644
--- a/components/script/dom/bluetoothremotegattserver.rs
+++ b/components/script/dom/bluetoothremotegattserver.rs
@@ -46,6 +46,7 @@ impl BluetoothRemoteGATTServer {
reflect_dom_object(
Box::new(BluetoothRemoteGATTServer::new_inherited(device)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/bluetoothremotegattservice.rs b/components/script/dom/bluetoothremotegattservice.rs
index 7d951fea222..223aaf0c0fe 100644
--- a/components/script/dom/bluetoothremotegattservice.rs
+++ b/components/script/dom/bluetoothremotegattservice.rs
@@ -60,6 +60,7 @@ impl BluetoothRemoteGATTService {
device, uuid, isPrimary, instanceID,
)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/canvasgradient.rs b/components/script/dom/canvasgradient.rs
index 93328b545ee..51bdf30ad79 100644
--- a/components/script/dom/canvasgradient.rs
+++ b/components/script/dom/canvasgradient.rs
@@ -43,7 +43,11 @@ impl 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(),
+ )
}
}
diff --git a/components/script/dom/canvaspattern.rs b/components/script/dom/canvaspattern.rs
index a5d0c525799..6224500ca4a 100644
--- a/components/script/dom/canvaspattern.rs
+++ b/components/script/dom/canvaspattern.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::canvasgradient::ToFillOrStrokeStyle;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
// https://html.spec.whatwg.org/multipage/#canvaspattern
#[dom_struct]
@@ -61,6 +62,7 @@ impl CanvasPattern {
origin_clean,
)),
global,
+ CanGc::note(),
)
}
pub fn origin_is_clean(&self) -> bool {
diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs
index 592359d486a..889068dff96 100644
--- a/components/script/dom/canvasrenderingcontext2d.rs
+++ b/components/script/dom/canvasrenderingcontext2d.rs
@@ -64,7 +64,7 @@ impl CanvasRenderingContext2D {
Some(canvas),
size,
));
- reflect_dom_object(boxed, global)
+ reflect_dom_object(boxed, global, CanGc::note())
}
// https://html.spec.whatwg.org/multipage/#concept-canvas-set-bitmap-dimensions
diff --git a/components/script/dom/client.rs b/components/script/dom/client.rs
index 5c87ec2acd2..b0bdd872722 100644
--- a/components/script/dom/client.rs
+++ b/components/script/dom/client.rs
@@ -14,6 +14,7 @@ use crate::dom::bindings::root::{DomRoot, MutNullableDom};
use crate::dom::bindings::str::{DOMString, USVString};
use crate::dom::serviceworker::ServiceWorker;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct Client {
@@ -39,7 +40,11 @@ impl 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 {
diff --git a/components/script/dom/compositionevent.rs b/components/script/dom/compositionevent.rs
index d48c6f79b53..067b23ec529 100644
--- a/components/script/dom/compositionevent.rs
+++ b/components/script/dom/compositionevent.rs
@@ -32,7 +32,11 @@ impl 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)]
diff --git a/components/script/dom/crypto.rs b/components/script/dom/crypto.rs
index 39ed78efae0..f15146aaec5 100644
--- a/components/script/dom/crypto.rs
+++ b/components/script/dom/crypto.rs
@@ -17,7 +17,7 @@ use crate::dom::bindings::root::{DomRoot, MutNullableDom};
use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope;
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
#[dom_struct]
@@ -38,7 +38,7 @@ impl 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())
}
}
diff --git a/components/script/dom/cryptokey.rs b/components/script/dom/cryptokey.rs
index 47e52cb1b5d..45fc70814bd 100644
--- a/components/script/dom/cryptokey.rs
+++ b/components/script/dom/cryptokey.rs
@@ -17,7 +17,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope;
use crate::js::conversions::ToJSValConvertible;
-use crate::script_runtime::JSContext;
+use crate::script_runtime::{CanGc, JSContext};
/// The underlying cryptographic data this key represents
#[allow(dead_code)]
@@ -96,6 +96,7 @@ impl CryptoKey {
handle,
)),
global,
+ CanGc::note(),
);
object.algorithm_object.set(algorithm_object.get());
diff --git a/components/script/dom/cssfontfacerule.rs b/components/script/dom/cssfontfacerule.rs
index 67027da294a..d0eee47ea91 100644
--- a/components/script/dom/cssfontfacerule.rs
+++ b/components/script/dom/cssfontfacerule.rs
@@ -13,6 +13,7 @@ use crate::dom::bindings::str::DOMString;
use crate::dom::cssrule::{CSSRule, SpecificCSSRule};
use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct CSSFontFaceRule {
@@ -45,6 +46,7 @@ impl CSSFontFaceRule {
fontfacerule,
)),
window,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/cssimportrule.rs b/components/script/dom/cssimportrule.rs
index 1bebbeb90f7..da63ab7df0e 100644
--- a/components/script/dom/cssimportrule.rs
+++ b/components/script/dom/cssimportrule.rs
@@ -16,6 +16,7 @@ use crate::dom::bindings::str::DOMString;
use crate::dom::cssrule::{CSSRule, SpecificCSSRule};
use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct CSSImportRule {
@@ -45,6 +46,7 @@ impl CSSImportRule {
reflect_dom_object(
Box::new(Self::new_inherited(parent_stylesheet, import_rule)),
window,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/csskeyframerule.rs b/components/script/dom/csskeyframerule.rs
index c30b6b28fbb..ae0097ab7a9 100644
--- a/components/script/dom/csskeyframerule.rs
+++ b/components/script/dom/csskeyframerule.rs
@@ -17,6 +17,7 @@ use crate::dom::cssrule::{CSSRule, SpecificCSSRule};
use crate::dom::cssstyledeclaration::{CSSModificationAccess, CSSStyleDeclaration, CSSStyleOwner};
use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct CSSKeyframeRule {
@@ -51,6 +52,7 @@ impl CSSKeyframeRule {
keyframerule,
)),
window,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/csskeyframesrule.rs b/components/script/dom/csskeyframesrule.rs
index 4457bd0b117..1312dfe4eaa 100644
--- a/components/script/dom/csskeyframesrule.rs
+++ b/components/script/dom/csskeyframesrule.rs
@@ -21,6 +21,7 @@ use crate::dom::cssrule::{CSSRule, SpecificCSSRule};
use crate::dom::cssrulelist::{CSSRuleList, RulesSource};
use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct CSSKeyframesRule {
@@ -55,6 +56,7 @@ impl CSSKeyframesRule {
keyframesrule,
)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/csslayerblockrule.rs b/components/script/dom/csslayerblockrule.rs
index dba11279a65..a3d691c563e 100644
--- a/components/script/dom/csslayerblockrule.rs
+++ b/components/script/dom/csslayerblockrule.rs
@@ -16,6 +16,7 @@ use crate::dom::cssgroupingrule::CSSGroupingRule;
use crate::dom::cssrule::SpecificCSSRule;
use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct CSSLayerBlockRule {
@@ -51,6 +52,7 @@ impl CSSLayerBlockRule {
layerblockrule,
)),
window,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/csslayerstatementrule.rs b/components/script/dom/csslayerstatementrule.rs
index 8f012c0e41a..b4859a49b83 100644
--- a/components/script/dom/csslayerstatementrule.rs
+++ b/components/script/dom/csslayerstatementrule.rs
@@ -17,7 +17,7 @@ use crate::dom::bindings::utils::to_frozen_array;
use crate::dom::cssrule::{CSSRule, SpecificCSSRule};
use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window;
-use crate::script_runtime::JSContext as SafeJSContext;
+use crate::script_runtime::{CanGc, JSContext as SafeJSContext};
#[dom_struct]
pub struct CSSLayerStatementRule {
@@ -50,6 +50,7 @@ impl CSSLayerStatementRule {
layerstatementrule,
)),
window,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/cssmediarule.rs b/components/script/dom/cssmediarule.rs
index 53abf8ffa0a..02753bf3b60 100644
--- a/components/script/dom/cssmediarule.rs
+++ b/components/script/dom/cssmediarule.rs
@@ -17,6 +17,7 @@ use crate::dom::cssrule::SpecificCSSRule;
use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::medialist::MediaList;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct CSSMediaRule {
@@ -46,6 +47,7 @@ impl CSSMediaRule {
reflect_dom_object(
Box::new(CSSMediaRule::new_inherited(parent_stylesheet, mediarule)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/cssnamespacerule.rs b/components/script/dom/cssnamespacerule.rs
index ea2a10bb260..df4fcce690b 100644
--- a/components/script/dom/cssnamespacerule.rs
+++ b/components/script/dom/cssnamespacerule.rs
@@ -14,6 +14,7 @@ use crate::dom::bindings::str::DOMString;
use crate::dom::cssrule::{CSSRule, SpecificCSSRule};
use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct CSSNamespaceRule {
@@ -46,6 +47,7 @@ impl CSSNamespaceRule {
namespacerule,
)),
window,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/cssrulelist.rs b/components/script/dom/cssrulelist.rs
index 280374ba34d..92cfead1c53 100644
--- a/components/script/dom/cssrulelist.rs
+++ b/components/script/dom/cssrulelist.rs
@@ -22,6 +22,7 @@ use crate::dom::cssrule::CSSRule;
use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::htmlelement::HTMLElement;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
use crate::stylesheet_loader::StylesheetLoader;
unsafe_no_jsmanaged_fields!(RulesSource);
@@ -87,6 +88,7 @@ impl CSSRuleList {
reflect_dom_object(
Box::new(CSSRuleList::new_inherited(parent_stylesheet, rules)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/cssstyledeclaration.rs b/components/script/dom/cssstyledeclaration.rs
index b2d6bb6637e..732077ca6a1 100644
--- a/components/script/dom/cssstyledeclaration.rs
+++ b/components/script/dom/cssstyledeclaration.rs
@@ -244,6 +244,7 @@ impl CSSStyleDeclaration {
modification_access,
)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/cssstylerule.rs b/components/script/dom/cssstylerule.rs
index 8a06cb79abd..dc0414881f2 100644
--- a/components/script/dom/cssstylerule.rs
+++ b/components/script/dom/cssstylerule.rs
@@ -22,6 +22,7 @@ use crate::dom::cssstyledeclaration::{CSSModificationAccess, CSSStyleDeclaration
use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::node::{stylesheets_owner_from_node, Node};
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct CSSStyleRule {
@@ -53,6 +54,7 @@ impl CSSStyleRule {
reflect_dom_object(
Box::new(CSSStyleRule::new_inherited(parent_stylesheet, stylerule)),
window,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/cssstylesheet.rs b/components/script/dom/cssstylesheet.rs
index f25ffa14b8e..4b1a7e1e63a 100644
--- a/components/script/dom/cssstylesheet.rs
+++ b/components/script/dom/cssstylesheet.rs
@@ -21,6 +21,7 @@ use crate::dom::medialist::MediaList;
use crate::dom::node::{stylesheets_owner_from_node, Node};
use crate::dom::stylesheet::StyleSheet;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct CSSStyleSheet {
@@ -64,6 +65,7 @@ impl CSSStyleSheet {
owner, type_, href, title, stylesheet,
)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/cssstylevalue.rs b/components/script/dom/cssstylevalue.rs
index 83bab3a23a0..1a303634ec6 100644
--- a/components/script/dom/cssstylevalue.rs
+++ b/components/script/dom/cssstylevalue.rs
@@ -11,6 +11,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct CSSStyleValue {
@@ -27,7 +28,11 @@ impl 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(),
+ )
}
}
diff --git a/components/script/dom/csssupportsrule.rs b/components/script/dom/csssupportsrule.rs
index 18ec34aac0e..ea7d734ea1f 100644
--- a/components/script/dom/csssupportsrule.rs
+++ b/components/script/dom/csssupportsrule.rs
@@ -15,6 +15,7 @@ use crate::dom::cssconditionrule::CSSConditionRule;
use crate::dom::cssrule::SpecificCSSRule;
use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct CSSSupportsRule {
@@ -48,6 +49,7 @@ impl CSSSupportsRule {
supportsrule,
)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/customelementregistry.rs b/components/script/dom/customelementregistry.rs
index aa2bd0cc597..729088e90f0 100644
--- a/components/script/dom/customelementregistry.rs
+++ b/components/script/dom/customelementregistry.rs
@@ -92,6 +92,7 @@ impl CustomElementRegistry {
reflect_dom_object(
Box::new(CustomElementRegistry::new_inherited(window)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/datatransferitem.rs b/components/script/dom/datatransferitem.rs
index 2144666421d..b1d5e1d4480 100644
--- a/components/script/dom/datatransferitem.rs
+++ b/components/script/dom/datatransferitem.rs
@@ -16,6 +16,7 @@ use crate::dom::bindings::str::DOMString;
use crate::dom::file::File;
use crate::dom::globalscope::GlobalScope;
use crate::drag_data_store::Kind;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct DataTransferItem {
@@ -34,7 +35,11 @@ impl 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(),
+ )
}
}
diff --git a/components/script/dom/datatransferitemlist.rs b/components/script/dom/datatransferitemlist.rs
index 9e2192e278b..0a0c44c5e04 100644
--- a/components/script/dom/datatransferitemlist.rs
+++ b/components/script/dom/datatransferitemlist.rs
@@ -18,7 +18,7 @@ use crate::dom::datatransferitem::DataTransferItem;
use crate::dom::file::File;
use crate::dom::window::Window;
use crate::drag_data_store::{Binary, DragDataStore, Kind, Mode, PlainString};
-use crate::script_runtime::JSContext;
+use crate::script_runtime::{CanGc, JSContext};
#[dom_struct]
pub struct DataTransferItemList {
@@ -46,6 +46,7 @@ impl DataTransferItemList {
reflect_dom_object(
Box::new(DataTransferItemList::new_inherited(data_store)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/dissimilaroriginlocation.rs b/components/script/dom/dissimilaroriginlocation.rs
index 338145fe978..12b309d140c 100644
--- a/components/script/dom/dissimilaroriginlocation.rs
+++ b/components/script/dom/dissimilaroriginlocation.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::{DOMString, USVString};
use crate::dom::dissimilaroriginwindow::DissimilarOriginWindow;
+use crate::script_runtime::CanGc;
/// Represents a dissimilar-origin `Location` that exists in another script thread.
///
@@ -40,6 +41,7 @@ impl DissimilarOriginLocation {
reflect_dom_object(
Box::new(DissimilarOriginLocation::new_inherited(window)),
window,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs
index 136e86434f0..925b35e30db 100644
--- a/components/script/dom/domexception.rs
+++ b/components/script/dom/domexception.rs
@@ -148,7 +148,11 @@ impl DOMException {
pub fn new(global: &GlobalScope, code: DOMErrorName) -> DomRoot<DOMException> {
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
diff --git a/components/script/dom/domimplementation.rs b/components/script/dom/domimplementation.rs
index b034ad438e4..6d2d9e75c52 100644
--- a/components/script/dom/domimplementation.rs
+++ b/components/script/dom/domimplementation.rs
@@ -47,7 +47,11 @@ impl DOMImplementation {
pub fn new(document: &Document) -> DomRoot<DOMImplementation> {
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(),
+ )
}
}
diff --git a/components/script/dom/domrect.rs b/components/script/dom/domrect.rs
index 01bf727629d..e78b9fdfcbd 100644
--- a/components/script/dom/domrect.rs
+++ b/components/script/dom/domrect.rs
@@ -78,7 +78,7 @@ impl DOMRectMethods<crate::DomTypeHolder> for DOMRect {
fn FromRect(global: &GlobalScope, other: &DOMRectInit) -> DomRoot<DOMRect> {
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
diff --git a/components/script/dom/domrectreadonly.rs b/components/script/dom/domrectreadonly.rs
index 239dea9060b..2a04bd3596e 100644
--- a/components/script/dom/domrectreadonly.rs
+++ b/components/script/dom/domrectreadonly.rs
@@ -93,7 +93,7 @@ impl DOMRectReadOnlyMethods<crate::DomTypeHolder> for DOMRectReadOnly {
fn FromRect(global: &GlobalScope, other: &DOMRectInit) -> DomRoot<DOMRectReadOnly> {
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
diff --git a/components/script/dom/domstringlist.rs b/components/script/dom/domstringlist.rs
index f64841232e0..aa83e81db93 100644
--- a/components/script/dom/domstringlist.rs
+++ b/components/script/dom/domstringlist.rs
@@ -9,6 +9,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct DOMStringList {
@@ -27,7 +28,11 @@ impl DOMStringList {
#[allow(unused)]
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(),
+ )
}
}
diff --git a/components/script/dom/domstringmap.rs b/components/script/dom/domstringmap.rs
index eab7f9d3b17..952e5491abb 100644
--- a/components/script/dom/domstringmap.rs
+++ b/components/script/dom/domstringmap.rs
@@ -29,7 +29,11 @@ impl DOMStringMap {
pub fn new(element: &HTMLElement) -> DomRoot<DOMStringMap> {
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(),
+ )
}
}
diff --git a/components/script/dom/domtokenlist.rs b/components/script/dom/domtokenlist.rs
index 8476dc06cf8..33620c68d21 100644
--- a/components/script/dom/domtokenlist.rs
+++ b/components/script/dom/domtokenlist.rs
@@ -54,6 +54,7 @@ impl DOMTokenList {
supported_tokens,
)),
&*window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/dynamicmoduleowner.rs b/components/script/dom/dynamicmoduleowner.rs
index 889dbae5d84..1a0f3fdb8bf 100644
--- a/components/script/dom/dynamicmoduleowner.rs
+++ b/components/script/dom/dynamicmoduleowner.rs
@@ -12,6 +12,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope;
use crate::dom::promise::Promise;
+use crate::script_runtime::CanGc;
/// An unique id for dynamic module
#[derive(Clone, Copy, Debug, Eq, Hash, JSTraceable, PartialEq)]
@@ -44,6 +45,7 @@ impl DynamicModuleOwner {
reflect_dom_object(
Box::new(DynamicModuleOwner::new_inherited(promise, id)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/elementinternals.rs b/components/script/dom/elementinternals.rs
index bf6e9059651..1baf20caed5 100644
--- a/components/script/dom/elementinternals.rs
+++ b/components/script/dom/elementinternals.rs
@@ -89,7 +89,11 @@ impl ElementInternals {
pub fn new(element: &HTMLElement) -> DomRoot<ElementInternals> {
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 {
diff --git a/components/script/dom/filelist.rs b/components/script/dom/filelist.rs
index 44afd40f418..25f463f8dde 100644
--- a/components/script/dom/filelist.rs
+++ b/components/script/dom/filelist.rs
@@ -11,6 +11,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::file::File;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
// https://w3c.github.io/FileAPI/#dfn-filelist
#[dom_struct]
@@ -35,6 +36,7 @@ impl FileList {
files.iter().map(|r| Dom::from_ref(&**r)).collect(),
)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/gamepadbutton.rs b/components/script/dom/gamepadbutton.rs
index 7ed3ed56728..4605983ae6a 100644
--- a/components/script/dom/gamepadbutton.rs
+++ b/components/script/dom/gamepadbutton.rs
@@ -11,6 +11,7 @@ use crate::dom::bindings::num::Finite;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GamepadButton {
@@ -34,6 +35,7 @@ impl GamepadButton {
reflect_dom_object(
Box::new(GamepadButton::new_inherited(pressed, touched)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/gamepadbuttonlist.rs b/components/script/dom/gamepadbuttonlist.rs
index ef0739ee060..6a7aeb8389f 100644
--- a/components/script/dom/gamepadbuttonlist.rs
+++ b/components/script/dom/gamepadbuttonlist.rs
@@ -9,6 +9,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot, DomSlice};
use crate::dom::gamepadbutton::GamepadButton;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
// https://w3c.github.io/gamepad/#gamepadbutton-interface
#[dom_struct]
@@ -27,7 +28,11 @@ impl 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(),
+ )
}
}
diff --git a/components/script/dom/gamepadpose.rs b/components/script/dom/gamepadpose.rs
index 012b1dd7679..4b6005a93f9 100644
--- a/components/script/dom/gamepadpose.rs
+++ b/components/script/dom/gamepadpose.rs
@@ -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::root::DomRoot;
use crate::dom::globalscope::GlobalScope;
-use crate::script_runtime::JSContext;
+use crate::script_runtime::{CanGc, JSContext};
#[dom_struct]
pub struct GamepadPose {
@@ -45,7 +45,11 @@ impl 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(),
+ )
}
}
diff --git a/components/script/dom/history.rs b/components/script/dom/history.rs
index fb082acd9d7..aa45abdaab0 100644
--- a/components/script/dom/history.rs
+++ b/components/script/dom/history.rs
@@ -62,7 +62,11 @@ impl 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(),
+ )
}
}
diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs
index dc95d644d16..b0659484b5a 100644
--- a/components/script/dom/htmlcollection.rs
+++ b/components/script/dom/htmlcollection.rs
@@ -20,6 +20,7 @@ use crate::dom::bindings::xmlname::namespace_from_domstring;
use crate::dom::element::Element;
use crate::dom::node::{document_from_node, Node};
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
pub trait CollectionFilter: JSTraceable {
fn filter<'a>(&self, elem: &'a Element, root: &'a Node) -> bool;
@@ -107,6 +108,7 @@ impl HTMLCollection {
reflect_dom_object(
Box::new(HTMLCollection::new_inherited(root, filter)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/htmlformcontrolscollection.rs b/components/script/dom/htmlformcontrolscollection.rs
index 4c037fd0632..de9152404c4 100644
--- a/components/script/dom/htmlformcontrolscollection.rs
+++ b/components/script/dom/htmlformcontrolscollection.rs
@@ -19,6 +19,7 @@ use crate::dom::htmlformelement::HTMLFormElement;
use crate::dom::node::Node;
use crate::dom::radionodelist::RadioNodeList;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct HTMLFormControlsCollection {
@@ -48,6 +49,7 @@ impl HTMLFormControlsCollection {
reflect_dom_object(
Box::new(HTMLFormControlsCollection::new_inherited(form, filter)),
window,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/htmloptionscollection.rs b/components/script/dom/htmloptionscollection.rs
index ee36ff158b3..d025f827e70 100644
--- a/components/script/dom/htmloptionscollection.rs
+++ b/components/script/dom/htmloptionscollection.rs
@@ -51,6 +51,7 @@ impl HTMLOptionsCollection {
reflect_dom_object(
Box::new(HTMLOptionsCollection::new_inherited(select, filter)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/imagebitmap.rs b/components/script/dom/imagebitmap.rs
index 9215b889c04..322c898223c 100644
--- a/components/script/dom/imagebitmap.rs
+++ b/components/script/dom/imagebitmap.rs
@@ -13,6 +13,7 @@ use crate::dom::bindings::error::Fallible;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct ImageBitmap {
@@ -43,7 +44,7 @@ impl ImageBitmap {
//assigning to a variable the return object of new_inherited
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>) {
diff --git a/components/script/dom/location.rs b/components/script/dom/location.rs
index d83e8549bfe..a0ad9f583d8 100644
--- a/components/script/dom/location.rs
+++ b/components/script/dom/location.rs
@@ -58,7 +58,11 @@ impl 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.
diff --git a/components/script/dom/macros.rs b/components/script/dom/macros.rs
index 4d43656996c..32c76d2f24e 100644
--- a/components/script/dom/macros.rs
+++ b/components/script/dom/macros.rs
@@ -663,6 +663,7 @@ macro_rules! impl_performance_entry_struct(
use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::performanceentry::PerformanceEntry;
+ use crate::script_runtime::CanGc;
use dom_struct::dom_struct;
#[dom_struct]
@@ -687,7 +688,7 @@ macro_rules! impl_performance_entry_struct(
start_time: CrossProcessInstant,
duration: Duration) -> DomRoot<$struct> {
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())
}
}
);
diff --git a/components/script/dom/mediadeviceinfo.rs b/components/script/dom/mediadeviceinfo.rs
index 57ed374d9aa..a7261229987 100644
--- a/components/script/dom/mediadeviceinfo.rs
+++ b/components/script/dom/mediadeviceinfo.rs
@@ -13,6 +13,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct MediaDeviceInfo {
@@ -51,6 +52,7 @@ impl MediaDeviceInfo {
device_id, kind, label, group_id,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/mediadevices.rs b/components/script/dom/mediadevices.rs
index f38a4b10544..fd24ed57bbd 100644
--- a/components/script/dom/mediadevices.rs
+++ b/components/script/dom/mediadevices.rs
@@ -41,7 +41,11 @@ impl 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(),
+ )
}
}
diff --git a/components/script/dom/mediaerror.rs b/components/script/dom/mediaerror.rs
index e527d5e1456..9202634e4d9 100644
--- a/components/script/dom/mediaerror.rs
+++ b/components/script/dom/mediaerror.rs
@@ -9,6 +9,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct MediaError {
@@ -25,7 +26,11 @@ impl 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(),
+ )
}
}
diff --git a/components/script/dom/medialist.rs b/components/script/dom/medialist.rs
index faaba530749..244b06c7cb5 100644
--- a/components/script/dom/medialist.rs
+++ b/components/script/dom/medialist.rs
@@ -18,6 +18,7 @@ use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::DOMString;
use crate::dom::cssstylesheet::CSSStyleSheet;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct MediaList {
@@ -50,6 +51,7 @@ impl MediaList {
reflect_dom_object(
Box::new(MediaList::new_inherited(parent_stylesheet, media_queries)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/mediaquerylist.rs b/components/script/dom/mediaquerylist.rs
index 41c9acabd64..aa019c4a178 100644
--- a/components/script/dom/mediaquerylist.rs
+++ b/components/script/dom/mediaquerylist.rs
@@ -20,6 +20,7 @@ use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::DOMString;
use crate::dom::document::Document;
use crate::dom::eventtarget::EventTarget;
+use crate::script_runtime::CanGc;
pub enum MediaQueryListMatchState {
Same,
@@ -49,6 +50,7 @@ impl MediaQueryList {
reflect_dom_object(
Box::new(MediaQueryList::new_inherited(document, media_query_list)),
document.window(),
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/mediasession.rs b/components/script/dom/mediasession.rs
index 8301c6fab5e..96d121904c4 100644
--- a/components/script/dom/mediasession.rs
+++ b/components/script/dom/mediasession.rs
@@ -62,7 +62,11 @@ impl 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) {
diff --git a/components/script/dom/mediastreamtrack.rs b/components/script/dom/mediastreamtrack.rs
index d0429e3ed5a..523d9d12f99 100644
--- a/components/script/dom/mediastreamtrack.rs
+++ b/components/script/dom/mediastreamtrack.rs
@@ -12,6 +12,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::eventtarget::EventTarget;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct MediaStreamTrack {
@@ -38,7 +39,11 @@ impl MediaStreamTrack {
id: MediaStreamId,
ty: MediaStreamType,
) -> 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 {
diff --git a/components/script/dom/messageport.rs b/components/script/dom/messageport.rs
index fc0ea06cada..03e3e4228a4 100644
--- a/components/script/dom/messageport.rs
+++ b/components/script/dom/messageport.rs
@@ -54,7 +54,11 @@ impl MessagePort {
/// <https://html.spec.whatwg.org/multipage/#create-a-new-messageport-object>
pub fn new(owner: &GlobalScope) -> DomRoot<MessagePort> {
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.
@@ -71,6 +75,7 @@ impl MessagePort {
entangled_port: RefCell::new(entangled_port),
}),
owner,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/mimetypearray.rs b/components/script/dom/mimetypearray.rs
index aa4a81438e8..52eb77d3a72 100644
--- a/components/script/dom/mimetypearray.rs
+++ b/components/script/dom/mimetypearray.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::mimetype::MimeType;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct MimeTypeArray {
@@ -24,7 +25,11 @@ impl 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(),
+ )
}
}
diff --git a/components/script/dom/mutationrecord.rs b/components/script/dom/mutationrecord.rs
index 1b0673ed6d1..5e438a61fd4 100644
--- a/components/script/dom/mutationrecord.rs
+++ b/components/script/dom/mutationrecord.rs
@@ -11,6 +11,7 @@ use crate::dom::bindings::root::{Dom, DomRoot, MutNullableDom};
use crate::dom::bindings::str::DOMString;
use crate::dom::node::{window_from_node, Node};
use crate::dom::nodelist::NodeList;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct MutationRecord {
@@ -45,7 +46,7 @@ impl MutationRecord {
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(
@@ -65,6 +66,7 @@ impl MutationRecord {
None,
)),
&*window_from_node(target),
+ CanGc::note(),
)
}
@@ -93,6 +95,7 @@ impl MutationRecord {
prev_sibling,
)),
&*window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/namednodemap.rs b/components/script/dom/namednodemap.rs
index f474fae7959..d043591cbfd 100644
--- a/components/script/dom/namednodemap.rs
+++ b/components/script/dom/namednodemap.rs
@@ -15,6 +15,7 @@ use crate::dom::bindings::str::DOMString;
use crate::dom::bindings::xmlname::namespace_from_domstring;
use crate::dom::element::Element;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct NamedNodeMap {
@@ -31,7 +32,11 @@ impl 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(),
+ )
}
}
diff --git a/components/script/dom/navigationpreloadmanager.rs b/components/script/dom/navigationpreloadmanager.rs
index 54e01fe84e7..b3965e17cc0 100644
--- a/components/script/dom/navigationpreloadmanager.rs
+++ b/components/script/dom/navigationpreloadmanager.rs
@@ -40,7 +40,7 @@ impl NavigationPreloadManager {
registration: &ServiceWorkerRegistration,
) -> DomRoot<NavigationPreloadManager> {
let manager = NavigationPreloadManager::new_inherited(registration);
- reflect_dom_object(Box::new(manager), global)
+ reflect_dom_object(Box::new(manager), global, CanGc::note())
}
}
diff --git a/components/script/dom/navigator.rs b/components/script/dom/navigator.rs
index 01798c0afa7..71ca760882c 100644
--- a/components/script/dom/navigator.rs
+++ b/components/script/dom/navigator.rs
@@ -80,7 +80,7 @@ impl 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")]
diff --git a/components/script/dom/nodeiterator.rs b/components/script/dom/nodeiterator.rs
index f02343be5df..ede0cee139e 100644
--- a/components/script/dom/nodeiterator.rs
+++ b/components/script/dom/nodeiterator.rs
@@ -16,6 +16,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot, MutDom};
use crate::dom::document::Document;
use crate::dom::node::Node;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct NodeIterator {
@@ -52,6 +53,7 @@ impl NodeIterator {
reflect_dom_object(
Box::new(NodeIterator::new_inherited(root_node, what_to_show, filter)),
document.window(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/nodelist.rs b/components/script/dom/nodelist.rs
index de892783101..cc2b60f7c8d 100644
--- a/components/script/dom/nodelist.rs
+++ b/components/script/dom/nodelist.rs
@@ -17,6 +17,7 @@ use crate::dom::htmlelement::HTMLElement;
use crate::dom::htmlformelement::HTMLFormElement;
use crate::dom::node::{ChildrenMutation, Node};
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[derive(JSTraceable, MallocSizeOf)]
#[crown::unrooted_must_root_lint::must_root]
@@ -46,7 +47,11 @@ impl NodeList {
#[allow(crown::unrooted_must_root)]
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>
diff --git a/components/script/dom/offscreencanvasrenderingcontext2d.rs b/components/script/dom/offscreencanvasrenderingcontext2d.rs
index 7eea394842d..974ee519ec4 100644
--- a/components/script/dom/offscreencanvasrenderingcontext2d.rs
+++ b/components/script/dom/offscreencanvasrenderingcontext2d.rs
@@ -59,7 +59,7 @@ impl OffscreenCanvasRenderingContext2D {
let boxed = Box::new(OffscreenCanvasRenderingContext2D::new_inherited(
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>) {
diff --git a/components/script/dom/paintrenderingcontext2d.rs b/components/script/dom/paintrenderingcontext2d.rs
index e9f93aa50e3..f6c906b2c06 100644
--- a/components/script/dom/paintrenderingcontext2d.rs
+++ b/components/script/dom/paintrenderingcontext2d.rs
@@ -51,6 +51,7 @@ impl PaintRenderingContext2D {
reflect_dom_object(
Box::new(PaintRenderingContext2D::new_inherited(global)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/paintsize.rs b/components/script/dom/paintsize.rs
index b3a1348791e..09cde954640 100644
--- a/components/script/dom/paintsize.rs
+++ b/components/script/dom/paintsize.rs
@@ -11,6 +11,7 @@ use crate::dom::bindings::num::Finite;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::paintworkletglobalscope::PaintWorkletGlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct PaintSize {
@@ -32,7 +33,11 @@ impl PaintSize {
global: &PaintWorkletGlobalScope,
size: Size2D<f32, CSSPixel>,
) -> DomRoot<PaintSize> {
- reflect_dom_object(Box::new(PaintSize::new_inherited(size)), global)
+ reflect_dom_object(
+ Box::new(PaintSize::new_inherited(size)),
+ global,
+ CanGc::note(),
+ )
}
}
diff --git a/components/script/dom/performance.rs b/components/script/dom/performance.rs
index be440b0080d..f3a6033ab84 100644
--- a/components/script/dom/performance.rs
+++ b/components/script/dom/performance.rs
@@ -171,6 +171,7 @@ impl Performance {
reflect_dom_object(
Box::new(Performance::new_inherited(navigation_start)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/performanceentry.rs b/components/script/dom/performanceentry.rs
index 30a6779c876..ee639856894 100644
--- a/components/script/dom/performanceentry.rs
+++ b/components/script/dom/performanceentry.rs
@@ -13,6 +13,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct PerformanceEntry {
@@ -53,7 +54,7 @@ impl PerformanceEntry {
duration: Duration,
) -> DomRoot<PerformanceEntry> {
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 {
diff --git a/components/script/dom/performancenavigation.rs b/components/script/dom/performancenavigation.rs
index ede953eb081..92863b6bd8b 100644
--- a/components/script/dom/performancenavigation.rs
+++ b/components/script/dom/performancenavigation.rs
@@ -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::root::DomRoot;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct PerformanceNavigation {
@@ -25,7 +26,11 @@ impl 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(),
+ )
}
}
diff --git a/components/script/dom/performancenavigationtiming.rs b/components/script/dom/performancenavigationtiming.rs
index 844c740a487..955cc09423d 100644
--- a/components/script/dom/performancenavigationtiming.rs
+++ b/components/script/dom/performancenavigationtiming.rs
@@ -15,6 +15,7 @@ use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::document::Document;
use crate::dom::globalscope::GlobalScope;
use crate::dom::performanceresourcetiming::{InitiatorType, PerformanceResourceTiming};
+use crate::script_runtime::CanGc;
#[dom_struct]
// https://w3c.github.io/navigation-timing/#dom-performancenavigationtiming
@@ -55,6 +56,7 @@ impl PerformanceNavigationTiming {
document,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/performanceobserverentrylist.rs b/components/script/dom/performanceobserverentrylist.rs
index 0bea8bada55..12e706abfa2 100644
--- a/components/script/dom/performanceobserverentrylist.rs
+++ b/components/script/dom/performanceobserverentrylist.rs
@@ -12,6 +12,7 @@ use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::performance::PerformanceEntryList;
use crate::dom::performanceentry::PerformanceEntry;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct PerformanceObserverEntryList {
@@ -33,7 +34,7 @@ impl PerformanceObserverEntryList {
entries: PerformanceEntryList,
) -> DomRoot<PerformanceObserverEntryList> {
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())
}
}
diff --git a/components/script/dom/performancepainttiming.rs b/components/script/dom/performancepainttiming.rs
index 4226ab91960..6bfc06e1bd1 100644
--- a/components/script/dom/performancepainttiming.rs
+++ b/components/script/dom/performancepainttiming.rs
@@ -12,6 +12,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::performanceentry::PerformanceEntry;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct PerformancePaintTiming {
@@ -47,6 +48,6 @@ impl PerformancePaintTiming {
start_time: CrossProcessInstant,
) -> DomRoot<PerformancePaintTiming> {
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())
}
}
diff --git a/components/script/dom/performanceresourcetiming.rs b/components/script/dom/performanceresourcetiming.rs
index de716b05ea2..d571a04c5d9 100644
--- a/components/script/dom/performanceresourcetiming.rs
+++ b/components/script/dom/performanceresourcetiming.rs
@@ -15,7 +15,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::performanceentry::PerformanceEntry;
-
+use crate::script_runtime::CanGc;
// 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
// https://w3c.github.io/resource-timing/#sec-extensions-performance-interface
@@ -168,6 +168,7 @@ impl PerformanceResourceTiming {
resource_timing,
)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/permissions.rs b/components/script/dom/permissions.rs
index c2a590f997e..d4f78d4fb63 100644
--- a/components/script/dom/permissions.rs
+++ b/components/script/dom/permissions.rs
@@ -71,7 +71,11 @@ impl 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
diff --git a/components/script/dom/permissionstatus.rs b/components/script/dom/permissionstatus.rs
index c2262ca153d..d34d4a58213 100644
--- a/components/script/dom/permissionstatus.rs
+++ b/components/script/dom/permissionstatus.rs
@@ -14,6 +14,7 @@ use crate::dom::bindings::reflector::reflect_dom_object;
use crate::dom::bindings::root::DomRoot;
use crate::dom::eventtarget::EventTarget;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
// https://w3c.github.io/permissions/#permissionstatus
#[dom_struct]
@@ -36,6 +37,7 @@ impl PermissionStatus {
reflect_dom_object(
Box::new(PermissionStatus::new_inherited(query.name)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/pluginarray.rs b/components/script/dom/pluginarray.rs
index a1392ac43f7..fba0efa7093 100644
--- a/components/script/dom/pluginarray.rs
+++ b/components/script/dom/pluginarray.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::plugin::Plugin;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct PluginArray {
@@ -24,7 +25,11 @@ impl 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(),
+ )
}
}
diff --git a/components/script/dom/promisenativehandler.rs b/components/script/dom/promisenativehandler.rs
index 4b57cd08f63..be071a11abc 100644
--- a/components/script/dom/promisenativehandler.rs
+++ b/components/script/dom/promisenativehandler.rs
@@ -42,6 +42,7 @@ impl PromiseNativeHandler {
reject,
}),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/radionodelist.rs b/components/script/dom/radionodelist.rs
index 1614ab62c98..9b1e7a88ca2 100644
--- a/components/script/dom/radionodelist.rs
+++ b/components/script/dom/radionodelist.rs
@@ -17,6 +17,7 @@ use crate::dom::htmlinputelement::{HTMLInputElement, InputType};
use crate::dom::node::Node;
use crate::dom::nodelist::{NodeList, NodeListType, RadioList, RadioListMode};
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct RadioNodeList {
@@ -33,7 +34,11 @@ impl RadioNodeList {
#[allow(crown::unrooted_must_root)]
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(
diff --git a/components/script/dom/readablestream.rs b/components/script/dom/readablestream.rs
index 76c81d2ed14..2c748391d5b 100644
--- a/components/script/dom/readablestream.rs
+++ b/components/script/dom/readablestream.rs
@@ -78,6 +78,7 @@ impl ReadableStream {
reflect_dom_object(
Box::new(ReadableStream::new_inherited(external_underlying_source)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/rtcdatachannel.rs b/components/script/dom/rtcdatachannel.rs
index dd8c65ed831..55111759a78 100644
--- a/components/script/dom/rtcdatachannel.rs
+++ b/components/script/dom/rtcdatachannel.rs
@@ -105,6 +105,7 @@ impl RTCDataChannel {
servo_media_id,
)),
global,
+ CanGc::note(),
);
peer_connection.register_data_channel(rtc_data_channel.servo_media_id, &rtc_data_channel);
diff --git a/components/script/dom/rtcrtpsender.rs b/components/script/dom/rtcrtpsender.rs
index 409254269c0..398ae160347 100644
--- a/components/script/dom/rtcrtpsender.rs
+++ b/components/script/dom/rtcrtpsender.rs
@@ -29,7 +29,7 @@ impl RTCRtpSender {
}
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())
}
}
diff --git a/components/script/dom/rtcrtptransceiver.rs b/components/script/dom/rtcrtptransceiver.rs
index 742bfc62390..514f9fe18cc 100644
--- a/components/script/dom/rtcrtptransceiver.rs
+++ b/components/script/dom/rtcrtptransceiver.rs
@@ -13,6 +13,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::globalscope::GlobalScope;
use crate::dom::rtcrtpsender::RTCRtpSender;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct RTCRtpTransceiver {
@@ -35,7 +36,11 @@ impl RTCRtpTransceiver {
global: &GlobalScope,
direction: RTCRtpTransceiverDirection,
) -> 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(),
+ )
}
}
diff --git a/components/script/dom/screen.rs b/components/script/dom/screen.rs
index 2b29744f6a6..09335176aa4 100644
--- a/components/script/dom/screen.rs
+++ b/components/script/dom/screen.rs
@@ -14,6 +14,7 @@ use crate::dom::bindings::num::Finite;
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct Screen {
@@ -30,7 +31,11 @@ impl 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> {
diff --git a/components/script/dom/selection.rs b/components/script/dom/selection.rs
index 169f177318d..a6479404c5c 100644
--- a/components/script/dom/selection.rs
+++ b/components/script/dom/selection.rs
@@ -53,6 +53,7 @@ impl Selection {
reflect_dom_object(
Box::new(Selection::new_inherited(document)),
&*document.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/serviceworker.rs b/components/script/dom/serviceworker.rs
index 264318cf39f..4c5e21adf08 100644
--- a/components/script/dom/serviceworker.rs
+++ b/components/script/dom/serviceworker.rs
@@ -71,6 +71,7 @@ impl ServiceWorker {
worker_id,
)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/serviceworkercontainer.rs b/components/script/dom/serviceworkercontainer.rs
index 7ea6ea12e1a..5158831bdae 100644
--- a/components/script/dom/serviceworkercontainer.rs
+++ b/components/script/dom/serviceworkercontainer.rs
@@ -50,7 +50,7 @@ impl ServiceWorkerContainer {
pub fn new(global: &GlobalScope) -> DomRoot<ServiceWorkerContainer> {
let client = Client::new(global.as_window());
let container = ServiceWorkerContainer::new_inherited(&client);
- reflect_dom_object(Box::new(container), global)
+ reflect_dom_object(Box::new(container), global, CanGc::note())
}
}
diff --git a/components/script/dom/serviceworkerregistration.rs b/components/script/dom/serviceworkerregistration.rs
index 59a4cb698bd..0f48c7339a9 100644
--- a/components/script/dom/serviceworkerregistration.rs
+++ b/components/script/dom/serviceworkerregistration.rs
@@ -24,6 +24,7 @@ use crate::dom::globalscope::GlobalScope;
use crate::dom::navigationpreloadmanager::NavigationPreloadManager;
use crate::dom::serviceworker::ServiceWorker;
use crate::dom::workerglobalscope::prepare_workerscope_init;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct ServiceWorkerRegistration {
@@ -74,6 +75,7 @@ impl ServiceWorkerRegistration {
registration_id,
)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/servoparser/mod.rs b/components/script/dom/servoparser/mod.rs
index 2a2b19ad061..72eabc6ed58 100644
--- a/components/script/dom/servoparser/mod.rs
+++ b/components/script/dom/servoparser/mod.rs
@@ -466,6 +466,7 @@ impl ServoParser {
reflect_dom_object(
Box::new(ServoParser::new_inherited(document, tokenizer, kind)),
document.window(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/shadowroot.rs b/components/script/dom/shadowroot.rs
index 77c4ba99b2a..ea7b778f1ff 100644
--- a/components/script/dom/shadowroot.rs
+++ b/components/script/dom/shadowroot.rs
@@ -98,6 +98,7 @@ impl ShadowRoot {
reflect_dom_object(
Box::new(ShadowRoot::new_inherited(host, document, mode, clonable)),
document.window(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/storage.rs b/components/script/dom/storage.rs
index 4e230f554f7..d7dbe6f8529 100644
--- a/components/script/dom/storage.rs
+++ b/components/script/dom/storage.rs
@@ -39,7 +39,11 @@ impl Storage {
}
pub fn new(global: &Window, storage_type: StorageType) -> DomRoot<Storage> {
- reflect_dom_object(Box::new(Storage::new_inherited(storage_type)), global)
+ reflect_dom_object(
+ Box::new(Storage::new_inherited(storage_type)),
+ global,
+ CanGc::note(),
+ )
}
fn get_url(&self) -> ServoUrl {
diff --git a/components/script/dom/stylepropertymapreadonly.rs b/components/script/dom/stylepropertymapreadonly.rs
index 96eb481e90d..76e25c362e3 100644
--- a/components/script/dom/stylepropertymapreadonly.rs
+++ b/components/script/dom/stylepropertymapreadonly.rs
@@ -16,6 +16,7 @@ use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::DOMString;
use crate::dom::cssstylevalue::CSSStyleValue;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct StylePropertyMapReadOnly {
@@ -56,6 +57,7 @@ impl StylePropertyMapReadOnly {
reflect_dom_object(
Box::new(StylePropertyMapReadOnly::new_inherited(iter)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/stylesheetlist.rs b/components/script/dom/stylesheetlist.rs
index 87d5838bfee..edfbbed5367 100644
--- a/components/script/dom/stylesheetlist.rs
+++ b/components/script/dom/stylesheetlist.rs
@@ -15,6 +15,7 @@ use crate::dom::element::Element;
use crate::dom::shadowroot::ShadowRoot;
use crate::dom::stylesheet::StyleSheet;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[crown::unrooted_must_root_lint::must_root]
#[derive(JSTraceable, MallocSizeOf)]
@@ -83,7 +84,11 @@ impl StyleSheetList {
#[allow(crown::unrooted_must_root)]
pub fn new(window: &Window, doc_or_sr: StyleSheetListOwner) -> DomRoot<StyleSheetList> {
- reflect_dom_object(Box::new(StyleSheetList::new_inherited(doc_or_sr)), window)
+ reflect_dom_object(
+ Box::new(StyleSheetList::new_inherited(doc_or_sr)),
+ window,
+ CanGc::note(),
+ )
}
}
diff --git a/components/script/dom/subtlecrypto.rs b/components/script/dom/subtlecrypto.rs
index fe37f7d724c..df679b72621 100644
--- a/components/script/dom/subtlecrypto.rs
+++ b/components/script/dom/subtlecrypto.rs
@@ -135,7 +135,11 @@ impl SubtleCrypto {
}
pub(crate) fn new(global: &GlobalScope) -> DomRoot<SubtleCrypto> {
- reflect_dom_object(Box::new(SubtleCrypto::new_inherited()), global)
+ reflect_dom_object(
+ Box::new(SubtleCrypto::new_inherited()),
+ global,
+ CanGc::note(),
+ )
}
fn task_source_with_canceller(&self) -> (DOMManipulationTaskSource, TaskCanceller) {
diff --git a/components/script/dom/testrunner.rs b/components/script/dom/testrunner.rs
index 701884f2844..1d0dd0177ce 100644
--- a/components/script/dom/testrunner.rs
+++ b/components/script/dom/testrunner.rs
@@ -14,6 +14,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
// https://webbluetoothcg.github.io/web-bluetooth/tests#test-runner
#[dom_struct]
@@ -29,7 +30,7 @@ impl TestRunner {
}
pub fn new(global: &GlobalScope) -> DomRoot<TestRunner> {
- reflect_dom_object(Box::new(TestRunner::new_inherited()), global)
+ reflect_dom_object(Box::new(TestRunner::new_inherited()), global, CanGc::note())
}
fn get_bluetooth_thread(&self) -> IpcSender<BluetoothRequest> {
diff --git a/components/script/dom/textmetrics.rs b/components/script/dom/textmetrics.rs
index 6f7af09809e..cd4245f5f70 100644
--- a/components/script/dom/textmetrics.rs
+++ b/components/script/dom/textmetrics.rs
@@ -9,6 +9,7 @@ use crate::dom::bindings::num::Finite;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
#[allow(non_snake_case)]
@@ -94,6 +95,7 @@ impl TextMetrics {
ideographicBaseline,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/texttrack.rs b/components/script/dom/texttrack.rs
index a5d4686b796..61b485f1bb0 100644
--- a/components/script/dom/texttrack.rs
+++ b/components/script/dom/texttrack.rs
@@ -19,6 +19,7 @@ use crate::dom::texttrackcue::TextTrackCue;
use crate::dom::texttrackcuelist::TextTrackCueList;
use crate::dom::texttracklist::TextTrackList;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct TextTrack {
@@ -67,6 +68,7 @@ impl TextTrack {
id, kind, label, language, mode, track_list,
)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/texttrackcue.rs b/components/script/dom/texttrackcue.rs
index f3c1d885a1a..7d3711420f2 100644
--- a/components/script/dom/texttrackcue.rs
+++ b/components/script/dom/texttrackcue.rs
@@ -15,6 +15,7 @@ use crate::dom::bindings::str::DOMString;
use crate::dom::eventtarget::EventTarget;
use crate::dom::texttrack::TextTrack;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct TextTrackCue {
@@ -54,6 +55,7 @@ impl TextTrackCue {
reflect_dom_object(
Box::new(TextTrackCue::new_inherited(id, start_time, end_time, track)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/texttrackcuelist.rs b/components/script/dom/texttrackcuelist.rs
index 69c2f836a59..ba0f6295a1e 100644
--- a/components/script/dom/texttrackcuelist.rs
+++ b/components/script/dom/texttrackcuelist.rs
@@ -11,6 +11,7 @@ use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::DOMString;
use crate::dom::texttrackcue::TextTrackCue;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct TextTrackCueList {
@@ -27,7 +28,11 @@ impl TextTrackCueList {
}
pub fn new(window: &Window, cues: &[&TextTrackCue]) -> DomRoot<TextTrackCueList> {
- reflect_dom_object(Box::new(TextTrackCueList::new_inherited(cues)), window)
+ reflect_dom_object(
+ Box::new(TextTrackCueList::new_inherited(cues)),
+ window,
+ CanGc::note(),
+ )
}
pub fn item(&self, idx: usize) -> Option<DomRoot<TextTrackCue>> {
diff --git a/components/script/dom/texttracklist.rs b/components/script/dom/texttracklist.rs
index e5a3ad52c2c..d938b8e1dfd 100644
--- a/components/script/dom/texttracklist.rs
+++ b/components/script/dom/texttracklist.rs
@@ -35,7 +35,11 @@ impl TextTrackList {
}
pub fn new(window: &Window, tracks: &[&TextTrack]) -> DomRoot<TextTrackList> {
- reflect_dom_object(Box::new(TextTrackList::new_inherited(tracks)), window)
+ reflect_dom_object(
+ Box::new(TextTrackList::new_inherited(tracks)),
+ window,
+ CanGc::note(),
+ )
}
pub fn item(&self, idx: usize) -> Option<DomRoot<TextTrack>> {
diff --git a/components/script/dom/timeranges.rs b/components/script/dom/timeranges.rs
index c5fe744489d..60a7ec679cd 100644
--- a/components/script/dom/timeranges.rs
+++ b/components/script/dom/timeranges.rs
@@ -12,6 +12,7 @@ use crate::dom::bindings::num::Finite;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[derive(Clone, JSTraceable, MallocSizeOf)]
struct TimeRange {
@@ -139,7 +140,11 @@ impl TimeRanges {
}
pub fn new(window: &Window, ranges: TimeRangesContainer) -> DomRoot<TimeRanges> {
- reflect_dom_object(Box::new(TimeRanges::new_inherited(ranges)), window)
+ reflect_dom_object(
+ Box::new(TimeRanges::new_inherited(ranges)),
+ window,
+ CanGc::note(),
+ )
}
}
diff --git a/components/script/dom/touch.rs b/components/script/dom/touch.rs
index 982f74a58bc..9ac50b8058d 100644
--- a/components/script/dom/touch.rs
+++ b/components/script/dom/touch.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{DomRoot, MutDom};
use crate::dom::eventtarget::EventTarget;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct Touch {
@@ -66,6 +67,7 @@ impl Touch {
identifier, target, screen_x, screen_y, client_x, client_y, page_x, page_y,
)),
window,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/touchevent.rs b/components/script/dom/touchevent.rs
index 7ef9e20b899..fb402d6d806 100644
--- a/components/script/dom/touchevent.rs
+++ b/components/script/dom/touchevent.rs
@@ -16,6 +16,7 @@ use crate::dom::event::{EventBubbles, EventCancelable};
use crate::dom::touchlist::TouchList;
use crate::dom::uievent::UIEvent;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct TouchEvent {
@@ -60,6 +61,7 @@ impl TouchEvent {
target_touches,
)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/touchlist.rs b/components/script/dom/touchlist.rs
index e139f23b2af..9991b14aa71 100644
--- a/components/script/dom/touchlist.rs
+++ b/components/script/dom/touchlist.rs
@@ -9,6 +9,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::touch::Touch;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct TouchList {
@@ -25,7 +26,11 @@ impl TouchList {
}
pub fn new(window: &Window, touches: &[&Touch]) -> DomRoot<TouchList> {
- reflect_dom_object(Box::new(TouchList::new_inherited(touches)), window)
+ reflect_dom_object(
+ Box::new(TouchList::new_inherited(touches)),
+ window,
+ CanGc::note(),
+ )
}
}
diff --git a/components/script/dom/treewalker.rs b/components/script/dom/treewalker.rs
index 22631b65d38..036c8987633 100644
--- a/components/script/dom/treewalker.rs
+++ b/components/script/dom/treewalker.rs
@@ -16,6 +16,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot, MutDom};
use crate::dom::document::Document;
use crate::dom::node::Node;
+use crate::script_runtime::CanGc;
// https://dom.spec.whatwg.org/#interface-treewalker
#[dom_struct]
@@ -50,6 +51,7 @@ impl TreeWalker {
reflect_dom_object(
Box::new(TreeWalker::new_inherited(root_node, what_to_show, filter)),
document.window(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/validitystate.rs b/components/script/dom/validitystate.rs
index 2e50da1a254..a6593fab941 100755
--- a/components/script/dom/validitystate.rs
+++ b/components/script/dom/validitystate.rs
@@ -22,6 +22,7 @@ use crate::dom::htmlfieldsetelement::HTMLFieldSetElement;
use crate::dom::htmlformelement::FormControlElementHelpers;
use crate::dom::node::Node;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
// https://html.spec.whatwg.org/multipage/#validity-states
#[derive(Clone, Copy, JSTraceable, MallocSizeOf)]
@@ -91,7 +92,11 @@ impl ValidityState {
}
pub fn new(window: &Window, element: &Element) -> DomRoot<ValidityState> {
- reflect_dom_object(Box::new(ValidityState::new_inherited(element)), window)
+ reflect_dom_object(
+ Box::new(ValidityState::new_inherited(element)),
+ window,
+ CanGc::note(),
+ )
}
// https://html.spec.whatwg.org/multipage/#custom-validity-error-message
diff --git a/components/script/dom/videotrack.rs b/components/script/dom/videotrack.rs
index d417a246541..6d035eec04c 100644
--- a/components/script/dom/videotrack.rs
+++ b/components/script/dom/videotrack.rs
@@ -13,6 +13,7 @@ use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::DOMString;
use crate::dom::videotracklist::VideoTrackList;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct VideoTrack {
@@ -57,6 +58,7 @@ impl VideoTrack {
id, kind, label, language, track_list,
)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/videotracklist.rs b/components/script/dom/videotracklist.rs
index 465fc7a705f..650c5ffe526 100644
--- a/components/script/dom/videotracklist.rs
+++ b/components/script/dom/videotracklist.rs
@@ -45,6 +45,7 @@ impl VideoTrackList {
reflect_dom_object(
Box::new(VideoTrackList::new_inherited(tracks, media_element)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/visibilitystateentry.rs b/components/script/dom/visibilitystateentry.rs
index 8d150a369da..b650bdc54e6 100644
--- a/components/script/dom/visibilitystateentry.rs
+++ b/components/script/dom/visibilitystateentry.rs
@@ -17,6 +17,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::performanceentry::PerformanceEntry;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct VisibilityStateEntry {
@@ -51,6 +52,7 @@ impl VisibilityStateEntry {
reflect_dom_object(
Box::new(VisibilityStateEntry::new_inherited(state, timestamp)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgl2renderingcontext.rs b/components/script/dom/webgl2renderingcontext.rs
index acafcf04bc6..a38a974a166 100644
--- a/components/script/dom/webgl2renderingcontext.rs
+++ b/components/script/dom/webgl2renderingcontext.rs
@@ -192,7 +192,7 @@ impl WebGL2RenderingContext {
can_gc: CanGc,
) -> Option<DomRoot<WebGL2RenderingContext>> {
WebGL2RenderingContext::new_inherited(window, canvas, size, attrs, can_gc)
- .map(|ctx| reflect_dom_object(Box::new(ctx), window))
+ .map(|ctx| reflect_dom_object(Box::new(ctx), window, can_gc))
}
#[allow(unsafe_code)]
diff --git a/components/script/dom/webgl_extensions/ext/angleinstancedarrays.rs b/components/script/dom/webgl_extensions/ext/angleinstancedarrays.rs
index becfac57266..6bd8b445241 100644
--- a/components/script/dom/webgl_extensions/ext/angleinstancedarrays.rs
+++ b/components/script/dom/webgl_extensions/ext/angleinstancedarrays.rs
@@ -12,6 +12,7 @@ use crate::dom::bindings::codegen::Bindings::ANGLEInstancedArraysBinding::{
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct ANGLEInstancedArrays {
@@ -35,6 +36,7 @@ impl WebGLExtension for ANGLEInstancedArrays {
reflect_dom_object(
Box::new(ANGLEInstancedArrays::new_inherited(ctx)),
&*ctx.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webgl_extensions/ext/extblendminmax.rs b/components/script/dom/webgl_extensions/ext/extblendminmax.rs
index 97c4a642f9b..b18d88cacb7 100644
--- a/components/script/dom/webgl_extensions/ext/extblendminmax.rs
+++ b/components/script/dom/webgl_extensions/ext/extblendminmax.rs
@@ -9,6 +9,7 @@ use super::{WebGLExtension, WebGLExtensionSpec, WebGLExtensions};
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct EXTBlendMinmax {
@@ -27,7 +28,11 @@ impl WebGLExtension for EXTBlendMinmax {
type Extension = Self;
fn new(ctx: &WebGLRenderingContext) -> DomRoot<Self> {
- reflect_dom_object(Box::new(Self::new_inherited()), &*ctx.global())
+ reflect_dom_object(
+ Box::new(Self::new_inherited()),
+ &*ctx.global(),
+ CanGc::note(),
+ )
}
fn spec() -> WebGLExtensionSpec {
diff --git a/components/script/dom/webgl_extensions/ext/extcolorbufferhalffloat.rs b/components/script/dom/webgl_extensions/ext/extcolorbufferhalffloat.rs
index 48d69b78ab4..f2ec665ea4d 100644
--- a/components/script/dom/webgl_extensions/ext/extcolorbufferhalffloat.rs
+++ b/components/script/dom/webgl_extensions/ext/extcolorbufferhalffloat.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webgl_extensions::ext::oestexturehalffloat::OESTextureHalfFloat;
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct EXTColorBufferHalfFloat {
@@ -30,6 +31,7 @@ impl WebGLExtension for EXTColorBufferHalfFloat {
reflect_dom_object(
Box::new(EXTColorBufferHalfFloat::new_inherited()),
&*ctx.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webgl_extensions/ext/extfragdepth.rs b/components/script/dom/webgl_extensions/ext/extfragdepth.rs
index 056286137a4..ae4d9fac5d9 100644
--- a/components/script/dom/webgl_extensions/ext/extfragdepth.rs
+++ b/components/script/dom/webgl_extensions/ext/extfragdepth.rs
@@ -9,6 +9,7 @@ use super::{WebGLExtension, WebGLExtensionSpec, WebGLExtensions};
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct EXTFragDepth {
@@ -27,7 +28,11 @@ impl WebGLExtension for EXTFragDepth {
type Extension = Self;
fn new(ctx: &WebGLRenderingContext) -> DomRoot<Self> {
- reflect_dom_object(Box::new(Self::new_inherited()), &*ctx.global())
+ reflect_dom_object(
+ Box::new(Self::new_inherited()),
+ &*ctx.global(),
+ CanGc::note(),
+ )
}
fn spec() -> WebGLExtensionSpec {
diff --git a/components/script/dom/webgl_extensions/ext/extshadertexturelod.rs b/components/script/dom/webgl_extensions/ext/extshadertexturelod.rs
index 65c39edb6a2..a7bbe262c7b 100644
--- a/components/script/dom/webgl_extensions/ext/extshadertexturelod.rs
+++ b/components/script/dom/webgl_extensions/ext/extshadertexturelod.rs
@@ -9,6 +9,7 @@ use super::{WebGLExtension, WebGLExtensionSpec, WebGLExtensions};
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct EXTShaderTextureLod {
@@ -27,7 +28,11 @@ impl WebGLExtension for EXTShaderTextureLod {
type Extension = Self;
fn new(ctx: &WebGLRenderingContext) -> DomRoot<Self> {
- reflect_dom_object(Box::new(Self::new_inherited()), &*ctx.global())
+ reflect_dom_object(
+ Box::new(Self::new_inherited()),
+ &*ctx.global(),
+ CanGc::note(),
+ )
}
fn spec() -> WebGLExtensionSpec {
diff --git a/components/script/dom/webgl_extensions/ext/exttexturefilteranisotropic.rs b/components/script/dom/webgl_extensions/ext/exttexturefilteranisotropic.rs
index c5de4cea880..58e2b05b50b 100644
--- a/components/script/dom/webgl_extensions/ext/exttexturefilteranisotropic.rs
+++ b/components/script/dom/webgl_extensions/ext/exttexturefilteranisotropic.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::codegen::Bindings::EXTTextureFilterAnisotropicBinding:
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct EXTTextureFilterAnisotropic {
@@ -28,7 +29,11 @@ impl WebGLExtension for EXTTextureFilterAnisotropic {
type Extension = EXTTextureFilterAnisotropic;
fn new(ctx: &WebGLRenderingContext) -> DomRoot<Self> {
- reflect_dom_object(Box::new(Self::new_inherited()), &*ctx.global())
+ reflect_dom_object(
+ Box::new(Self::new_inherited()),
+ &*ctx.global(),
+ CanGc::note(),
+ )
}
fn spec() -> WebGLExtensionSpec {
diff --git a/components/script/dom/webgl_extensions/ext/oeselementindexuint.rs b/components/script/dom/webgl_extensions/ext/oeselementindexuint.rs
index 77ba300caef..2425c42ce4f 100644
--- a/components/script/dom/webgl_extensions/ext/oeselementindexuint.rs
+++ b/components/script/dom/webgl_extensions/ext/oeselementindexuint.rs
@@ -9,6 +9,7 @@ use super::{WebGLExtension, WebGLExtensionSpec, WebGLExtensions};
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct OESElementIndexUint {
@@ -30,6 +31,7 @@ impl WebGLExtension for OESElementIndexUint {
reflect_dom_object(
Box::new(OESElementIndexUint::new_inherited()),
&*ctx.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webgl_extensions/ext/oesstandardderivatives.rs b/components/script/dom/webgl_extensions/ext/oesstandardderivatives.rs
index 9a552216cc4..5afc46b3597 100644
--- a/components/script/dom/webgl_extensions/ext/oesstandardderivatives.rs
+++ b/components/script/dom/webgl_extensions/ext/oesstandardderivatives.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::codegen::Bindings::OESStandardDerivativesBinding::OESS
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct OESStandardDerivatives {
@@ -30,6 +31,7 @@ impl WebGLExtension for OESStandardDerivatives {
reflect_dom_object(
Box::new(OESStandardDerivatives::new_inherited()),
&*ctx.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webgl_extensions/ext/oestexturefloat.rs b/components/script/dom/webgl_extensions/ext/oestexturefloat.rs
index b7d87594a42..a7e738828ac 100644
--- a/components/script/dom/webgl_extensions/ext/oestexturefloat.rs
+++ b/components/script/dom/webgl_extensions/ext/oestexturefloat.rs
@@ -9,6 +9,7 @@ use super::{constants as webgl, WebGLExtension, WebGLExtensionSpec, WebGLExtensi
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct OESTextureFloat {
@@ -26,7 +27,11 @@ impl OESTextureFloat {
impl WebGLExtension for OESTextureFloat {
type Extension = OESTextureFloat;
fn new(ctx: &WebGLRenderingContext) -> DomRoot<OESTextureFloat> {
- reflect_dom_object(Box::new(OESTextureFloat::new_inherited()), &*ctx.global())
+ reflect_dom_object(
+ Box::new(OESTextureFloat::new_inherited()),
+ &*ctx.global(),
+ CanGc::note(),
+ )
}
fn spec() -> WebGLExtensionSpec {
diff --git a/components/script/dom/webgl_extensions/ext/oestexturefloatlinear.rs b/components/script/dom/webgl_extensions/ext/oestexturefloatlinear.rs
index eee682a4327..4bd2afd171f 100644
--- a/components/script/dom/webgl_extensions/ext/oestexturefloatlinear.rs
+++ b/components/script/dom/webgl_extensions/ext/oestexturefloatlinear.rs
@@ -8,6 +8,7 @@ use super::{constants as webgl, WebGLExtension, WebGLExtensionSpec, WebGLExtensi
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct OESTextureFloatLinear {
@@ -28,6 +29,7 @@ impl WebGLExtension for OESTextureFloatLinear {
reflect_dom_object(
Box::new(OESTextureFloatLinear::new_inherited()),
&*ctx.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webgl_extensions/ext/oestexturehalffloat.rs b/components/script/dom/webgl_extensions/ext/oestexturehalffloat.rs
index 49724a1aa21..92bfffeeea5 100644
--- a/components/script/dom/webgl_extensions/ext/oestexturehalffloat.rs
+++ b/components/script/dom/webgl_extensions/ext/oestexturehalffloat.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::codegen::Bindings::OESTextureHalfFloatBinding::OESText
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct OESTextureHalfFloat {
@@ -30,6 +31,7 @@ impl WebGLExtension for OESTextureHalfFloat {
reflect_dom_object(
Box::new(OESTextureHalfFloat::new_inherited()),
&*ctx.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webgl_extensions/ext/oestexturehalffloatlinear.rs b/components/script/dom/webgl_extensions/ext/oestexturehalffloatlinear.rs
index c25bf855b6e..ee0e5c10cb4 100644
--- a/components/script/dom/webgl_extensions/ext/oestexturehalffloatlinear.rs
+++ b/components/script/dom/webgl_extensions/ext/oestexturehalffloatlinear.rs
@@ -9,6 +9,7 @@ use crate::dom::bindings::codegen::Bindings::OESTextureHalfFloatBinding::OESText
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct OESTextureHalfFloatLinear {
@@ -29,6 +30,7 @@ impl WebGLExtension for OESTextureHalfFloatLinear {
reflect_dom_object(
Box::new(OESTextureHalfFloatLinear::new_inherited()),
&*ctx.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webgl_extensions/ext/oesvertexarrayobject.rs b/components/script/dom/webgl_extensions/ext/oesvertexarrayobject.rs
index 7edabae4b73..a2ed17aea16 100644
--- a/components/script/dom/webgl_extensions/ext/oesvertexarrayobject.rs
+++ b/components/script/dom/webgl_extensions/ext/oesvertexarrayobject.rs
@@ -13,6 +13,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
use crate::dom::webglvertexarrayobjectoes::WebGLVertexArrayObjectOES;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct OESVertexArrayObject {
@@ -57,6 +58,7 @@ impl WebGLExtension for OESVertexArrayObject {
reflect_dom_object(
Box::new(OESVertexArrayObject::new_inherited(ctx)),
&*ctx.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webgl_extensions/ext/webglcolorbufferfloat.rs b/components/script/dom/webgl_extensions/ext/webglcolorbufferfloat.rs
index 30466b49cdc..71fbaf3ae05 100644
--- a/components/script/dom/webgl_extensions/ext/webglcolorbufferfloat.rs
+++ b/components/script/dom/webgl_extensions/ext/webglcolorbufferfloat.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webgl_extensions::ext::oestexturefloat::OESTextureFloat;
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct WEBGLColorBufferFloat {
@@ -30,6 +31,7 @@ impl WebGLExtension for WEBGLColorBufferFloat {
reflect_dom_object(
Box::new(WEBGLColorBufferFloat::new_inherited()),
&*ctx.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webgl_extensions/ext/webglcompressedtextureetc1.rs b/components/script/dom/webgl_extensions/ext/webglcompressedtextureetc1.rs
index c04dceebca0..48ce0c36e10 100644
--- a/components/script/dom/webgl_extensions/ext/webglcompressedtextureetc1.rs
+++ b/components/script/dom/webgl_extensions/ext/webglcompressedtextureetc1.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
use crate::dom::webgltexture::{TexCompression, TexCompressionValidation};
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct WEBGLCompressedTextureETC1 {
@@ -30,6 +31,7 @@ impl WebGLExtension for WEBGLCompressedTextureETC1 {
reflect_dom_object(
Box::new(WEBGLCompressedTextureETC1::new_inherited()),
&*ctx.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webgl_extensions/ext/webglcompressedtextures3tc.rs b/components/script/dom/webgl_extensions/ext/webglcompressedtextures3tc.rs
index 22d9899db43..63c39756d78 100644
--- a/components/script/dom/webgl_extensions/ext/webglcompressedtextures3tc.rs
+++ b/components/script/dom/webgl_extensions/ext/webglcompressedtextures3tc.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglrenderingcontext::WebGLRenderingContext;
use crate::dom::webgltexture::{TexCompression, TexCompressionValidation};
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct WEBGLCompressedTextureS3TC {
@@ -30,6 +31,7 @@ impl WebGLExtension for WEBGLCompressedTextureS3TC {
reflect_dom_object(
Box::new(WEBGLCompressedTextureS3TC::new_inherited()),
&*ctx.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webglactiveinfo.rs b/components/script/dom/webglactiveinfo.rs
index 0a8a5b87f68..744f7fe6195 100644
--- a/components/script/dom/webglactiveinfo.rs
+++ b/components/script/dom/webglactiveinfo.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct WebGLActiveInfo {
@@ -34,6 +35,7 @@ impl WebGLActiveInfo {
reflect_dom_object(
Box::new(WebGLActiveInfo::new_inherited(size, ty, name)),
window,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webglbuffer.rs b/components/script/dom/webglbuffer.rs
index 7e6b9533566..2b057001eef 100644
--- a/components/script/dom/webglbuffer.rs
+++ b/components/script/dom/webglbuffer.rs
@@ -16,6 +16,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, DomObject};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglobject::WebGLObject;
use crate::dom::webglrenderingcontext::{Operation, WebGLRenderingContext};
+use crate::script_runtime::CanGc;
fn target_is_copy_buffer(target: u32) -> bool {
target == WebGL2RenderingContextConstants::COPY_READ_BUFFER ||
@@ -62,6 +63,7 @@ impl WebGLBuffer {
reflect_dom_object(
Box::new(WebGLBuffer::new_inherited(context, id)),
&*context.global(),
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webglframebuffer.rs b/components/script/dom/webglframebuffer.rs
index 5fb4f2efa7a..99f051da9ea 100644
--- a/components/script/dom/webglframebuffer.rs
+++ b/components/script/dom/webglframebuffer.rs
@@ -27,6 +27,7 @@ use crate::dom::webglrenderingcontext::{Operation, WebGLRenderingContext};
use crate::dom::webgltexture::WebGLTexture;
#[cfg(feature = "webxr")]
use crate::dom::xrsession::XRSession;
+use crate::script_runtime::CanGc;
pub enum CompleteForRendering {
Complete,
@@ -165,6 +166,7 @@ impl WebGLFramebuffer {
reflect_dom_object(
Box::new(WebGLFramebuffer::new_inherited(context, id)),
&*context.global(),
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webglprogram.rs b/components/script/dom/webglprogram.rs
index c30d88e4731..61673289566 100644
--- a/components/script/dom/webglprogram.rs
+++ b/components/script/dom/webglprogram.rs
@@ -24,6 +24,7 @@ use crate::dom::webglobject::WebGLObject;
use crate::dom::webglrenderingcontext::{Operation, WebGLRenderingContext};
use crate::dom::webglshader::WebGLShader;
use crate::dom::webgluniformlocation::WebGLUniformLocation;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct WebGLProgram {
@@ -80,6 +81,7 @@ impl WebGLProgram {
reflect_dom_object(
Box::new(WebGLProgram::new_inherited(context, id)),
&*context.global(),
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webglquery.rs b/components/script/dom/webglquery.rs
index 607813060e9..e11e7766e93 100644
--- a/components/script/dom/webglquery.rs
+++ b/components/script/dom/webglquery.rs
@@ -15,6 +15,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, DomObject};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglobject::WebGLObject;
use crate::dom::webglrenderingcontext::{Operation, WebGLRenderingContext};
+use crate::script_runtime::CanGc;
use crate::task_source::TaskSource;
#[dom_struct]
@@ -48,6 +49,7 @@ impl WebGLQuery {
reflect_dom_object(
Box::new(Self::new_inherited(context, id)),
&*context.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webglrenderbuffer.rs b/components/script/dom/webglrenderbuffer.rs
index 42f6d721956..83a2d4af88e 100644
--- a/components/script/dom/webglrenderbuffer.rs
+++ b/components/script/dom/webglrenderbuffer.rs
@@ -20,6 +20,7 @@ use crate::dom::bindings::root::{DomRoot, MutNullableDom};
use crate::dom::webglframebuffer::WebGLFramebuffer;
use crate::dom::webglobject::WebGLObject;
use crate::dom::webglrenderingcontext::{Operation, WebGLRenderingContext};
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct WebGLRenderbuffer {
@@ -61,6 +62,7 @@ impl WebGLRenderbuffer {
reflect_dom_object(
Box::new(WebGLRenderbuffer::new_inherited(context, id)),
&*context.global(),
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index 7e8a3a01b1e..0ee426c619c 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -291,7 +291,7 @@ impl WebGLRenderingContext {
can_gc: CanGc,
) -> Option<DomRoot<WebGLRenderingContext>> {
match WebGLRenderingContext::new_inherited(window, canvas, webgl_version, size, attrs) {
- Ok(ctx) => Some(reflect_dom_object(Box::new(ctx), window)),
+ Ok(ctx) => Some(reflect_dom_object(Box::new(ctx), window, can_gc)),
Err(msg) => {
error!("Couldn't create WebGLRenderingContext: {}", msg);
let event = WebGLContextEvent::new(
diff --git a/components/script/dom/webglsampler.rs b/components/script/dom/webglsampler.rs
index 808a37a14a0..65f636129cf 100644
--- a/components/script/dom/webglsampler.rs
+++ b/components/script/dom/webglsampler.rs
@@ -14,6 +14,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, DomObject};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglobject::WebGLObject;
use crate::dom::webglrenderingcontext::{Operation, WebGLRenderingContext};
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct WebGLSampler {
@@ -90,6 +91,7 @@ impl WebGLSampler {
reflect_dom_object(
Box::new(Self::new_inherited(context, id)),
&*context.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webglshader.rs b/components/script/dom/webglshader.rs
index daae7d3d18a..76e0ccc1b2d 100644
--- a/components/script/dom/webglshader.rs
+++ b/components/script/dom/webglshader.rs
@@ -25,6 +25,7 @@ use crate::dom::webgl_extensions::ext::oesstandardderivatives::OESStandardDeriva
use crate::dom::webgl_extensions::WebGLExtensions;
use crate::dom::webglobject::WebGLObject;
use crate::dom::webglrenderingcontext::{Operation, WebGLRenderingContext};
+use crate::script_runtime::CanGc;
#[derive(Clone, Copy, Debug, JSTraceable, MallocSizeOf, PartialEq)]
pub enum ShaderCompilationStatus {
@@ -80,6 +81,7 @@ impl WebGLShader {
reflect_dom_object(
Box::new(WebGLShader::new_inherited(context, id, shader_type)),
&*context.global(),
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webglshaderprecisionformat.rs b/components/script/dom/webglshaderprecisionformat.rs
index d3abe48a8b9..1429b291057 100644
--- a/components/script/dom/webglshaderprecisionformat.rs
+++ b/components/script/dom/webglshaderprecisionformat.rs
@@ -11,6 +11,7 @@ use crate::dom::bindings::codegen::Bindings::WebGLShaderPrecisionFormatBinding::
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct WebGLShaderPrecisionFormat {
@@ -41,6 +42,7 @@ impl WebGLShaderPrecisionFormat {
range_min, range_max, precision,
)),
window,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webglsync.rs b/components/script/dom/webglsync.rs
index dd94e8090e8..42e1e51c852 100644
--- a/components/script/dom/webglsync.rs
+++ b/components/script/dom/webglsync.rs
@@ -14,6 +14,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, DomObject};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglobject::WebGLObject;
use crate::dom::webglrenderingcontext::{Operation, WebGLRenderingContext};
+use crate::script_runtime::CanGc;
use crate::task_source::TaskSource;
#[dom_struct]
@@ -45,6 +46,7 @@ impl WebGLSync {
reflect_dom_object(
Box::new(WebGLSync::new_inherited(context, sync_id)),
&*context.global(),
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgltexture.rs b/components/script/dom/webgltexture.rs
index c3653bec6ab..7e9c4c2e059 100644
--- a/components/script/dom/webgltexture.rs
+++ b/components/script/dom/webgltexture.rs
@@ -27,6 +27,7 @@ use crate::dom::webglobject::WebGLObject;
use crate::dom::webglrenderingcontext::{Operation, WebGLRenderingContext};
#[cfg(feature = "webxr")]
use crate::dom::xrsession::XRSession;
+use crate::script_runtime::CanGc;
pub enum TexParameterValue {
Float(f32),
@@ -116,6 +117,7 @@ impl WebGLTexture {
None,
)),
&*context.global(),
+ CanGc::note(),
)
}
@@ -128,6 +130,7 @@ impl WebGLTexture {
reflect_dom_object(
Box::new(WebGLTexture::new_inherited(context, id, Some(session))),
&*context.global(),
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgltransformfeedback.rs b/components/script/dom/webgltransformfeedback.rs
index 37c1f5117af..ecf7ca786f4 100644
--- a/components/script/dom/webgltransformfeedback.rs
+++ b/components/script/dom/webgltransformfeedback.rs
@@ -12,6 +12,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, DomObject};
use crate::dom::bindings::root::DomRoot;
use crate::dom::webglobject::WebGLObject;
use crate::dom::webglrenderingcontext::{Operation, WebGLRenderingContext};
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct WebGLTransformFeedback {
@@ -43,6 +44,7 @@ impl WebGLTransformFeedback {
reflect_dom_object(
Box::new(WebGLTransformFeedback::new_inherited(context, id)),
&*context.global(),
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgluniformlocation.rs b/components/script/dom/webgluniformlocation.rs
index 509a42b1b6d..5155225d917 100644
--- a/components/script/dom/webgluniformlocation.rs
+++ b/components/script/dom/webgluniformlocation.rs
@@ -9,6 +9,7 @@ use dom_struct::dom_struct;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct WebGLUniformLocation {
@@ -62,6 +63,7 @@ impl WebGLUniformLocation {
type_,
)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webglvertexarrayobject.rs b/components/script/dom/webglvertexarrayobject.rs
index 867513c5459..9b896132d28 100644
--- a/components/script/dom/webglvertexarrayobject.rs
+++ b/components/script/dom/webglvertexarrayobject.rs
@@ -12,6 +12,7 @@ use crate::dom::vertexarrayobject::{VertexArrayObject, VertexAttribData};
use crate::dom::webglbuffer::WebGLBuffer;
use crate::dom::webglobject::WebGLObject;
use crate::dom::webglrenderingcontext::{Operation, WebGLRenderingContext};
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct WebGLVertexArrayObject {
@@ -31,6 +32,7 @@ impl WebGLVertexArrayObject {
reflect_dom_object(
Box::new(WebGLVertexArrayObject::new_inherited(context, id)),
&*context.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webglvertexarrayobjectoes.rs b/components/script/dom/webglvertexarrayobjectoes.rs
index f0e551e753b..d8e1555b997 100644
--- a/components/script/dom/webglvertexarrayobjectoes.rs
+++ b/components/script/dom/webglvertexarrayobjectoes.rs
@@ -12,6 +12,7 @@ use crate::dom::vertexarrayobject::{VertexArrayObject, VertexAttribData};
use crate::dom::webglbuffer::WebGLBuffer;
use crate::dom::webglobject::WebGLObject;
use crate::dom::webglrenderingcontext::{Operation, WebGLRenderingContext};
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct WebGLVertexArrayObjectOES {
@@ -31,6 +32,7 @@ impl WebGLVertexArrayObjectOES {
reflect_dom_object(
Box::new(WebGLVertexArrayObjectOES::new_inherited(context, id)),
&*context.global(),
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webgpu/gpu.rs b/components/script/dom/webgpu/gpu.rs
index 6cdd83878b5..5ee5d047113 100644
--- a/components/script/dom/webgpu/gpu.rs
+++ b/components/script/dom/webgpu/gpu.rs
@@ -41,7 +41,7 @@ impl GPU {
}
pub fn new(global: &GlobalScope) -> DomRoot<GPU> {
- reflect_dom_object(Box::new(GPU::new_inherited()), global)
+ reflect_dom_object(Box::new(GPU::new_inherited()), global, CanGc::note())
}
}
diff --git a/components/script/dom/webgpu/gpuadapter.rs b/components/script/dom/webgpu/gpuadapter.rs
index 1b6552e031b..409f701c635 100644
--- a/components/script/dom/webgpu/gpuadapter.rs
+++ b/components/script/dom/webgpu/gpuadapter.rs
@@ -86,6 +86,7 @@ impl GPUAdapter {
channel, name, extensions, &features, &limits, &info, adapter,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpuadapterinfo.rs b/components/script/dom/webgpu/gpuadapterinfo.rs
index 0cda8bed2d7..8ce3dae97c6 100644
--- a/components/script/dom/webgpu/gpuadapterinfo.rs
+++ b/components/script/dom/webgpu/gpuadapterinfo.rs
@@ -9,6 +9,7 @@ use crate::dom::bindings::codegen::Bindings::WebGPUBinding::GPUAdapterInfoMethod
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
use crate::test::DOMString;
#[dom_struct]
@@ -28,7 +29,7 @@ impl GPUAdapterInfo {
}
pub fn new(global: &GlobalScope, info: AdapterInfo) -> DomRoot<Self> {
- reflect_dom_object(Box::new(Self::new_inherited(info)), global)
+ reflect_dom_object(Box::new(Self::new_inherited(info)), global, CanGc::note())
}
}
diff --git a/components/script/dom/webgpu/gpubindgroup.rs b/components/script/dom/webgpu/gpubindgroup.rs
index bb698210c93..c542046ae27 100644
--- a/components/script/dom/webgpu/gpubindgroup.rs
+++ b/components/script/dom/webgpu/gpubindgroup.rs
@@ -19,6 +19,7 @@ use crate::dom::bindings::str::USVString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::webgpu::gpubindgrouplayout::GPUBindGroupLayout;
use crate::dom::webgpu::gpudevice::GPUDevice;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPUBindGroup {
@@ -65,6 +66,7 @@ impl GPUBindGroup {
channel, bind_group, device, layout, label,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpubindgrouplayout.rs b/components/script/dom/webgpu/gpubindgrouplayout.rs
index 470b24c3192..8c753a22499 100644
--- a/components/script/dom/webgpu/gpubindgrouplayout.rs
+++ b/components/script/dom/webgpu/gpubindgrouplayout.rs
@@ -20,6 +20,7 @@ use crate::dom::bindings::str::USVString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::webgpu::gpuconvert::convert_bind_group_layout_entry;
use crate::dom::webgpu::gpudevice::GPUDevice;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPUBindGroupLayout {
@@ -59,6 +60,7 @@ impl GPUBindGroupLayout {
label,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpubuffer.rs b/components/script/dom/webgpu/gpubuffer.rs
index 2a546a5e849..e6e591cc392 100644
--- a/components/script/dom/webgpu/gpubuffer.rs
+++ b/components/script/dom/webgpu/gpubuffer.rs
@@ -122,6 +122,7 @@ impl GPUBuffer {
channel, buffer, device, size, usage, mapping, label,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpucanvascontext.rs b/components/script/dom/webgpu/gpucanvascontext.rs
index 3fb906e2581..424e6b40000 100644
--- a/components/script/dom/webgpu/gpucanvascontext.rs
+++ b/components/script/dom/webgpu/gpucanvascontext.rs
@@ -37,6 +37,7 @@ use crate::dom::bindings::str::USVString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::htmlcanvaselement::{HTMLCanvasElement, LayoutCanvasRenderingContextHelpers};
use crate::dom::node::{document_from_node, Node, NodeDamage};
+use crate::script_runtime::CanGc;
impl HTMLCanvasElementOrOffscreenCanvas {
fn size(&self) -> Size2D<u64> {
@@ -140,6 +141,7 @@ impl GPUCanvasContext {
channel,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpucommandbuffer.rs b/components/script/dom/webgpu/gpucommandbuffer.rs
index 120af69a480..c6a6c9a934d 100644
--- a/components/script/dom/webgpu/gpucommandbuffer.rs
+++ b/components/script/dom/webgpu/gpucommandbuffer.rs
@@ -11,6 +11,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::USVString;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPUCommandBuffer {
@@ -50,6 +51,7 @@ impl GPUCommandBuffer {
label,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpucommandencoder.rs b/components/script/dom/webgpu/gpucommandencoder.rs
index db92794eaf2..252066e0749 100644
--- a/components/script/dom/webgpu/gpucommandencoder.rs
+++ b/components/script/dom/webgpu/gpucommandencoder.rs
@@ -27,6 +27,7 @@ use crate::dom::webgpu::gpucomputepassencoder::GPUComputePassEncoder;
use crate::dom::webgpu::gpuconvert::{convert_load_op, convert_store_op};
use crate::dom::webgpu::gpudevice::GPUDevice;
use crate::dom::webgpu::gpurenderpassencoder::GPURenderPassEncoder;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPUCommandEncoder {
@@ -68,6 +69,7 @@ impl GPUCommandEncoder {
channel, device, encoder, label,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpucompilationmessage.rs b/components/script/dom/webgpu/gpucompilationmessage.rs
index d811e8baf6e..157118d056d 100644
--- a/components/script/dom/webgpu/gpucompilationmessage.rs
+++ b/components/script/dom/webgpu/gpucompilationmessage.rs
@@ -13,6 +13,7 @@ use crate::dom::bindings::codegen::Bindings::WebGPUBinding::{
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::types::GlobalScope;
+use crate::script_runtime::CanGc;
use crate::test::DOMString;
#[dom_struct]
@@ -61,6 +62,7 @@ impl GPUCompilationMessage {
message, mtype, line_num, line_pos, offset, length,
)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webgpu/gpucomputepassencoder.rs b/components/script/dom/webgpu/gpucomputepassencoder.rs
index 0f8937fec8b..1ad305fcecd 100644
--- a/components/script/dom/webgpu/gpucomputepassencoder.rs
+++ b/components/script/dom/webgpu/gpucomputepassencoder.rs
@@ -15,6 +15,7 @@ use crate::dom::webgpu::gpubindgroup::GPUBindGroup;
use crate::dom::webgpu::gpubuffer::GPUBuffer;
use crate::dom::webgpu::gpucommandencoder::GPUCommandEncoder;
use crate::dom::webgpu::gpucomputepipeline::GPUComputePipeline;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPUComputePassEncoder {
@@ -59,6 +60,7 @@ impl GPUComputePassEncoder {
label,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpucomputepipeline.rs b/components/script/dom/webgpu/gpucomputepipeline.rs
index a5d0997e3a3..8a0cf4ab6e1 100644
--- a/components/script/dom/webgpu/gpucomputepipeline.rs
+++ b/components/script/dom/webgpu/gpucomputepipeline.rs
@@ -19,6 +19,7 @@ use crate::dom::bindings::str::USVString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::webgpu::gpubindgrouplayout::GPUBindGroupLayout;
use crate::dom::webgpu::gpudevice::GPUDevice;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPUComputePipeline {
@@ -60,6 +61,7 @@ impl GPUComputePipeline {
device,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpudevice.rs b/components/script/dom/webgpu/gpudevice.rs
index 589395b0a2b..217f6ff5826 100644
--- a/components/script/dom/webgpu/gpudevice.rs
+++ b/components/script/dom/webgpu/gpudevice.rs
@@ -166,6 +166,7 @@ impl GPUDevice {
lost_promise,
)),
global,
+ can_gc,
);
queue.set_device(&device);
device
diff --git a/components/script/dom/webgpu/gpudevicelostinfo.rs b/components/script/dom/webgpu/gpudevicelostinfo.rs
index ea33986a84f..68bb7278061 100644
--- a/components/script/dom/webgpu/gpudevicelostinfo.rs
+++ b/components/script/dom/webgpu/gpudevicelostinfo.rs
@@ -13,6 +13,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPUDeviceLostInfo {
@@ -38,6 +39,7 @@ impl GPUDeviceLostInfo {
reflect_dom_object(
Box::new(GPUDeviceLostInfo::new_inherited(message, reason)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpupipelinelayout.rs b/components/script/dom/webgpu/gpupipelinelayout.rs
index 10bbc53f690..33c5b1f72bb 100644
--- a/components/script/dom/webgpu/gpupipelinelayout.rs
+++ b/components/script/dom/webgpu/gpupipelinelayout.rs
@@ -18,6 +18,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::USVString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::webgpu::gpudevice::GPUDevice;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPUPipelineLayout {
@@ -63,6 +64,7 @@ impl GPUPipelineLayout {
bgls,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpuqueue.rs b/components/script/dom/webgpu/gpuqueue.rs
index 72e74ba66d3..cbba6a24cdb 100644
--- a/components/script/dom/webgpu/gpuqueue.rs
+++ b/components/script/dom/webgpu/gpuqueue.rs
@@ -50,7 +50,11 @@ impl GPUQueue {
}
pub fn new(global: &GlobalScope, channel: WebGPU, queue: WebGPUQueue) -> DomRoot<Self> {
- reflect_dom_object(Box::new(GPUQueue::new_inherited(channel, queue)), global)
+ reflect_dom_object(
+ Box::new(GPUQueue::new_inherited(channel, queue)),
+ global,
+ CanGc::note(),
+ )
}
}
diff --git a/components/script/dom/webgpu/gpurenderbundle.rs b/components/script/dom/webgpu/gpurenderbundle.rs
index aae120b970b..85e38b6b49c 100644
--- a/components/script/dom/webgpu/gpurenderbundle.rs
+++ b/components/script/dom/webgpu/gpurenderbundle.rs
@@ -11,6 +11,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::USVString;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPURenderBundle {
@@ -56,6 +57,7 @@ impl GPURenderBundle {
label,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpurenderbundleencoder.rs b/components/script/dom/webgpu/gpurenderbundleencoder.rs
index 11483bc3eac..11899083d63 100644
--- a/components/script/dom/webgpu/gpurenderbundleencoder.rs
+++ b/components/script/dom/webgpu/gpurenderbundleencoder.rs
@@ -26,6 +26,7 @@ use crate::dom::webgpu::gpubuffer::GPUBuffer;
use crate::dom::webgpu::gpudevice::GPUDevice;
use crate::dom::webgpu::gpurenderbundle::GPURenderBundle;
use crate::dom::webgpu::gpurenderpipeline::GPURenderPipeline;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPURenderBundleEncoder {
@@ -71,6 +72,7 @@ impl GPURenderBundleEncoder {
label,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpurenderpassencoder.rs b/components/script/dom/webgpu/gpurenderpassencoder.rs
index e52cb4dec45..9ec0e5e83e8 100644
--- a/components/script/dom/webgpu/gpurenderpassencoder.rs
+++ b/components/script/dom/webgpu/gpurenderpassencoder.rs
@@ -21,6 +21,7 @@ use crate::dom::webgpu::gpubuffer::GPUBuffer;
use crate::dom::webgpu::gpucommandencoder::GPUCommandEncoder;
use crate::dom::webgpu::gpurenderbundle::GPURenderBundle;
use crate::dom::webgpu::gpurenderpipeline::GPURenderPipeline;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPURenderPassEncoder {
@@ -65,6 +66,7 @@ impl GPURenderPassEncoder {
label,
)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webgpu/gpurenderpipeline.rs b/components/script/dom/webgpu/gpurenderpipeline.rs
index 48f6d93bc01..21230ff6899 100644
--- a/components/script/dom/webgpu/gpurenderpipeline.rs
+++ b/components/script/dom/webgpu/gpurenderpipeline.rs
@@ -16,6 +16,7 @@ use crate::dom::bindings::str::USVString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::webgpu::gpubindgrouplayout::GPUBindGroupLayout;
use crate::dom::webgpu::gpudevice::{GPUDevice, PipelineLayout};
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPURenderPipeline {
@@ -57,6 +58,7 @@ impl GPURenderPipeline {
device,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpusampler.rs b/components/script/dom/webgpu/gpusampler.rs
index 98ec5a873ff..ec3562d0e52 100644
--- a/components/script/dom/webgpu/gpusampler.rs
+++ b/components/script/dom/webgpu/gpusampler.rs
@@ -16,6 +16,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::USVString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::webgpu::gpudevice::GPUDevice;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPUSampler {
@@ -66,6 +67,7 @@ impl GPUSampler {
label,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpushadermodule.rs b/components/script/dom/webgpu/gpushadermodule.rs
index 44cc8fa8115..9b353dd71c1 100644
--- a/components/script/dom/webgpu/gpushadermodule.rs
+++ b/components/script/dom/webgpu/gpushadermodule.rs
@@ -68,6 +68,7 @@ impl GPUShaderModule {
promise,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gpusupportedlimits.rs b/components/script/dom/webgpu/gpusupportedlimits.rs
index 15f1172da18..8f25526eae1 100644
--- a/components/script/dom/webgpu/gpusupportedlimits.rs
+++ b/components/script/dom/webgpu/gpusupportedlimits.rs
@@ -11,6 +11,7 @@ use crate::dom::bindings::codegen::Bindings::WebGPUBinding::GPUSupportedLimits_B
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPUSupportedLimits {
@@ -29,7 +30,7 @@ impl GPUSupportedLimits {
}
pub fn new(global: &GlobalScope, limits: Limits) -> DomRoot<Self> {
- reflect_dom_object(Box::new(Self::new_inherited(limits)), global)
+ reflect_dom_object(Box::new(Self::new_inherited(limits)), global, CanGc::note())
}
}
diff --git a/components/script/dom/webgpu/gputexture.rs b/components/script/dom/webgpu/gputexture.rs
index 9a136165dff..04680f42652 100644
--- a/components/script/dom/webgpu/gputexture.rs
+++ b/components/script/dom/webgpu/gputexture.rs
@@ -22,6 +22,7 @@ use crate::dom::bindings::str::USVString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::webgpu::gpudevice::GPUDevice;
use crate::dom::webgpu::gputextureview::GPUTextureView;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPUTexture {
@@ -100,6 +101,7 @@ impl GPUTexture {
label,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webgpu/gputextureview.rs b/components/script/dom/webgpu/gputextureview.rs
index e563af68d84..f988eb1c41d 100644
--- a/components/script/dom/webgpu/gputextureview.rs
+++ b/components/script/dom/webgpu/gputextureview.rs
@@ -12,6 +12,7 @@ use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::str::USVString;
use crate::dom::globalscope::GlobalScope;
use crate::dom::webgpu::gputexture::GPUTexture;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct GPUTextureView {
@@ -56,6 +57,7 @@ impl GPUTextureView {
label,
)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webxr/fakexrdevice.rs b/components/script/dom/webxr/fakexrdevice.rs
index 036e3022668..194ba0bd087 100644
--- a/components/script/dom/webxr/fakexrdevice.rs
+++ b/components/script/dom/webxr/fakexrdevice.rs
@@ -58,7 +58,11 @@ impl FakeXRDevice {
}
pub fn new(global: &GlobalScope, sender: IpcSender<MockDeviceMsg>) -> DomRoot<FakeXRDevice> {
- reflect_dom_object(Box::new(FakeXRDevice::new_inherited(sender)), global)
+ reflect_dom_object(
+ Box::new(FakeXRDevice::new_inherited(sender)),
+ global,
+ CanGc::note(),
+ )
}
pub fn disconnect(&self, sender: IpcSender<()>) {
diff --git a/components/script/dom/webxr/fakexrinputcontroller.rs b/components/script/dom/webxr/fakexrinputcontroller.rs
index f1ab931aa74..e52dc0a21fd 100644
--- a/components/script/dom/webxr/fakexrinputcontroller.rs
+++ b/components/script/dom/webxr/fakexrinputcontroller.rs
@@ -23,6 +23,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::DOMString;
use crate::dom::fakexrdevice::get_origin;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct FakeXRInputController {
@@ -52,6 +53,7 @@ impl FakeXRInputController {
reflect_dom_object(
Box::new(FakeXRInputController::new_inherited(sender, id)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webxr/xrboundedreferencespace.rs b/components/script/dom/webxr/xrboundedreferencespace.rs
index 1434e23e6e1..ef5480bd72b 100644
--- a/components/script/dom/webxr/xrboundedreferencespace.rs
+++ b/components/script/dom/webxr/xrboundedreferencespace.rs
@@ -57,6 +57,7 @@ impl XRBoundedReferenceSpace {
reflect_dom_object(
Box::new(XRBoundedReferenceSpace::new_inherited(session, offset)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webxr/xrframe.rs b/components/script/dom/webxr/xrframe.rs
index f3a8a263fd3..432e35857af 100644
--- a/components/script/dom/webxr/xrframe.rs
+++ b/components/script/dom/webxr/xrframe.rs
@@ -50,7 +50,11 @@ impl XRFrame {
}
pub fn new(global: &GlobalScope, session: &XRSession, data: Frame) -> DomRoot<XRFrame> {
- reflect_dom_object(Box::new(XRFrame::new_inherited(session, data)), global)
+ reflect_dom_object(
+ Box::new(XRFrame::new_inherited(session, data)),
+ global,
+ CanGc::note(),
+ )
}
/// <https://immersive-web.github.io/webxr/#xrframe-active>
diff --git a/components/script/dom/webxr/xrhand.rs b/components/script/dom/webxr/xrhand.rs
index b73e9cddb35..e3ed4268a1f 100644
--- a/components/script/dom/webxr/xrhand.rs
+++ b/components/script/dom/webxr/xrhand.rs
@@ -12,6 +12,7 @@ use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::globalscope::GlobalScope;
use crate::dom::xrinputsource::XRInputSource;
use crate::dom::xrjointspace::XRJointSpace;
+use crate::script_runtime::CanGc;
const JOINT_SPACE_MAP: [(XRHandJoint, Joint); 25] = [
(XRHandJoint::Wrist, Joint::Wrist),
@@ -130,7 +131,11 @@ impl XRHand {
.expect("Invalid joint name");
field.map(|_| XRJointSpace::new(global, session, id, joint, hand_joint))
});
- reflect_dom_object(Box::new(XRHand::new_inherited(source, &spaces)), global)
+ reflect_dom_object(
+ Box::new(XRHand::new_inherited(source, &spaces)),
+ global,
+ CanGc::note(),
+ )
}
}
diff --git a/components/script/dom/webxr/xrhittestresult.rs b/components/script/dom/webxr/xrhittestresult.rs
index faca7dad3a3..4b4db410812 100644
--- a/components/script/dom/webxr/xrhittestresult.rs
+++ b/components/script/dom/webxr/xrhittestresult.rs
@@ -40,6 +40,7 @@ impl XRHitTestResult {
reflect_dom_object(
Box::new(XRHitTestResult::new_inherited(result, frame)),
global,
+ CanGc::note(),
)
}
}
diff --git a/components/script/dom/webxr/xrhittestsource.rs b/components/script/dom/webxr/xrhittestsource.rs
index 5210bfa84a9..ba829f44aba 100644
--- a/components/script/dom/webxr/xrhittestsource.rs
+++ b/components/script/dom/webxr/xrhittestsource.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::globalscope::GlobalScope;
use crate::dom::xrsession::XRSession;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct XRHitTestSource {
@@ -37,6 +38,7 @@ impl XRHitTestSource {
reflect_dom_object(
Box::new(XRHitTestSource::new_inherited(id, session)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webxr/xrinputsource.rs b/components/script/dom/webxr/xrinputsource.rs
index c7155d343d2..cc240919324 100644
--- a/components/script/dom/webxr/xrinputsource.rs
+++ b/components/script/dom/webxr/xrinputsource.rs
@@ -82,6 +82,7 @@ impl XRInputSource {
let source = reflect_dom_object(
Box::new(XRInputSource::new_inherited(global, session, info, can_gc)),
global,
+ can_gc,
);
let _ac = enter_realm(global);
diff --git a/components/script/dom/webxr/xrinputsourcearray.rs b/components/script/dom/webxr/xrinputsourcearray.rs
index 18059db822a..5c26f2b5824 100644
--- a/components/script/dom/webxr/xrinputsourcearray.rs
+++ b/components/script/dom/webxr/xrinputsourcearray.rs
@@ -32,7 +32,11 @@ impl XRInputSourceArray {
}
pub fn new(global: &GlobalScope) -> DomRoot<XRInputSourceArray> {
- reflect_dom_object(Box::new(XRInputSourceArray::new_inherited()), global)
+ reflect_dom_object(
+ Box::new(XRInputSourceArray::new_inherited()),
+ global,
+ CanGc::note(),
+ )
}
pub fn add_input_sources(&self, session: &XRSession, inputs: &[InputSource], can_gc: CanGc) {
diff --git a/components/script/dom/webxr/xrjointpose.rs b/components/script/dom/webxr/xrjointpose.rs
index 9d1ed301486..315dfc9cfe9 100644
--- a/components/script/dom/webxr/xrjointpose.rs
+++ b/components/script/dom/webxr/xrjointpose.rs
@@ -39,6 +39,7 @@ impl XRJointPose {
reflect_dom_object(
Box::new(XRJointPose::new_inherited(&transform, radius)),
global,
+ can_gc,
)
}
}
diff --git a/components/script/dom/webxr/xrjointspace.rs b/components/script/dom/webxr/xrjointspace.rs
index 8d8dc9309f7..933f57339c5 100644
--- a/components/script/dom/webxr/xrjointspace.rs
+++ b/components/script/dom/webxr/xrjointspace.rs
@@ -13,6 +13,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope;
use crate::dom::xrsession::{ApiPose, XRSession};
use crate::dom::xrspace::XRSpace;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct XRJointSpace {
@@ -52,6 +53,7 @@ impl XRJointSpace {
reflect_dom_object(
Box::new(Self::new_inherited(session, input, joint, hand_joint)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webxr/xrpose.rs b/components/script/dom/webxr/xrpose.rs
index dea8aa62dc4..08442f54806 100644
--- a/components/script/dom/webxr/xrpose.rs
+++ b/components/script/dom/webxr/xrpose.rs
@@ -34,7 +34,11 @@ impl XRPose {
can_gc: CanGc,
) -> DomRoot<XRPose> {
let transform = XRRigidTransform::new(global, transform, can_gc);
- reflect_dom_object(Box::new(XRPose::new_inherited(&transform)), global)
+ reflect_dom_object(
+ Box::new(XRPose::new_inherited(&transform)),
+ global,
+ CanGc::note(),
+ )
}
}
diff --git a/components/script/dom/webxr/xrreferencespace.rs b/components/script/dom/webxr/xrreferencespace.rs
index 6f8c409edbc..04d81070095 100644
--- a/components/script/dom/webxr/xrreferencespace.rs
+++ b/components/script/dom/webxr/xrreferencespace.rs
@@ -59,6 +59,7 @@ impl XRReferenceSpace {
reflect_dom_object(
Box::new(XRReferenceSpace::new_inherited(session, offset, ty)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webxr/xrrenderstate.rs b/components/script/dom/webxr/xrrenderstate.rs
index cf6976404d6..b2d5219ed00 100644
--- a/components/script/dom/webxr/xrrenderstate.rs
+++ b/components/script/dom/webxr/xrrenderstate.rs
@@ -17,7 +17,7 @@ use crate::dom::bindings::utils::to_frozen_array;
use crate::dom::globalscope::GlobalScope;
use crate::dom::xrlayer::XRLayer;
use crate::dom::xrwebgllayer::XRWebGLLayer;
-use crate::script_runtime::JSContext;
+use crate::script_runtime::{CanGc, JSContext};
#[dom_struct]
pub struct XRRenderState {
@@ -65,6 +65,7 @@ impl XRRenderState {
layers,
)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webxr/xrsession.rs b/components/script/dom/webxr/xrsession.rs
index b2ed2c8e08f..92ac419c585 100644
--- a/components/script/dom/webxr/xrsession.rs
+++ b/components/script/dom/webxr/xrsession.rs
@@ -172,6 +172,7 @@ impl XRSession {
mode,
)),
global,
+ CanGc::note(),
);
ret.attach_event_handler();
ret.setup_raf_loop(frame_receiver);
diff --git a/components/script/dom/webxr/xrspace.rs b/components/script/dom/webxr/xrspace.rs
index d810d5c07f0..42a2933edee 100644
--- a/components/script/dom/webxr/xrspace.rs
+++ b/components/script/dom/webxr/xrspace.rs
@@ -15,6 +15,7 @@ use crate::dom::xrinputsource::XRInputSource;
use crate::dom::xrjointspace::XRJointSpace;
use crate::dom::xrreferencespace::XRReferenceSpace;
use crate::dom::xrsession::{cast_transform, ApiPose, XRSession};
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct XRSpace {
@@ -57,6 +58,7 @@ impl XRSpace {
reflect_dom_object(
Box::new(XRSpace::new_inputspace_inner(session, input, is_grip_space)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webxr/xrsystem.rs b/components/script/dom/webxr/xrsystem.rs
index cf5e37b78ec..fb28b477e39 100644
--- a/components/script/dom/webxr/xrsystem.rs
+++ b/components/script/dom/webxr/xrsystem.rs
@@ -66,6 +66,7 @@ impl XRSystem {
reflect_dom_object(
Box::new(XRSystem::new_inherited(window.pipeline_id())),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webxr/xrtest.rs b/components/script/dom/webxr/xrtest.rs
index 0117ab5c3ce..02c090b2a1f 100644
--- a/components/script/dom/webxr/xrtest.rs
+++ b/components/script/dom/webxr/xrtest.rs
@@ -45,7 +45,7 @@ impl XRTest {
}
pub fn new(global: &GlobalScope) -> DomRoot<XRTest> {
- reflect_dom_object(Box::new(XRTest::new_inherited()), global)
+ reflect_dom_object(Box::new(XRTest::new_inherited()), global, CanGc::note())
}
fn device_obtained(
diff --git a/components/script/dom/webxr/xrview.rs b/components/script/dom/webxr/xrview.rs
index 89c5f7d7868..115fde4ec35 100644
--- a/components/script/dom/webxr/xrview.rs
+++ b/components/script/dom/webxr/xrview.rs
@@ -75,6 +75,7 @@ impl XRView {
view.cast_unit(),
)),
global,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/webxr/xrviewerpose.rs b/components/script/dom/webxr/xrviewerpose.rs
index 47b166ab375..1ab6e1b92e1 100644
--- a/components/script/dom/webxr/xrviewerpose.rs
+++ b/components/script/dom/webxr/xrviewerpose.rs
@@ -175,7 +175,11 @@ impl XRViewerPose {
let transform: RigidTransform3D<f32, Viewer, BaseSpace> =
viewer_pose.transform.then(&to_base);
let transform = XRRigidTransform::new(global, cast_transform(transform), can_gc);
- let pose = reflect_dom_object(Box::new(XRViewerPose::new_inherited(&transform)), global);
+ let pose = reflect_dom_object(
+ Box::new(XRViewerPose::new_inherited(&transform)),
+ global,
+ can_gc,
+ );
let cx = GlobalScope::get_cx();
unsafe {
diff --git a/components/script/dom/webxr/xrviewport.rs b/components/script/dom/webxr/xrviewport.rs
index 8ac28519620..49c137c28b0 100644
--- a/components/script/dom/webxr/xrviewport.rs
+++ b/components/script/dom/webxr/xrviewport.rs
@@ -10,6 +10,7 @@ use crate::dom::bindings::codegen::Bindings::XRViewportBinding::XRViewportMethod
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct XRViewport {
@@ -27,7 +28,11 @@ impl XRViewport {
}
pub fn new(global: &GlobalScope, viewport: Rect<i32, Viewport>) -> DomRoot<XRViewport> {
- reflect_dom_object(Box::new(XRViewport::new_inherited(viewport)), global)
+ reflect_dom_object(
+ Box::new(XRViewport::new_inherited(viewport)),
+ global,
+ CanGc::note(),
+ )
}
}
diff --git a/components/script/dom/workerlocation.rs b/components/script/dom/workerlocation.rs
index 84afb2699d8..6dce917684f 100644
--- a/components/script/dom/workerlocation.rs
+++ b/components/script/dom/workerlocation.rs
@@ -11,6 +11,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::bindings::str::USVString;
use crate::dom::urlhelper::UrlHelper;
use crate::dom::workerglobalscope::WorkerGlobalScope;
+use crate::script_runtime::CanGc;
// https://html.spec.whatwg.org/multipage/#worker-locations
#[dom_struct]
@@ -29,7 +30,11 @@ impl WorkerLocation {
}
pub fn new(global: &WorkerGlobalScope, url: ServoUrl) -> DomRoot<WorkerLocation> {
- reflect_dom_object(Box::new(WorkerLocation::new_inherited(url)), global)
+ reflect_dom_object(
+ Box::new(WorkerLocation::new_inherited(url)),
+ global,
+ CanGc::note(),
+ )
}
// https://html.spec.whatwg.org/multipage/#dom-workerlocation-origin
diff --git a/components/script/dom/workernavigator.rs b/components/script/dom/workernavigator.rs
index 92b3bab2222..71f09168644 100644
--- a/components/script/dom/workernavigator.rs
+++ b/components/script/dom/workernavigator.rs
@@ -16,7 +16,7 @@ use crate::dom::permissions::Permissions;
#[cfg(feature = "webgpu")]
use crate::dom::webgpu::gpu::GPU;
use crate::dom::workerglobalscope::WorkerGlobalScope;
-use crate::script_runtime::JSContext;
+use crate::script_runtime::{CanGc, JSContext};
// https://html.spec.whatwg.org/multipage/#workernavigator
#[dom_struct]
@@ -38,7 +38,11 @@ impl WorkerNavigator {
}
pub fn new(global: &WorkerGlobalScope) -> DomRoot<WorkerNavigator> {
- reflect_dom_object(Box::new(WorkerNavigator::new_inherited()), global)
+ reflect_dom_object(
+ Box::new(WorkerNavigator::new_inherited()),
+ global,
+ CanGc::note(),
+ )
}
}
diff --git a/components/script/dom/worklet.rs b/components/script/dom/worklet.rs
index 6c9cbe5bea1..0de60a7812b 100644
--- a/components/script/dom/worklet.rs
+++ b/components/script/dom/worklet.rs
@@ -104,6 +104,7 @@ impl Worklet {
reflect_dom_object(
Box::new(Worklet::new_inherited(window, global_type)),
window,
+ CanGc::note(),
)
}
diff --git a/components/script/dom/xmldocument.rs b/components/script/dom/xmldocument.rs
index a242d113a33..cb491c5d217 100644
--- a/components/script/dom/xmldocument.rs
+++ b/components/script/dom/xmldocument.rs
@@ -20,6 +20,7 @@ use crate::dom::document::{Document, DocumentSource, HasBrowsingContext, IsHTMLD
use crate::dom::location::Location;
use crate::dom::node::Node;
use crate::dom::window::Window;
+use crate::script_runtime::CanGc;
// https://dom.spec.whatwg.org/#xmldocument
#[dom_struct]
@@ -87,6 +88,7 @@ impl XMLDocument {
doc_loader,
)),
window,
+ CanGc::note(),
);
{
let node = doc.upcast::<Node>();
diff --git a/components/script/dom/xmlhttprequestupload.rs b/components/script/dom/xmlhttprequestupload.rs
index 47ebae74a5a..3094e8a1521 100644
--- a/components/script/dom/xmlhttprequestupload.rs
+++ b/components/script/dom/xmlhttprequestupload.rs
@@ -8,6 +8,7 @@ use crate::dom::bindings::reflector::reflect_dom_object;
use crate::dom::bindings::root::DomRoot;
use crate::dom::globalscope::GlobalScope;
use crate::dom::xmlhttprequesteventtarget::XMLHttpRequestEventTarget;
+use crate::script_runtime::CanGc;
#[dom_struct]
pub struct XMLHttpRequestUpload {
@@ -21,6 +22,10 @@ impl XMLHttpRequestUpload {
}
}
pub fn new(global: &GlobalScope) -> DomRoot<XMLHttpRequestUpload> {
- reflect_dom_object(Box::new(XMLHttpRequestUpload::new_inherited()), global)
+ reflect_dom_object(
+ Box::new(XMLHttpRequestUpload::new_inherited()),
+ global,
+ CanGc::note(),
+ )
}
}