aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/script_task.rs
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2014-07-18 12:24:15 +0200
committerMs2ger <ms2ger@gmail.com>2014-08-12 17:47:18 +0200
commite8bd66cfa9ae46be42d22b74275c8af80c055faa (patch)
treef67169b831e8daef5caa91e299164847773be38b /src/components/script/script_task.rs
parent4f7c7fc808867d68ec15f172711a94af2b9a43ab (diff)
downloadservo-e8bd66cfa9ae46be42d22b74275c8af80c055faa.tar.gz
servo-e8bd66cfa9ae46be42d22b74275c8af80c055faa.zip
Store a pointer to the Worker in the DedicatedWorkerGlobalScope.
Diffstat (limited to 'src/components/script/script_task.rs')
-rw-r--r--src/components/script/script_task.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/components/script/script_task.rs b/src/components/script/script_task.rs
index ba6cd12c372..090cf38ee47 100644
--- a/src/components/script/script_task.rs
+++ b/src/components/script/script_task.rs
@@ -20,6 +20,7 @@ use dom::eventtarget::{EventTarget, EventTargetHelpers};
use dom::node;
use dom::node::{ElementNodeTypeId, Node, NodeHelpers};
use dom::window::{TimerId, Window, WindowHelpers};
+use dom::worker::{Worker, TrustedWorkerAddress};
use dom::xmlhttprequest::{TrustedXHRAddress, XMLHttpRequest, XHRProgress};
use html::hubbub_html_parser::HtmlParserResult;
use html::hubbub_html_parser::{HtmlDiscoveredStyle, HtmlDiscoveredScript};
@@ -86,6 +87,8 @@ pub enum ScriptMsg {
/// Message sent through Worker.postMessage (only dispatched to
/// DedicatedWorkerGlobalScope).
DOMMessage(DOMString),
+ /// Releases one reference to the Worker object (dispatched to all tasks).
+ WorkerRelease(TrustedWorkerAddress),
}
/// Encapsulates internal communication within the script task.
@@ -441,6 +444,7 @@ impl ScriptTask {
FromConstellation(ResizeMsg(..)) => fail!("should have handled ResizeMsg already"),
FromScript(XHRProgressMsg(addr, progress)) => XMLHttpRequest::handle_xhr_progress(addr, progress),
FromScript(DOMMessage(..)) => fail!("unexpected message"),
+ FromScript(WorkerRelease(addr)) => Worker::handle_release(addr),
}
}