aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2023-02-16 23:09:50 -0500
committerJosh Matthews <josh@joshmatthews.net>2023-05-20 11:05:09 -0400
commitf79e1e327dfdf047cab9652e1cc3e67a7667faa1 (patch)
tree43c1cf48c9a6448264722780e38315dafacf4a24 /components/script/dom
parent4998c65c423f995149f4b314d8ff68024c24cc72 (diff)
downloadservo-f79e1e327dfdf047cab9652e1cc3e67a7667faa1.tar.gz
servo-f79e1e327dfdf047cab9652e1cc3e67a7667faa1.zip
Make GlobalScope.get_cx a static method.
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/audiobuffer.rs9
-rw-r--r--components/script/dom/bindings/callback.rs2
-rw-r--r--components/script/dom/bindings/reflector.rs6
-rw-r--r--components/script/dom/bindings/structuredclone.rs2
-rw-r--r--components/script/dom/blob.rs2
-rw-r--r--components/script/dom/console.rs2
-rw-r--r--components/script/dom/create.rs2
-rw-r--r--components/script/dom/customelementregistry.rs19
-rw-r--r--components/script/dom/dissimilaroriginwindow.rs2
-rw-r--r--components/script/dom/eventsource.rs4
-rw-r--r--components/script/dom/eventtarget.rs14
-rw-r--r--components/script/dom/filereader.rs2
-rw-r--r--components/script/dom/globalscope.rs14
-rw-r--r--components/script/dom/gpubuffer.rs2
-rw-r--r--components/script/dom/history.rs2
-rwxr-xr-xcomponents/script/dom/htmlinputelement.rs2
-rw-r--r--components/script/dom/htmlscriptelement.rs8
-rw-r--r--components/script/dom/imagedata.rs6
-rw-r--r--components/script/dom/paintworkletglobalscope.rs4
-rw-r--r--components/script/dom/promise.rs14
-rw-r--r--components/script/dom/readablestream.rs18
-rw-r--r--components/script/dom/rtcdatachannel.rs4
-rw-r--r--components/script/dom/websocket.rs4
-rw-r--r--components/script/dom/windowproxy.rs6
-rw-r--r--components/script/dom/worker.rs4
-rw-r--r--components/script/dom/workletglobalscope.rs6
-rw-r--r--components/script/dom/xrinputsource.rs2
-rw-r--r--components/script/dom/xrinputsourceschangeevent.rs2
-rw-r--r--components/script/dom/xrray.rs2
-rw-r--r--components/script/dom/xrrigidtransform.rs2
-rw-r--r--components/script/dom/xrsystem.rs3
-rw-r--r--components/script/dom/xrview.rs3
-rw-r--r--components/script/dom/xrviewerpose.rs2
33 files changed, 89 insertions, 87 deletions
diff --git a/components/script/dom/audiobuffer.rs b/components/script/dom/audiobuffer.rs
index ade645827a6..268424d1c4b 100644
--- a/components/script/dom/audiobuffer.rs
+++ b/components/script/dom/audiobuffer.rs
@@ -9,8 +9,9 @@ use crate::dom::bindings::codegen::Bindings::AudioBufferBinding::{
};
use crate::dom::bindings::error::{Error, Fallible};
use crate::dom::bindings::num::Finite;
-use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
+use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::DomRoot;
+use crate::dom::globalscope::GlobalScope;
use crate::dom::window::Window;
use crate::realms::enter_realm;
use crate::script_runtime::JSContext;
@@ -172,7 +173,7 @@ impl AudioBuffer {
self.length as usize,
self.sample_rate,
);
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
for (i, channel) in self.js_channels.borrow_mut().iter().enumerate() {
// Step 1.
if channel.get().is_null() {
@@ -271,7 +272,7 @@ impl AudioBufferMethods for AudioBuffer {
}
let bytes_to_copy = min(self.length - start_in_channel, destination.len() as u32) as usize;
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
let channel_number = channel_number as usize;
let offset = start_in_channel as usize;
let mut dest = Vec::with_capacity(destination.len());
@@ -313,7 +314,7 @@ impl AudioBufferMethods for AudioBuffer {
return Err(Error::IndexSize);
}
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
if !self.restore_js_channel_data(cx) {
return Err(Error::JSFailed);
}
diff --git a/components/script/dom/bindings/callback.rs b/components/script/dom/bindings/callback.rs
index c9130cfd50a..9b14f3ced60 100644
--- a/components/script/dom/bindings/callback.rs
+++ b/components/script/dom/bindings/callback.rs
@@ -245,7 +245,7 @@ impl CallSetup {
if let Some(window) = global.downcast::<Window>() {
window.Document().ensure_safe_to_run_script_or_layout();
}
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
let aes = AutoEntryScript::new(&global);
let ais = callback.incumbent().map(AutoIncumbentScript::new);
diff --git a/components/script/dom/bindings/reflector.rs b/components/script/dom/bindings/reflector.rs
index 04bf9fdbbed..8176989ed36 100644
--- a/components/script/dom/bindings/reflector.rs
+++ b/components/script/dom/bindings/reflector.rs
@@ -9,6 +9,7 @@ use crate::dom::bindings::iterable::{Iterable, IterableIterator};
use crate::dom::bindings::root::{Dom, DomRoot, Root};
use crate::dom::bindings::trace::JSTraceable;
use crate::dom::globalscope::GlobalScope;
+use crate::realms::AlreadyInRealm;
use crate::script_runtime::JSContext;
use js::jsapi::{Heap, JSObject};
use js::rust::HandleObject;
@@ -22,7 +23,7 @@ where
U: DerivedFrom<GlobalScope>,
{
let global_scope = global.upcast();
- unsafe { T::WRAP(global_scope.get_cx(), global_scope, obj) }
+ unsafe { T::WRAP(GlobalScope::get_cx(), global_scope, obj) }
}
/// A struct to store a reference to the reflector of a DOM object.
@@ -82,7 +83,8 @@ pub trait DomObject: JSTraceable + 'static {
where
Self: Sized,
{
- GlobalScope::from_reflector(self)
+ let realm = AlreadyInRealm::assert_for_cx(GlobalScope::get_cx());
+ GlobalScope::from_reflector(self, &realm)
}
}
diff --git a/components/script/dom/bindings/structuredclone.rs b/components/script/dom/bindings/structuredclone.rs
index 19dcf78ccd4..85cb758e600 100644
--- a/components/script/dom/bindings/structuredclone.rs
+++ b/components/script/dom/bindings/structuredclone.rs
@@ -352,7 +352,7 @@ pub fn read(
mut data: StructuredSerializedData,
rval: MutableHandleValue,
) -> Result<Vec<DomRoot<MessagePort>>, ()> {
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
let _ac = enter_realm(&*global);
let mut sc_holder = StructuredDataHolder::Read {
blobs: None,
diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs
index 44011df9494..9845133c42c 100644
--- a/components/script/dom/blob.rs
+++ b/components/script/dom/blob.rs
@@ -272,7 +272,7 @@ impl BlobMethods for Blob {
Box::new(|promise, bytes| {
match bytes {
Ok(b) => {
- let cx = promise.global().get_cx();
+ let cx = GlobalScope::get_cx();
let result = run_array_buffer_data_algorithm(cx, b);
match result {
diff --git a/components/script/dom/console.rs b/components/script/dom/console.rs
index 93171beb547..b9b6f2aded0 100644
--- a/components/script/dom/console.rs
+++ b/components/script/dom/console.rs
@@ -17,7 +17,7 @@ impl Console {
#[allow(unsafe_code)]
fn send_to_devtools(global: &GlobalScope, level: LogLevel, message: DOMString) {
if let Some(chan) = global.devtools_chan() {
- let caller = unsafe { describe_scripted_caller(*global.get_cx()) }.unwrap_or_default();
+ let caller = unsafe { describe_scripted_caller(*GlobalScope::get_cx()) }.unwrap_or_default();
let console_message = ConsoleMessage {
message: String::from(message),
logLevel: level,
diff --git a/components/script/dom/create.rs b/components/script/dom/create.rs
index 37aaf07286f..1a4815d1179 100644
--- a/components/script/dom/create.rs
+++ b/components/script/dom/create.rs
@@ -154,7 +154,7 @@ fn create_html_element(
// Step 6. Recovering from exception.
let global =
GlobalScope::current().unwrap_or_else(|| document.global());
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
// Step 6.1.1
unsafe {
diff --git a/components/script/dom/customelementregistry.rs b/components/script/dom/customelementregistry.rs
index dfba75a2028..ddbefaf6783 100644
--- a/components/script/dom/customelementregistry.rs
+++ b/components/script/dom/customelementregistry.rs
@@ -140,11 +140,10 @@ impl CustomElementRegistry {
constructor: HandleObject,
prototype: MutableHandleValue,
) -> ErrorResult {
- let global_scope = self.window.upcast::<GlobalScope>();
unsafe {
// Step 10.1
if !JS_GetProperty(
- *global_scope.get_cx(),
+ *GlobalScope::get_cx(),
constructor,
b"prototype\0".as_ptr() as *const _,
prototype,
@@ -166,7 +165,7 @@ impl CustomElementRegistry {
/// Steps 10.3, 10.4
#[allow(unsafe_code)]
unsafe fn get_callbacks(&self, prototype: HandleObject) -> Fallible<LifecycleCallbacks> {
- let cx = self.window.get_cx();
+ let cx = GlobalScope::get_cx();
// Step 4
Ok(LifecycleCallbacks {
@@ -181,7 +180,7 @@ impl CustomElementRegistry {
/// Step 10.6
#[allow(unsafe_code)]
fn get_observed_attributes(&self, constructor: HandleObject) -> Fallible<Vec<DOMString>> {
- let cx = self.window.get_cx();
+ let cx = GlobalScope::get_cx();
rooted!(in(*cx) let mut observed_attributes = UndefinedValue());
if unsafe {
!JS_GetProperty(
@@ -254,7 +253,7 @@ impl CustomElementRegistryMethods for CustomElementRegistry {
constructor_: Rc<CustomElementConstructor>,
options: &ElementDefinitionOptions,
) -> ErrorResult {
- let cx = self.window.get_cx();
+ let cx = GlobalScope::get_cx();
rooted!(in(*cx) let constructor = constructor_.callback());
let name = LocalName::from(&*name);
@@ -437,7 +436,7 @@ impl CustomElementRegistryMethods for CustomElementRegistry {
// Step 2
if let Some(definition) = self.definitions.borrow().get(&LocalName::from(&*name)) {
unsafe {
- let cx = global_scope.get_cx();
+ let cx = GlobalScope::get_cx();
rooted!(in(*cx) let mut constructor = UndefinedValue());
definition
.constructor
@@ -543,7 +542,7 @@ impl CustomElementDefinition {
prefix: Option<Prefix>,
) -> Fallible<DomRoot<Element>> {
let window = document.window();
- let cx = window.get_cx();
+ let cx = GlobalScope::get_cx();
// Step 2
rooted!(in(*cx) let constructor = ObjectValue(self.constructor.callback()));
rooted!(in(*cx) let mut element = ptr::null_mut::<JSObject>());
@@ -662,7 +661,7 @@ pub fn upgrade_element(definition: Rc<CustomElementDefinition>, element: &Elemen
// Step 8.exception.3
let global = GlobalScope::current().expect("No current global");
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
unsafe {
let ar = enter_realm(&*global);
throw_dom_exception(cx, &global, error);
@@ -686,7 +685,7 @@ fn run_upgrade_constructor(
element: &Element,
) -> ErrorResult {
let window = window_from_node(element);
- let cx = window.get_cx();
+ let cx = GlobalScope::get_cx();
rooted!(in(*cx) let constructor_val = ObjectValue(constructor.callback()));
rooted!(in(*cx) let mut element_val = UndefinedValue());
unsafe {
@@ -909,7 +908,7 @@ impl CustomElementReactionStack {
return;
}
- let cx = element.global().get_cx();
+ let cx = GlobalScope::get_cx();
// We might be here during HTML parsing, rather than
// during Javscript execution, and so we typically aren't
// already in a realm here.
diff --git a/components/script/dom/dissimilaroriginwindow.rs b/components/script/dom/dissimilaroriginwindow.rs
index 989aec3ff3d..13d836114c6 100644
--- a/components/script/dom/dissimilaroriginwindow.rs
+++ b/components/script/dom/dissimilaroriginwindow.rs
@@ -46,7 +46,7 @@ pub struct DissimilarOriginWindow {
impl DissimilarOriginWindow {
#[allow(unsafe_code)]
pub fn new(global_to_clone_from: &GlobalScope, window_proxy: &WindowProxy) -> DomRoot<Self> {
- let cx = global_to_clone_from.get_cx();
+ let cx = GlobalScope::get_cx();
let win = Box::new(Self {
globalscope: GlobalScope::new_inherited(
PipelineId::new(),
diff --git a/components/script/dom/eventsource.rs b/components/script/dom/eventsource.rs
index 49e612cd6eb..9be9962378e 100644
--- a/components/script/dom/eventsource.rs
+++ b/components/script/dom/eventsource.rs
@@ -222,10 +222,10 @@ impl EventSourceContext {
// Steps 4-5
let event = {
let _ac = enter_realm(&*event_source);
- rooted!(in(*event_source.global().get_cx()) let mut data = UndefinedValue());
+ rooted!(in(*GlobalScope::get_cx()) let mut data = UndefinedValue());
unsafe {
self.data
- .to_jsval(*event_source.global().get_cx(), data.handle_mut())
+ .to_jsval(*GlobalScope::get_cx(), data.handle_mut())
};
MessageEvent::new(
&*event_source.global(),
diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs
index 0d57b38c16b..9e9bf816c72 100644
--- a/components/script/dom/eventtarget.rs
+++ b/components/script/dom/eventtarget.rs
@@ -184,7 +184,7 @@ impl CompiledEventListener {
CommonEventHandler::ErrorEventHandler(ref handler) => {
if let Some(event) = event.downcast::<ErrorEvent>() {
if object.is::<Window>() || object.is::<WorkerGlobalScope>() {
- let cx = object.global().get_cx();
+ let cx = GlobalScope::get_cx();
rooted!(in(*cx) let error = event.Error(cx));
let return_value = handler.Call_(
object,
@@ -242,7 +242,7 @@ impl CompiledEventListener {
CommonEventHandler::EventHandler(ref handler) => {
if let Ok(value) = handler.Call_(object, event, exception_handle) {
- let cx = object.global().get_cx();
+ let cx = GlobalScope::get_cx();
rooted!(in(*cx) let value = value);
let value = value.handle();
@@ -525,7 +525,7 @@ impl EventTarget {
let is_error = ty == &atom!("error") && self.is::<Window>();
let args = if is_error { ERROR_ARG_NAMES } else { ARG_NAMES };
- let cx = window.get_cx();
+ let cx = GlobalScope::get_cx();
let options = unsafe {
CompileOptionsWrapper::new(*cx, &handler.url.to_string(), handler.line as u32)
};
@@ -592,7 +592,7 @@ impl EventTarget {
where
T: CallbackContainer,
{
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
let event_listener = listener.map(|listener| {
InlineEventListener::Compiled(CommonEventHandler::EventHandler(unsafe {
@@ -607,7 +607,7 @@ impl EventTarget {
where
T: CallbackContainer,
{
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
let event_listener = listener.map(|listener| {
InlineEventListener::Compiled(CommonEventHandler::ErrorEventHandler(unsafe {
@@ -625,7 +625,7 @@ impl EventTarget {
) where
T: CallbackContainer,
{
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
let event_listener = listener.map(|listener| {
InlineEventListener::Compiled(CommonEventHandler::BeforeUnloadEventHandler(unsafe {
@@ -637,7 +637,7 @@ impl EventTarget {
#[allow(unsafe_code)]
pub fn get_event_handler_common<T: CallbackContainer>(&self, ty: &str) -> Option<Rc<T>> {
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
let listener = self.get_inline_event_listener(&Atom::from(ty));
unsafe {
listener.map(|listener| {
diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs
index 084cecc9577..2e56f48079c 100644
--- a/components/script/dom/filereader.rs
+++ b/components/script/dom/filereader.rs
@@ -258,7 +258,7 @@ impl FileReader {
let _ac = enter_realm(&*fr);
FileReader::perform_readasarraybuffer(
&fr.result,
- fr.global().get_cx(),
+ GlobalScope::get_cx(),
data,
&blob_contents,
)
diff --git a/components/script/dom/globalscope.rs b/components/script/dom/globalscope.rs
index 9a3829f4d0e..9adc6f3213d 100644
--- a/components/script/dom/globalscope.rs
+++ b/components/script/dom/globalscope.rs
@@ -1215,7 +1215,7 @@ impl GlobalScope {
return;
}
- rooted!(in(*global.get_cx()) let mut message = UndefinedValue());
+ rooted!(in(*GlobalScope::get_cx()) let mut message = UndefinedValue());
// Step 10.3 StructuredDeserialize(serialized, targetRealm).
if let Ok(ports) = structuredclone::read(&global, data, message.handle_mut()) {
@@ -1269,7 +1269,7 @@ impl GlobalScope {
};
if let Some((dom_port, PortMessageTask { origin, data })) = should_dispatch {
// Substep 3-4
- rooted!(in(*self.get_cx()) let mut message_clone = UndefinedValue());
+ rooted!(in(*GlobalScope::get_cx()) let mut message_clone = UndefinedValue());
if let Ok(ports) = structuredclone::read(self, data, message_clone.handle_mut()) {
// Substep 6
// Dispatch the event, using the dom message-port.
@@ -2120,7 +2120,7 @@ impl GlobalScope {
/// Returns the global scope of the realm that the given DOM object's reflector
/// was created in.
#[allow(unsafe_code)]
- pub fn from_reflector<T: DomObject>(reflector: &T) -> DomRoot<Self> {
+ pub fn from_reflector<T: DomObject>(reflector: &T, _realm: &AlreadyInRealm) -> DomRoot<Self> {
unsafe { GlobalScope::from_object(*reflector.reflector().get_jsobject()) }
}
@@ -2221,7 +2221,7 @@ impl GlobalScope {
}
#[allow(unsafe_code)]
- pub fn get_cx(&self) -> SafeJSContext {
+ pub fn get_cx() -> SafeJSContext {
unsafe { SafeJSContext::from_ptr(Runtime::get()) }
}
@@ -2603,7 +2603,7 @@ impl GlobalScope {
Some(metadata),
self.time_profiler_chan().clone(),
|| {
- let cx = self.get_cx();
+ let cx = GlobalScope::get_cx();
let ar = enter_realm(&*self);
@@ -2857,7 +2857,7 @@ impl GlobalScope {
// Only perform the checkpoint if we're not shutting down.
if self.can_continue_running() {
self.microtask_queue.checkpoint(
- self.get_cx(),
+ GlobalScope::get_cx(),
|_| Some(DomRoot::from_ref(self)),
vec![DomRoot::from_ref(self)],
);
@@ -2866,7 +2866,7 @@ impl GlobalScope {
/// Enqueue a microtask for subsequent execution.
pub fn enqueue_microtask(&self, job: Microtask) {
- self.microtask_queue.enqueue(job, self.get_cx());
+ self.microtask_queue.enqueue(job, GlobalScope::get_cx());
}
/// Create a new sender/receiver pair that can be used to implement an on-demand
diff --git a/components/script/dom/gpubuffer.rs b/components/script/dom/gpubuffer.rs
index 60a6075cb7f..24eeb06b33d 100644
--- a/components/script/dom/gpubuffer.rs
+++ b/components/script/dom/gpubuffer.rs
@@ -134,7 +134,7 @@ impl GPUBufferMethods for GPUBuffer {
#[allow(unsafe_code)]
/// https://gpuweb.github.io/gpuweb/#dom-gpubuffer-unmap
fn Unmap(&self) {
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
// Step 1
match self.state.get() {
GPUBufferState::Unmapped | GPUBufferState::Destroyed => {
diff --git a/components/script/dom/history.rs b/components/script/dom/history.rs
index 9023a397c66..663499da38f 100644
--- a/components/script/dom/history.rs
+++ b/components/script/dom/history.rs
@@ -117,7 +117,7 @@ impl History {
blobs: None,
};
let global_scope = self.window.upcast::<GlobalScope>();
- rooted!(in(*global_scope.get_cx()) let mut state = UndefinedValue());
+ rooted!(in(*GlobalScope::get_cx()) let mut state = UndefinedValue());
if let Err(_) = structuredclone::read(&global_scope, data, state.handle_mut()) {
warn!("Error reading structuredclone data");
}
diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs
index 696e4566b63..e81e07e9643 100755
--- a/components/script/dom/htmlinputelement.rs
+++ b/components/script/dom/htmlinputelement.rs
@@ -833,7 +833,7 @@ impl HTMLInputElement {
}
// Rust's regex is not compatible, we need to use mozjs RegExp.
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
let _ac = enter_realm(self);
rooted!(in(*cx) let mut pattern = ptr::null_mut::<JSObject>());
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs
index dc7490f232c..1a0afeb1c84 100644
--- a/components/script/dom/htmlscriptelement.rs
+++ b/components/script/dom/htmlscriptelement.rs
@@ -110,7 +110,7 @@ unsafe extern "C" fn off_thread_compilation_callback(
task!(off_thread_compile_continue: move || {
let elem = script_element.root();
let global = elem.global();
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
let _ar = enter_realm(&*global);
let compiled_script = FinishOffThreadStencil(*cx, token.0, ptr::null_mut());
@@ -418,7 +418,7 @@ impl FetchResponseListener for ClassicContext {
let elem = self.elem.root();
let global = elem.global();
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
let _ar = enter_realm(&*global);
let options = unsafe { CompileOptionsWrapper::new(*cx, final_url.as_str(), 1) };
@@ -1053,7 +1053,7 @@ impl HTMLScriptElement {
} else {
self.line_number as u32
};
- rooted!(in(*window.get_cx()) let mut rval = UndefinedValue());
+ rooted!(in(*GlobalScope::get_cx()) let mut rval = UndefinedValue());
let global = window.upcast::<GlobalScope>();
global.evaluate_script_on_global_with_result(
&script.code,
@@ -1108,7 +1108,7 @@ impl HTMLScriptElement {
.map(|record| record.handle());
if let Some(record) = record {
- rooted!(in(*global.get_cx()) let mut rval = UndefinedValue());
+ rooted!(in(*GlobalScope::get_cx()) let mut rval = UndefinedValue());
let evaluated =
module_tree.execute_module(global, record, rval.handle_mut().into());
diff --git a/components/script/dom/imagedata.rs b/components/script/dom/imagedata.rs
index d8574a9b666..43df0951492 100644
--- a/components/script/dom/imagedata.rs
+++ b/components/script/dom/imagedata.rs
@@ -39,7 +39,7 @@ impl ImageData {
) -> Fallible<DomRoot<ImageData>> {
let len = width * height * 4;
unsafe {
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
rooted!(in (*cx) let mut js_object = ptr::null_mut::<JSObject>());
if let Some(ref mut d) = data {
d.resize(len as usize, 0);
@@ -60,7 +60,7 @@ impl ImageData {
jsobject: *mut JSObject,
) -> Fallible<DomRoot<ImageData>> {
// checking jsobject type
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
typedarray!(in(*cx) let array_res: Uint8ClampedArray = jsobject);
let array = array_res.map_err(|_| {
Error::Type("Argument to Image data is not an Uint8ClampedArray".to_owned())
@@ -111,7 +111,7 @@ impl ImageData {
});
let len = width * height * 4;
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
rooted!(in (*cx) let mut array = ptr::null_mut::<JSObject>());
Uint8ClampedArray::create(*cx, CreateWith::Length(len as usize), array.handle_mut())
.unwrap();
diff --git a/components/script/dom/paintworkletglobalscope.rs b/components/script/dom/paintworkletglobalscope.rs
index 5a3b9af24df..25bdeeb5ca3 100644
--- a/components/script/dom/paintworkletglobalscope.rs
+++ b/components/script/dom/paintworkletglobalscope.rs
@@ -252,7 +252,7 @@ impl PaintWorkletGlobalScope {
name, size_in_px.width, size_in_px.height, device_pixel_ratio
);
- let cx = self.worklet_global.get_cx();
+ let cx = WorkletGlobalScope::get_cx();
let _ac = JSAutoRealm::new(*cx, self.worklet_global.reflector().get_jsobject().get());
// TODO: Steps 1-2.1.
@@ -517,7 +517,7 @@ impl PaintWorkletGlobalScopeMethods for PaintWorkletGlobalScope {
/// <https://drafts.css-houdini.org/css-paint-api/#dom-paintworkletglobalscope-registerpaint>
fn RegisterPaint(&self, name: DOMString, paint_ctor: Rc<VoidFunction>) -> Fallible<()> {
let name = Atom::from(name);
- let cx = self.worklet_global.get_cx();
+ let cx = WorkletGlobalScope::get_cx();
rooted!(in(*cx) let paint_obj = paint_ctor.callback_holder().get());
rooted!(in(*cx) let paint_val = ObjectValue(paint_obj.get()));
diff --git a/components/script/dom/promise.rs b/components/script/dom/promise.rs
index 18be293c625..d008a7b9d30 100644
--- a/components/script/dom/promise.rs
+++ b/components/script/dom/promise.rs
@@ -91,8 +91,8 @@ impl Promise {
Promise::new_in_current_realm(global, comp)
}
- pub fn new_in_current_realm(global: &GlobalScope, _comp: InRealm) -> Rc<Promise> {
- let cx = global.get_cx();
+ pub fn new_in_current_realm(_global: &GlobalScope, _comp: InRealm) -> Rc<Promise> {
+ let cx = GlobalScope::get_cx();
rooted!(in(*cx) let mut obj = ptr::null_mut::<JSObject>());
Promise::create_js_promise(cx, obj.handle_mut());
Promise::new_with_js_promise(obj.handle(), cx)
@@ -100,7 +100,7 @@ impl Promise {
#[allow(unsafe_code)]
pub fn duplicate(&self) -> Rc<Promise> {
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
Promise::new_with_js_promise(self.reflector().get_jsobject(), cx)
}
@@ -172,7 +172,7 @@ impl Promise {
where
T: ToJSValConvertible,
{
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
let _ac = enter_realm(&*self);
rooted!(in(*cx) let mut v = UndefinedValue());
unsafe {
@@ -195,7 +195,7 @@ impl Promise {
where
T: ToJSValConvertible,
{
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
let _ac = enter_realm(&*self);
rooted!(in(*cx) let mut v = UndefinedValue());
unsafe {
@@ -206,7 +206,7 @@ impl Promise {
#[allow(unsafe_code)]
pub fn reject_error(&self, error: Error) {
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
let _ac = enter_realm(&*self);
rooted!(in(*cx) let mut v = UndefinedValue());
unsafe {
@@ -245,7 +245,7 @@ impl Promise {
#[allow(unsafe_code)]
pub fn append_native_handler(&self, handler: &PromiseNativeHandler, _comp: InRealm) {
let _ais = AutoEntryScript::new(&*handler.global());
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
rooted!(in(*cx) let resolve_func =
create_native_handler_function(*cx,
handler.reflector().get_jsobject(),
diff --git a/components/script/dom/readablestream.rs b/components/script/dom/readablestream.rs
index 723e229916a..746f094045c 100644
--- a/components/script/dom/readablestream.rs
+++ b/components/script/dom/readablestream.rs
@@ -120,7 +120,7 @@ impl ReadableStream {
) -> DomRoot<ReadableStream> {
let _ar = enter_realm(global);
let _ais = AutoIncumbentScript::new(global);
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
let source = Rc::new(ExternalUnderlyingSourceController::new(source));
@@ -157,7 +157,7 @@ impl ReadableStream {
pub fn enqueue_native(&self, bytes: Vec<u8>) {
let global = self.global();
let _ar = enter_realm(&*global);
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
let handle = unsafe { self.js_stream.handle() };
@@ -171,7 +171,7 @@ impl ReadableStream {
pub fn error_native(&self, error: Error) {
let global = self.global();
let _ar = enter_realm(&*global);
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
unsafe {
rooted!(in(*cx) let mut js_error = UndefinedValue());
@@ -188,7 +188,7 @@ impl ReadableStream {
pub fn close_native(&self) {
let global = self.global();
let _ar = enter_realm(&*global);
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
let handle = unsafe { self.js_stream.handle() };
@@ -223,7 +223,7 @@ impl ReadableStream {
let global = self.global();
let _ar = enter_realm(&*global);
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
unsafe {
rooted!(in(*cx) let reader = ReadableStreamGetReader(
@@ -253,7 +253,7 @@ impl ReadableStream {
let _ar = enter_realm(&*global);
let _aes = AutoEntryScript::new(&*global);
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
unsafe {
rooted!(in(*cx) let promise_obj = ReadableStreamDefaultReaderRead(
@@ -276,7 +276,7 @@ impl ReadableStream {
let global = self.global();
let _ar = enter_realm(&*global);
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
unsafe {
ReadableStreamReaderReleaseLock(*cx, self.js_reader.handle());
@@ -293,7 +293,7 @@ impl ReadableStream {
}
// Otherwise, still double-check that script didn't lock the stream.
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
let mut locked_or_disturbed = false;
unsafe {
@@ -306,7 +306,7 @@ impl ReadableStream {
#[allow(unsafe_code)]
pub fn is_disturbed(&self) -> bool {
// Check that script didn't disturb the stream.
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
let mut locked_or_disturbed = false;
unsafe {
diff --git a/components/script/dom/rtcdatachannel.rs b/components/script/dom/rtcdatachannel.rs
index 052f3f13131..6fefea60812 100644
--- a/components/script/dom/rtcdatachannel.rs
+++ b/components/script/dom/rtcdatachannel.rs
@@ -135,7 +135,7 @@ impl RTCDataChannel {
pub fn on_error(&self, error: WebRtcError) {
let global = self.global();
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
let _ac = JSAutoRealm::new(*cx, self.reflector().get_jsobject().get());
let init = RTCErrorInit {
errorDetail: RTCErrorDetailType::Data_channel_failure,
@@ -157,7 +157,7 @@ impl RTCDataChannel {
pub fn on_message(&self, channel_message: DataChannelMessage) {
unsafe {
let global = self.global();
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
let _ac = JSAutoRealm::new(*cx, self.reflector().get_jsobject().get());
rooted!(in(*cx) let mut message = UndefinedValue());
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs
index a3c9848ed9b..59b87d08987 100644
--- a/components/script/dom/websocket.rs
+++ b/components/script/dom/websocket.rs
@@ -554,9 +554,9 @@ impl TaskOnce for MessageReceivedTask {
// Step 2-5.
let global = ws.global();
- // global.get_cx() returns a valid `JSContext` pointer, so this is safe.
+ // GlobalScope::get_cx() returns a valid `JSContext` pointer, so this is safe.
unsafe {
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
let _ac = JSAutoRealm::new(*cx, ws.reflector().get_jsobject().get());
rooted!(in(*cx) let mut message = UndefinedValue());
match self.message {
diff --git a/components/script/dom/windowproxy.rs b/components/script/dom/windowproxy.rs
index 35850f76092..9ae85a30fc6 100644
--- a/components/script/dom/windowproxy.rs
+++ b/components/script/dom/windowproxy.rs
@@ -165,7 +165,7 @@ impl WindowProxy {
let WindowProxyHandler(handler) = window.windowproxy_handler();
assert!(!handler.is_null());
- let cx = window.get_cx();
+ let cx = GlobalScope::get_cx();
let window_jsobject = window.reflector().get_jsobject();
assert!(!window_jsobject.get().is_null());
assert_ne!(
@@ -225,7 +225,7 @@ impl WindowProxy {
let handler = CreateWrapperProxyHandler(&XORIGIN_PROXY_HANDLER);
assert!(!handler.is_null());
- let cx = global_to_clone_from.get_cx();
+ let cx = GlobalScope::get_cx();
// Create a new browsing context.
let window_proxy = Box::new(WindowProxy::new_inherited(
@@ -624,7 +624,7 @@ impl WindowProxy {
let handler = CreateWrapperProxyHandler(traps);
assert!(!handler.is_null());
- let cx = window.get_cx();
+ let cx = GlobalScope::get_cx();
let window_jsobject = window.reflector().get_jsobject();
let old_js_proxy = self.reflector.get_jsobject();
assert!(!window_jsobject.get().is_null());
diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs
index 563a04679ea..b9370f02914 100644
--- a/components/script/dom/worker.rs
+++ b/components/script/dom/worker.rs
@@ -169,7 +169,7 @@ impl Worker {
let global = worker.global();
let target = worker.upcast();
let _ac = enter_realm(target);
- rooted!(in(*global.get_cx()) let mut message = UndefinedValue());
+ rooted!(in(*GlobalScope::get_cx()) let mut message = UndefinedValue());
if let Ok(ports) = structuredclone::read(&global, data, message.handle_mut()) {
MessageEvent::dispatch_jsval(target, &global, message.handle(), None, None, ports);
} else {
@@ -247,7 +247,7 @@ impl WorkerMethods for Worker {
self.terminated.set(true);
// Step 3
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
unsafe { JS_RequestInterruptCallback(*cx) };
}
diff --git a/components/script/dom/workletglobalscope.rs b/components/script/dom/workletglobalscope.rs
index 29d5b9b7f99..96270b8fab8 100644
--- a/components/script/dom/workletglobalscope.rs
+++ b/components/script/dom/workletglobalscope.rs
@@ -85,14 +85,14 @@ impl WorkletGlobalScope {
}
/// Get the JS context.
- pub fn get_cx(&self) -> JSContext {
- self.globalscope.get_cx()
+ pub fn get_cx() -> JSContext {
+ GlobalScope::get_cx()
}
/// Evaluate a JS script in this global.
pub fn evaluate_js(&self, script: &str) -> bool {
debug!("Evaluating Dom in a worklet.");
- rooted!(in (*self.globalscope.get_cx()) let mut rval = UndefinedValue());
+ rooted!(in (*GlobalScope::get_cx()) let mut rval = UndefinedValue());
self.globalscope.evaluate_js_on_global_with_result(
&*script,
rval.handle_mut(),
diff --git a/components/script/dom/xrinputsource.rs b/components/script/dom/xrinputsource.rs
index 248fb6d737a..592ced2f10d 100644
--- a/components/script/dom/xrinputsource.rs
+++ b/components/script/dom/xrinputsource.rs
@@ -57,7 +57,7 @@ impl XRInputSource {
);
let _ac = enter_realm(&*global);
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
unsafe {
rooted!(in(*cx) let mut profiles = UndefinedValue());
source.info.profiles.to_jsval(*cx, profiles.handle_mut());
diff --git a/components/script/dom/xrinputsourceschangeevent.rs b/components/script/dom/xrinputsourceschangeevent.rs
index d23c5ea4157..99e5da7ead7 100644
--- a/components/script/dom/xrinputsourceschangeevent.rs
+++ b/components/script/dom/xrinputsourceschangeevent.rs
@@ -63,7 +63,7 @@ impl XRInputSourcesChangeEvent {
event.init_event(type_, bubbles, cancelable);
}
let _ac = enter_realm(&*global);
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
unsafe {
rooted!(in(*cx) let mut added_val = UndefinedValue());
added.to_jsval(*cx, added_val.handle_mut());
diff --git a/components/script/dom/xrray.rs b/components/script/dom/xrray.rs
index cb5e29d9c62..781ff6a396b 100644
--- a/components/script/dom/xrray.rs
+++ b/components/script/dom/xrray.rs
@@ -116,7 +116,7 @@ impl XRRayMethods for XRRay {
// https://immersive-web.github.io/hit-test/#xrray-obtain-the-matrix
// Step 1
if self.matrix.get().is_null() {
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
// Step 2
let z = Vector3D::new(0., 0., -1.);
// Step 3
diff --git a/components/script/dom/xrrigidtransform.rs b/components/script/dom/xrrigidtransform.rs
index 0488d4584eb..00909e1fe1c 100644
--- a/components/script/dom/xrrigidtransform.rs
+++ b/components/script/dom/xrrigidtransform.rs
@@ -117,7 +117,7 @@ impl XRRigidTransformMethods for XRRigidTransform {
// https://immersive-web.github.io/webxr/#dom-xrrigidtransform-matrix
fn Matrix(&self, _cx: JSContext) -> NonNull<JSObject> {
if self.matrix.get().is_null() {
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
// According to the spec all matrices are column-major,
// however euclid uses row vectors so we use .to_array()
let arr = self.transform.to_transform().to_array();
diff --git a/components/script/dom/xrsystem.rs b/components/script/dom/xrsystem.rs
index 23235c1d95a..8cfeedbd283 100644
--- a/components/script/dom/xrsystem.rs
+++ b/components/script/dom/xrsystem.rs
@@ -14,6 +14,7 @@ use crate::dom::bindings::root::{Dom, DomRoot, MutNullableDom};
use crate::dom::bindings::trace::RootedTraceableBox;
use crate::dom::eventtarget::EventTarget;
use crate::dom::gamepad::Gamepad;
+use crate::dom::globalscope::GlobalScope;
use crate::dom::promise::Promise;
use crate::dom::window::Window;
use crate::dom::xrsession::XRSession;
@@ -180,7 +181,7 @@ impl XRSystemMethods for XRSystem {
let mut required_features = vec![];
let mut optional_features = vec![];
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
// We are supposed to include "viewer" and on immersive devices "local"
// by default here, but this is handled directly in requestReferenceSpace()
diff --git a/components/script/dom/xrview.rs b/components/script/dom/xrview.rs
index a5972e26955..b849b1d03ba 100644
--- a/components/script/dom/xrview.rs
+++ b/components/script/dom/xrview.rs
@@ -3,7 +3,6 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
use crate::dom::bindings::codegen::Bindings::XRViewBinding::{XREye, XRViewMethods};
-use crate::dom::bindings::reflector::DomObject;
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::bindings::utils::create_typed_array;
@@ -90,7 +89,7 @@ impl XRViewMethods for XRView {
/// https://immersive-web.github.io/webxr/#dom-xrview-projectionmatrix
fn ProjectionMatrix(&self, _cx: JSContext) -> NonNull<JSObject> {
if self.proj.get().is_null() {
- let cx = self.global().get_cx();
+ let cx = GlobalScope::get_cx();
// row_major since euclid uses row vectors
let proj = self.view.projection.to_array();
create_typed_array(cx, &proj, &self.proj);
diff --git a/components/script/dom/xrviewerpose.rs b/components/script/dom/xrviewerpose.rs
index 7a2f4a6b441..e9b072e5e5d 100644
--- a/components/script/dom/xrviewerpose.rs
+++ b/components/script/dom/xrviewerpose.rs
@@ -154,7 +154,7 @@ impl XRViewerPose {
let transform = XRRigidTransform::new(global, cast_transform(transform));
let pose = reflect_dom_object(Box::new(XRViewerPose::new_inherited(&transform)), global);
- let cx = global.get_cx();
+ let cx = GlobalScope::get_cx();
unsafe {
rooted!(in(*cx) let mut jsval = UndefinedValue());
views.to_jsval(*cx, jsval.handle_mut());