diff options
author | Ms2ger <ms2ger@gmail.com> | 2014-07-16 11:54:05 +0200 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2014-07-16 11:54:05 +0200 |
commit | c40ad756e6295cb6b39dfb98ac85ba5f77a27fcf (patch) | |
tree | a2940a94224587b517d7070106ba38024195a8d7 /src/components/script/dom | |
parent | 1fbf9f7749e770904a9c31176bd576e7264d9c0a (diff) | |
download | servo-c40ad756e6295cb6b39dfb98ac85ba5f77a27fcf.tar.gz servo-c40ad756e6295cb6b39dfb98ac85ba5f77a27fcf.zip |
Create Worker objects.
Diffstat (limited to 'src/components/script/dom')
-rw-r--r-- | src/components/script/dom/eventtarget.rs | 1 | ||||
-rw-r--r-- | src/components/script/dom/worker.rs | 22 |
2 files changed, 19 insertions, 4 deletions
diff --git a/src/components/script/dom/eventtarget.rs b/src/components/script/dom/eventtarget.rs index 47d09149522..1683f280100 100644 --- a/src/components/script/dom/eventtarget.rs +++ b/src/components/script/dom/eventtarget.rs @@ -35,6 +35,7 @@ pub enum ListenerPhase { pub enum EventTargetTypeId { NodeTargetTypeId(NodeTypeId), WindowTypeId, + WorkerTypeId, WorkerGlobalScopeTypeId(WorkerGlobalScopeId), XMLHttpRequestTargetTypeId(XMLHttpRequestId) } diff --git a/src/components/script/dom/worker.rs b/src/components/script/dom/worker.rs index 11bbb6f3257..2cfeff53ce0 100644 --- a/src/components/script/dom/worker.rs +++ b/src/components/script/dom/worker.rs @@ -2,12 +2,13 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -use dom::bindings::error::{Fallible, Security, Syntax}; +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::utils::{Reflectable, Reflector}; +use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; use dom::dedicatedworkerglobalscope::DedicatedWorkerGlobalScope; -use dom::eventtarget::EventTarget; +use dom::eventtarget::{EventTarget, WorkerTypeId}; use script_task::StackRootTLS; use servo_net::resource_task::load_whole_resource; @@ -22,6 +23,18 @@ pub struct Worker { } impl Worker { + pub fn new_inherited() -> Worker { + Worker { + eventtarget: EventTarget::new_inherited(WorkerTypeId), + } + } + + pub fn new(global: &GlobalRef) -> Temporary<Worker> { + reflect_dom_object(box Worker::new_inherited(), + global, + WorkerBinding::Wrap) + } + pub fn Constructor(global: &GlobalRef, scriptURL: DOMString) -> Fallible<Temporary<Worker>> { // Step 2-4. let worker_url = match try_parse_url(scriptURL.as_slice(), Some(global.get_url())) { @@ -52,7 +65,8 @@ impl Worker { Err(_) => println!("evaluate_script failed") } }); - Err(Security) + + Ok(Worker::new(global)) } } |