diff --git a/components/script/dom/dissimilaroriginwindow.rs b/components/script/dom/dissimilaroriginwindow.rs index adba29c23fb..bf8337cdfbe 100644 --- a/components/script/dom/dissimilaroriginwindow.rs +++ b/components/script/dom/dissimilaroriginwindow.rs @@ -20,7 +20,7 @@ use js::jsval::{JSVal, UndefinedValue}; use js::rust::{CustomAutoRooter, CustomAutoRooterGuard, HandleValue}; use msg::constellation_msg::PipelineId; use script_traits::{ScriptMsg, StructuredSerializedData}; -use servo_url::ServoUrl; +use servo_url::{MutableOrigin, ServoUrl}; /// Represents a dissimilar-origin `Window` that exists in another script thread. /// @@ -195,6 +195,10 @@ impl DissimilarOriginWindowMethods for DissimilarOriginWindow { } impl DissimilarOriginWindow { + pub fn origin(&self) -> &MutableOrigin { + self.globalscope.origin() + } + /// https://html.spec.whatwg.org/multipage/#window-post-message-steps fn post_message_impl( &self, diff --git a/components/script/dom/paintworkletglobalscope.rs b/components/script/dom/paintworkletglobalscope.rs index 888a6b16574..d8c3cd552fd 100644 --- a/components/script/dom/paintworkletglobalscope.rs +++ b/components/script/dom/paintworkletglobalscope.rs @@ -52,6 +52,7 @@ use script_traits::Painter; use script_traits::{DrawAPaintImageResult, PaintWorkletError}; use servo_atoms::Atom; use servo_config::pref; +use servo_url::MutableOrigin; use servo_url::ServoUrl; use std::cell::Cell; use std::collections::hash_map::Entry; @@ -136,6 +137,10 @@ impl PaintWorkletGlobalScope { self.image_cache.clone() } + pub fn origin(&self) -> &MutableOrigin { + self.worklet_global.origin() + } + pub fn perform_a_worklet_task(&self, task: PaintWorkletTask) { match task { PaintWorkletTask::DrawAPaintImage( diff --git a/components/script/dom/testworkletglobalscope.rs b/components/script/dom/testworkletglobalscope.rs index c67e1536457..f4394f7f133 100644 --- a/components/script/dom/testworkletglobalscope.rs +++ b/components/script/dom/testworkletglobalscope.rs @@ -15,7 +15,7 @@ use crossbeam_channel::Sender; use dom_struct::dom_struct; use js::rust::Runtime; use msg::constellation_msg::PipelineId; -use servo_url::ServoUrl; +use servo_url::{MutableOrigin, ServoUrl}; use std::collections::HashMap; // check-tidy: no specs after this line @@ -53,6 +53,10 @@ impl TestWorkletGlobalScope { unsafe { TestWorkletGlobalScopeBinding::Wrap(JSContext::from_ptr(runtime.cx()), global) } } + pub fn origin(&self) -> &MutableOrigin { + self.worklet_global.origin() + } + pub fn perform_a_worklet_task(&self, task: TestWorkletTask) { match task { TestWorkletTask::Lookup(key, sender) => { diff --git a/components/script/dom/workletglobalscope.rs b/components/script/dom/workletglobalscope.rs index 29d5b9b7f99..025f8268cd7 100644 --- a/components/script/dom/workletglobalscope.rs +++ b/components/script/dom/workletglobalscope.rs @@ -84,6 +84,10 @@ impl WorkletGlobalScope { } } + pub fn origin(&self) -> &MutableOrigin { + self.globalscope.origin() + } + /// Get the JS context. pub fn get_cx(&self) -> JSContext { self.globalscope.get_cx()