aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/script_thread.rs
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2017-02-01 12:50:52 -0500
committerJosh Matthews <josh@joshmatthews.net>2017-02-01 12:54:33 -0500
commit60d1717eca5469c8203861c17ad139160e8c1424 (patch)
treed8731b7872bfe42006bd14f401a1354513a0919b /components/script/script_thread.rs
parentb5d2bd757b45aa7f1e61c947d883eb977c6ad7af (diff)
downloadservo-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.rs48
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.