diff options
-rw-r--r-- | src/components/script/dom/bindings/global.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/components/script/dom/bindings/global.rs b/src/components/script/dom/bindings/global.rs index 2e34e78e7c3..a82cfc557df 100644 --- a/src/components/script/dom/bindings/global.rs +++ b/src/components/script/dom/bindings/global.rs @@ -6,6 +6,7 @@ use dom::bindings::js::{JS, JSRef, Root}; use dom::bindings::utils::{Reflectable, Reflector}; +use dom::workerglobalscope::WorkerGlobalScope; use dom::window::Window; use page::Page; use script_task::ScriptChan; @@ -16,27 +17,32 @@ use url::Url; pub enum GlobalRef<'a> { Window(JSRef<'a, Window>), + Worker(JSRef<'a, WorkerGlobalScope>), } pub enum GlobalRoot<'a, 'b> { WindowRoot(Root<'a, 'b, Window>), + WorkerRoot(Root<'a, 'b, WorkerGlobalScope>), } #[deriving(Encodable)] pub enum GlobalField { WindowField(JS<Window>), + WorkerField(JS<WorkerGlobalScope>), } impl<'a> GlobalRef<'a> { pub fn get_cx(&self) -> *mut JSContext { match *self { Window(ref window) => window.get_cx(), + Worker(_) => fail!("NYI"), } } pub fn as_window<'b>(&'b self) -> &'b JSRef<'b, Window> { match *self { Window(ref window) => window, + Worker(_) => fail!("expected a Window scope"), } } @@ -57,6 +63,7 @@ impl<'a> Reflectable for GlobalRef<'a> { fn reflector<'b>(&'b self) -> &'b Reflector { match *self { Window(ref window) => window.reflector(), + Worker(ref worker) => worker.reflector(), } } } @@ -65,6 +72,7 @@ impl<'a, 'b> GlobalRoot<'a, 'b> { pub fn root_ref<'c>(&'c self) -> GlobalRef<'c> { match *self { WindowRoot(ref window) => Window(window.root_ref()), + WorkerRoot(ref worker) => Worker(worker.root_ref()), } } } @@ -73,12 +81,14 @@ impl GlobalField { pub fn from_rooted(global: &GlobalRef) -> GlobalField { match *global { Window(ref window) => WindowField(JS::from_rooted(window)), + Worker(ref worker) => WorkerField(JS::from_rooted(worker)), } } pub fn root(&self) -> GlobalRoot { match *self { WindowField(ref window) => WindowRoot(window.root()), + WorkerField(ref worker) => WorkerRoot(worker.root()), } } } |