diff options
author | Gregory Terzian <gterzian@users.noreply.github.com> | 2019-11-17 14:37:45 +0800 |
---|---|---|
committer | Gregory Terzian <gterzian@users.noreply.github.com> | 2019-11-19 14:32:21 +0800 |
commit | 50a7111eb65155fc7a0bdb1646c4a2e0ebdd8f90 (patch) | |
tree | 503c793b58480822a9e74e064ec4876f3e74e9fe /components/script/dom/workerglobalscope.rs | |
parent | d553158e95cd5988eeb3e32310c11971c0450449 (diff) | |
download | servo-50a7111eb65155fc7a0bdb1646c4a2e0ebdd8f90.tar.gz servo-50a7111eb65155fc7a0bdb1646c4a2e0ebdd8f90.zip |
impl timer-task-source, dedicated time-out mechanism for service-worker
Diffstat (limited to 'components/script/dom/workerglobalscope.rs')
-rw-r--r-- | components/script/dom/workerglobalscope.rs | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs index 7e55cbfc046..e943b6b0ef4 100644 --- a/components/script/dom/workerglobalscope.rs +++ b/components/script/dom/workerglobalscope.rs @@ -34,6 +34,7 @@ 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::timer::TimerTaskSource; use crate::task_source::websocket::WebsocketTaskSource; use crate::timers::{IsInterval, TimerCallback}; use crossbeam_channel::Receiver; @@ -50,7 +51,6 @@ use net_traits::request::{ }; use net_traits::IpcSend; use script_traits::WorkerGlobalScopeInit; -use script_traits::{TimerEvent, TimerEventId}; use servo_url::{MutableOrigin, ServoUrl}; use std::cell::Ref; use std::default::Default; @@ -120,7 +120,6 @@ impl WorkerGlobalScope { worker_url: ServoUrl, runtime: Runtime, from_devtools_receiver: Receiver<DevtoolScriptControlMsg>, - timer_event_chan: IpcSender<TimerEvent>, closing: Option<Arc<AtomicBool>>, ) -> Self { // Install a pipeline-namespace in the current thread. @@ -134,7 +133,6 @@ impl WorkerGlobalScope { init.script_to_constellation_chan, init.scheduler_chan, init.resource_threads, - timer_event_chan, MutableOrigin::new(init.origin), runtime.microtask_queue.clone(), init.is_headless, @@ -437,6 +435,10 @@ impl WorkerGlobalScope { PortMessageQueue(self.script_chan(), self.pipeline_id()) } + pub fn timer_task_source(&self) -> TimerTaskSource { + TimerTaskSource(self.script_chan(), self.pipeline_id()) + } + pub fn remote_event_task_source(&self) -> RemoteEventTaskSource { RemoteEventTaskSource(self.script_chan(), self.pipeline_id()) } @@ -466,10 +468,6 @@ impl WorkerGlobalScope { } } - pub fn handle_fire_timer(&self, timer_id: TimerEventId) { - self.upcast::<GlobalScope>().fire_timer(timer_id); - } - pub fn close(&self) { if let Some(ref closing) = self.closing { closing.store(true, Ordering::SeqCst); |