diff options
Diffstat (limited to 'components/script/dom/globalscope.rs')
-rw-r--r-- | components/script/dom/globalscope.rs | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/components/script/dom/globalscope.rs b/components/script/dom/globalscope.rs index c7635e98463..f1b6c0000b9 100644 --- a/components/script/dom/globalscope.rs +++ b/components/script/dom/globalscope.rs @@ -33,6 +33,7 @@ use crate::task_source::dom_manipulation::DOMManipulationTaskSource; use crate::task_source::file_reading::FileReadingTaskSource; use crate::task_source::networking::NetworkingTaskSource; use crate::task_source::performance_timeline::PerformanceTimelineTaskSource; +use crate::task_source::port_message::PortMessageQueue; use crate::task_source::remote_event::RemoteEventTaskSource; use crate::task_source::websocket::WebsocketTaskSource; use crate::task_source::TaskSourceName; @@ -504,7 +505,7 @@ impl GlobalScope { unreachable!(); } - /// `ScriptChan` to send messages to the networking task source of + /// `TaskSource` to send messages to the networking task source of /// this global scope. pub fn networking_task_source(&self) -> NetworkingTaskSource { if let Some(window) = self.downcast::<Window>() { @@ -516,7 +517,19 @@ impl GlobalScope { unreachable!(); } - /// `ScriptChan` to send messages to the remote-event task source of + /// `TaskSource` to send messages to the port message queue of + /// this global scope. + pub fn port_message_queue(&self) -> PortMessageQueue { + if let Some(window) = self.downcast::<Window>() { + return window.task_manager().port_message_queue(); + } + if let Some(worker) = self.downcast::<WorkerGlobalScope>() { + return worker.port_message_queue(); + } + unreachable!(); + } + + /// `TaskSource` to send messages to the remote-event task source of /// this global scope. pub fn remote_event_task_source(&self) -> RemoteEventTaskSource { if let Some(window) = self.downcast::<Window>() { @@ -528,7 +541,7 @@ impl GlobalScope { unreachable!(); } - /// `ScriptChan` to send messages to the websocket task source of + /// `TaskSource` to send messages to the websocket task source of /// this global scope. pub fn websocket_task_source(&self) -> WebsocketTaskSource { if let Some(window) = self.downcast::<Window>() { @@ -537,7 +550,7 @@ impl GlobalScope { if let Some(worker) = self.downcast::<WorkerGlobalScope>() { return worker.websocket_task_source(); } - unreachable!(); + unreachable!() } /// Evaluate JS code on this global scope. |