diff options
Diffstat (limited to 'components/script/dom/worker.rs')
-rw-r--r-- | components/script/dom/worker.rs | 57 |
1 files changed, 36 insertions, 21 deletions
diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs index e5a1bfed223..8b6a96d8489 100644 --- a/components/script/dom/worker.rs +++ b/components/script/dom/worker.rs @@ -47,8 +47,7 @@ pub struct Worker { } impl Worker { - fn new_inherited(sender: Sender<DedicatedWorkerScriptMsg>, - closing: Arc<AtomicBool>) -> Worker { + fn new_inherited(sender: Sender<DedicatedWorkerScriptMsg>, closing: Arc<AtomicBool>) -> Worker { Worker { eventtarget: EventTarget::new_inherited(), sender: sender, @@ -57,12 +56,16 @@ impl Worker { } } - pub fn new(global: &GlobalScope, - sender: Sender<DedicatedWorkerScriptMsg>, - closing: Arc<AtomicBool>) -> DomRoot<Worker> { - reflect_dom_object(Box::new(Worker::new_inherited(sender, closing)), - global, - WorkerBinding::Wrap) + pub fn new( + global: &GlobalScope, + sender: Sender<DedicatedWorkerScriptMsg>, + closing: Arc<AtomicBool>, + ) -> DomRoot<Worker> { + reflect_dom_object( + Box::new(Worker::new_inherited(sender, closing)), + global, + WorkerBinding::Wrap, + ) } // https://html.spec.whatwg.org/multipage/#dom-worker @@ -90,21 +93,31 @@ impl Worker { let worker_id = global.get_next_worker_id(); if let Some(ref chan) = global.devtools_chan() { let pipeline_id = global.pipeline_id(); - let title = format!("Worker for {}", worker_url); - let page_info = DevtoolsPageInfo { - title: title, - url: worker_url.clone(), - }; - let _ = chan.send(ScriptToDevtoolsControlMsg::NewGlobal((pipeline_id, Some(worker_id)), - devtools_sender.clone(), - page_info)); + let title = format!("Worker for {}", worker_url); + let page_info = DevtoolsPageInfo { + title: title, + url: worker_url.clone(), + }; + let _ = chan.send(ScriptToDevtoolsControlMsg::NewGlobal( + (pipeline_id, Some(worker_id)), + devtools_sender.clone(), + page_info, + )); } let init = prepare_workerscope_init(global, Some(devtools_sender)); DedicatedWorkerGlobalScope::run_worker_scope( - init, worker_url, devtools_receiver, worker_ref, - global.script_chan(), sender, receiver, worker_load_origin, closing); + init, + worker_url, + devtools_receiver, + worker_ref, + global.script_chan(), + sender, + receiver, + worker_load_origin, + closing, + ); Ok(worker) } @@ -117,8 +130,7 @@ impl Worker { self.terminated.get() } - pub fn handle_message(address: TrustedWorkerAddress, - data: StructuredCloneData) { + pub fn handle_message(address: TrustedWorkerAddress, data: StructuredCloneData) { let worker = address.root(); if worker.is_terminated() { @@ -148,7 +160,10 @@ impl WorkerMethods for Worker { // NOTE: step 9 of https://html.spec.whatwg.org/multipage/#dom-messageport-postmessage // indicates that a nonexistent communication channel should result in a silent error. - let _ = self.sender.send(DedicatedWorkerScriptMsg::CommonWorker(address, WorkerScriptMsg::DOMMessage(data))); + let _ = self.sender.send(DedicatedWorkerScriptMsg::CommonWorker( + address, + WorkerScriptMsg::DOMMessage(data), + )); Ok(()) } |