aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/worker.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script/dom/worker.rs')
-rw-r--r--src/components/script/dom/worker.rs33
1 files changed, 2 insertions, 31 deletions
diff --git a/src/components/script/dom/worker.rs b/src/components/script/dom/worker.rs
index d28d4958ab8..503632de5a8 100644
--- a/src/components/script/dom/worker.rs
+++ b/src/components/script/dom/worker.rs
@@ -5,19 +5,14 @@
use dom::bindings::codegen::Bindings::WorkerBinding;
use dom::bindings::error::{Fallible, Syntax};
use dom::bindings::global::GlobalRef;
-use dom::bindings::js::{Temporary, RootCollection};
+use dom::bindings::js::Temporary;
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::dedicatedworkerglobalscope::DedicatedWorkerGlobalScope;
use dom::eventtarget::{EventTarget, WorkerTypeId};
-use script_task::StackRootTLS;
-use servo_net::resource_task::load_whole_resource;
use servo_util::str::DOMString;
use servo_util::url::try_parse_url;
-use native;
-use rustrt::task::TaskOpts;
-
#[deriving(Encodable)]
pub struct Worker {
eventtarget: EventTarget,
@@ -45,31 +40,7 @@ impl Worker {
};
let resource_task = global.page().resource_task.deref().clone();
-
- let mut task_opts = TaskOpts::new();
- task_opts.name = Some(format!("Web Worker at {}", worker_url).into_maybe_owned());
- native::task::spawn_opts(task_opts, proc() {
- let roots = RootCollection::new();
- let _stack_roots_tls = StackRootTLS::new(&roots);
-
- let (filename, source) = match load_whole_resource(&resource_task, worker_url.clone()) {
- Err(_) => {
- println!("error loading script {}", worker_url);
- return;
- }
- Ok((metadata, bytes)) => {
- (metadata.final_url, String::from_utf8(bytes).unwrap())
- }
- };
-
- let global = DedicatedWorkerGlobalScope::init().root();
- match global.get_rust_cx().evaluate_script(
- global.reflector().get_jsobject(), source, filename.to_str(), 1) {
- Ok(_) => (),
- Err(_) => println!("evaluate_script failed")
- }
- });
-
+ DedicatedWorkerGlobalScope::run_worker_scope(worker_url, resource_task);
Ok(Worker::new(global))
}
}