diff options
author | Josh Matthews <josh@joshmatthews.net> | 2017-02-01 12:50:52 -0500 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2017-02-01 12:54:33 -0500 |
commit | 60d1717eca5469c8203861c17ad139160e8c1424 (patch) | |
tree | d8731b7872bfe42006bd14f401a1354513a0919b /components/script/script_thread.rs | |
parent | b5d2bd757b45aa7f1e61c947d883eb977c6ad7af (diff) | |
download | servo-60d1717eca5469c8203861c17ad139160e8c1424.tar.gz servo-60d1717eca5469c8203861c17ad139160e8c1424.zip |
Remove incorrect uses of asynchronous tasks from ServiceWorker job queue.
Diffstat (limited to 'components/script/script_thread.rs')
-rw-r--r-- | components/script/script_thread.rs | 48 |
1 files changed, 4 insertions, 44 deletions
diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs index f54ff2ca097..c50011bf19c 100644 --- a/components/script/script_thread.rs +++ b/components/script/script_thread.rs @@ -35,7 +35,6 @@ use dom::bindings::inheritance::Castable; use dom::bindings::js::{JS, MutNullableJS, Root, RootCollection}; use dom::bindings::js::{RootCollectionPtr, RootedReference}; use dom::bindings::num::Finite; -use dom::bindings::refcounted::Trusted; use dom::bindings::reflector::DomObject; use dom::bindings::str::DOMString; use dom::bindings::trace::JSTraceable; @@ -94,7 +93,7 @@ use script_traits::CompositorEvent::{KeyEvent, MouseButtonEvent, MouseMoveEvent, use script_traits::CompositorEvent::{TouchEvent, TouchpadPressureEvent}; use script_traits::WebVREventMsg; use script_traits::webdriver_msg::WebDriverScriptCommand; -use serviceworkerjob::{Job, JobQueue, AsyncJobHandler, FinishJobHandler, InvokeType, SettleType}; +use serviceworkerjob::{Job, JobQueue, AsyncJobHandler}; use servo_config::opts; use servo_url::ServoUrl; use std::cell::Cell; @@ -112,7 +111,6 @@ use std::thread; use style::context::ReflowGoal; use style::dom::{TNode, UnsafeNode}; use style::thread_state; -use task_source::TaskSource; use task_source::dom_manipulation::{DOMManipulationTask, DOMManipulationTaskSource}; use task_source::file_reading::FileReadingTaskSource; use task_source::history_traversal::HistoryTraversalTaskSource; @@ -1469,49 +1467,11 @@ impl ScriptThread { } pub fn dispatch_job_queue(&self, job_handler: Box<AsyncJobHandler>) { - let scope_url = job_handler.scope_url.clone(); - let queue_ref = self.job_queue_map.0.borrow(); - let front_job = { - let job_vec = queue_ref.get(&scope_url); - job_vec.unwrap().first().unwrap() - }; - match job_handler.invoke_type { - InvokeType::Run => (&*self.job_queue_map).run_job(job_handler, self), - InvokeType::Register => self.job_queue_map.run_register(front_job, job_handler, self), - InvokeType::Update => self.job_queue_map.update(front_job, &*front_job.client.global(), self), - InvokeType::Settle(settle_type) => { - let promise = &front_job.promise; - let global = &*front_job.client.global(); - let trusted_global = Trusted::new(global); - let _ac = JSAutoCompartment::new(global.get_cx(), promise.reflector().get_jsobject().get()); - match settle_type { - SettleType::Resolve(reg) => promise.resolve_native(global.get_cx(), &*reg.root()), - SettleType::Reject(err) => promise.reject_error(global.get_cx(), err) - } - let finish_job_handler = box FinishJobHandler::new(scope_url, trusted_global); - self.queue_finish_job(finish_job_handler, global); - } - } - } - - pub fn queue_serviceworker_job(&self, async_job_handler: Box<AsyncJobHandler>, global: &GlobalScope) { - let _ = self.dom_manipulation_task_source.queue(async_job_handler, &*global); - } - - pub fn queue_finish_job(&self, finish_job_handler: Box<FinishJobHandler>, global: &GlobalScope) { - let _ = self.dom_manipulation_task_source.queue(finish_job_handler, global); - } - - pub fn invoke_finish_job(&self, finish_job_handler: Box<FinishJobHandler>) { - let job_queue = &*self.job_queue_map; - let global = &*finish_job_handler.global.root(); - let scope_url = (*finish_job_handler).scope_url; - job_queue.finish_job(scope_url, global, self); + self.job_queue_map.run_job(job_handler, self); } - pub fn invoke_job_update(&self, job: &Job, global: &GlobalScope) { - let job_queue = &*self.job_queue_map; - job_queue.update(job, global, self); + pub fn dom_manipulation_task_source(&self) -> &DOMManipulationTaskSource { + &self.dom_manipulation_task_source } /// Handles a request for the window title. |