diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-03-27 13:33:56 -0600 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-03-27 13:33:56 -0600 |
commit | 439e3150d74453b86abbcc7934b7e5152f102940 (patch) | |
tree | 31476b5ae3793db41cf678be6a2e39f9ff54e5f8 /components/script/dom/worker.rs | |
parent | 5dd43bf84c78063b6eaf505cab253c1666d969ce (diff) | |
parent | 1244f9e0162e4aebbea701e68363618733780f91 (diff) | |
download | servo-439e3150d74453b86abbcc7934b7e5152f102940.tar.gz servo-439e3150d74453b86abbcc7934b7e5152f102940.zip |
auto merge of #5181 : thiagopnts/servo/master, r=jdm
This is for #4704. I'm not sure if this is the best approach, so I'm open to suggestions.
Diffstat (limited to 'components/script/dom/worker.rs')
-rw-r--r-- | components/script/dom/worker.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs index d764fff259e..274d4c1d906 100644 --- a/components/script/dom/worker.rs +++ b/components/script/dom/worker.rs @@ -4,6 +4,7 @@ use dom::bindings::codegen::Bindings::WorkerBinding; use dom::bindings::codegen::Bindings::WorkerBinding::WorkerMethods; +use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull; use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast}; use dom::bindings::error::{Fallible, ErrorResult}; @@ -14,6 +15,7 @@ use dom::bindings::refcounted::Trusted; use dom::bindings::structuredclone::StructuredCloneData; use dom::bindings::trace::JSTraceable; use dom::bindings::utils::{Reflectable, reflect_dom_object}; +use dom::window::WindowHelpers; use dom::dedicatedworkerglobalscope::DedicatedWorkerGlobalScope; use dom::errorevent::ErrorEvent; use dom::event::{Event, EventBubbles, EventCancelable, EventHelpers}; @@ -21,6 +23,8 @@ use dom::eventtarget::{EventTarget, EventTargetHelpers, EventTargetTypeId}; use dom::messageevent::MessageEvent; use script_task::{ScriptChan, ScriptMsg, Runnable}; +use devtools_traits::{DevtoolsControlMsg, DevtoolsPageInfo}; + use util::str::DOMString; use js::jsapi::JSContext; @@ -71,6 +75,23 @@ impl Worker { let worker = Worker::new(global, sender.clone()).root(); let worker_ref = Trusted::new(global.get_cx(), worker.r(), global.script_chan()); + + if let GlobalRef::Window(window) = global { + if let Some(ref chan) = window.devtools_chan() { + let pipeline_id = window.Window().root().r().pipeline(); + let (devtools_sender, _) = channel(); + let title = format!("Worker for {}", worker_url); + let page_info = DevtoolsPageInfo { + title: title, + url: worker_url.clone(), + }; + let worker_id = global.get_next_worker_id(); + chan.send( + DevtoolsControlMsg::NewGlobal((pipeline_id, Some(worker_id)), devtools_sender.clone(), page_info) + ).unwrap(); + } + } + DedicatedWorkerGlobalScope::run_worker_scope( worker_url, worker_ref, resource_task, global.script_chan(), sender, receiver); |