diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/script/dom/bindings/codegen/Bindings.conf | 3 | ||||
-rw-r--r-- | src/components/script/dom/dedicatedworkerglobalscope.rs | 33 | ||||
-rw-r--r-- | src/components/script/dom/eventtarget.rs | 2 | ||||
-rw-r--r-- | src/components/script/dom/webidls/DedicatedWorkerGlobalScope.webidl | 10 | ||||
-rw-r--r-- | src/components/script/dom/webidls/WorkerGlobalScope.webidl | 27 | ||||
-rw-r--r-- | src/components/script/dom/workerglobalscope.rs | 25 | ||||
-rw-r--r-- | src/components/script/script.rs | 2 | ||||
-rw-r--r-- | src/test/content/test_interfaces.html | 2 |
8 files changed, 104 insertions, 0 deletions
diff --git a/src/components/script/dom/bindings/codegen/Bindings.conf b/src/components/script/dom/bindings/codegen/Bindings.conf index ca0f71d9bf7..6fc67b5aab5 100644 --- a/src/components/script/dom/bindings/codegen/Bindings.conf +++ b/src/components/script/dom/bindings/codegen/Bindings.conf @@ -15,6 +15,9 @@ DOMInterfaces = { +'DedicatedWorkerGlobalScope': { + 'createGlobal': True, +}, 'EventListener': { 'nativeType': 'EventListenerBinding::EventListener', }, diff --git a/src/components/script/dom/dedicatedworkerglobalscope.rs b/src/components/script/dom/dedicatedworkerglobalscope.rs new file mode 100644 index 00000000000..1ca6ff21d45 --- /dev/null +++ b/src/components/script/dom/dedicatedworkerglobalscope.rs @@ -0,0 +1,33 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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::codegen::InheritTypes::DedicatedWorkerGlobalScopeDerived; +use dom::bindings::utils::{Reflectable, Reflector}; +use dom::eventtarget::EventTarget; +use dom::eventtarget::WorkerGlobalScopeTypeId; +use dom::workerglobalscope::DedicatedGlobalScope; +use dom::workerglobalscope::WorkerGlobalScope; + +#[deriving(Encodable)] +pub struct DedicatedWorkerGlobalScope { + workerglobalscope: WorkerGlobalScope, +} + +pub trait DedicatedWorkerGlobalScopeMethods { +} + +impl Reflectable for DedicatedWorkerGlobalScope { + fn reflector<'a>(&'a self) -> &'a Reflector { + self.workerglobalscope.reflector() + } +} + +impl DedicatedWorkerGlobalScopeDerived for EventTarget { + fn is_dedicatedworkerglobalscope(&self) -> bool { + match self.type_id { + WorkerGlobalScopeTypeId(DedicatedGlobalScope) => true, + _ => false + } + } +} diff --git a/src/components/script/dom/eventtarget.rs b/src/components/script/dom/eventtarget.rs index 25a50b40ab3..47d09149522 100644 --- a/src/components/script/dom/eventtarget.rs +++ b/src/components/script/dom/eventtarget.rs @@ -12,6 +12,7 @@ use dom::bindings::utils::{Reflectable, Reflector}; use dom::event::Event; use dom::eventdispatcher::dispatch_event; use dom::node::NodeTypeId; +use dom::workerglobalscope::WorkerGlobalScopeId; use dom::xmlhttprequest::XMLHttpRequestId; use dom::virtualmethods::VirtualMethods; use js::jsapi::{JS_CompileUCFunction, JS_GetFunctionObject, JS_CloneFunctionObject}; @@ -34,6 +35,7 @@ pub enum ListenerPhase { pub enum EventTargetTypeId { NodeTargetTypeId(NodeTypeId), WindowTypeId, + WorkerGlobalScopeTypeId(WorkerGlobalScopeId), XMLHttpRequestTargetTypeId(XMLHttpRequestId) } diff --git a/src/components/script/dom/webidls/DedicatedWorkerGlobalScope.webidl b/src/components/script/dom/webidls/DedicatedWorkerGlobalScope.webidl new file mode 100644 index 00000000000..c0c69219e1e --- /dev/null +++ b/src/components/script/dom/webidls/DedicatedWorkerGlobalScope.webidl @@ -0,0 +1,10 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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/. */ + +// http://www.whatwg.org/html/#dedicatedworkerglobalscope +[Global/*=Worker,DedicatedWorker*/] +/*sealed*/ interface DedicatedWorkerGlobalScope : WorkerGlobalScope { + //void postMessage(any message, optional sequence<Transferable> transfer); + // attribute EventHandler onmessage; +}; diff --git a/src/components/script/dom/webidls/WorkerGlobalScope.webidl b/src/components/script/dom/webidls/WorkerGlobalScope.webidl new file mode 100644 index 00000000000..b4670be2eed --- /dev/null +++ b/src/components/script/dom/webidls/WorkerGlobalScope.webidl @@ -0,0 +1,27 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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/. */ + +// http://www.whatwg.org/html/#workerglobalscope +//[Exposed=Worker] +interface WorkerGlobalScope : EventTarget { + //readonly attribute WorkerGlobalScope self; + //readonly attribute WorkerLocation location; + + //void close(); + // attribute OnErrorEventHandler onerror; + // attribute EventHandler onlanguagechange; + // attribute EventHandler onoffline; + // attribute EventHandler ononline; + + // also has obsolete members +}; + +// http://www.whatwg.org/html/#WorkerGlobalScope-partial +//[Exposed=Worker] +partial interface WorkerGlobalScope { + //void importScripts(DOMString... urls); + //readonly attribute WorkerNavigator navigator; +}; +//WorkerGlobalScope implements WindowTimers; +//WorkerGlobalScope implements WindowBase64; diff --git a/src/components/script/dom/workerglobalscope.rs b/src/components/script/dom/workerglobalscope.rs new file mode 100644 index 00000000000..61345448133 --- /dev/null +++ b/src/components/script/dom/workerglobalscope.rs @@ -0,0 +1,25 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * 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::utils::{Reflectable, Reflector}; +use dom::eventtarget::EventTarget; + +#[deriving(PartialEq,Encodable)] +pub enum WorkerGlobalScopeId { + DedicatedGlobalScope, +} + +#[deriving(Encodable)] +pub struct WorkerGlobalScope { + pub eventtarget: EventTarget, +} + +pub trait WorkerGlobalScopeMethods { +} + +impl Reflectable for WorkerGlobalScope { + fn reflector<'a>(&'a self) -> &'a Reflector { + self.eventtarget.reflector() + } +} diff --git a/src/components/script/script.rs b/src/components/script/script.rs index 48b1676a0c4..6dba58edd97 100644 --- a/src/components/script/script.rs +++ b/src/components/script/script.rs @@ -75,6 +75,7 @@ pub mod dom { pub mod comment; pub mod console; pub mod customevent; + pub mod dedicatedworkerglobalscope; pub mod document; pub mod documentfragment; pub mod documenttype; @@ -174,6 +175,7 @@ pub mod dom { pub mod virtualmethods; pub mod window; pub mod worker; + pub mod workerglobalscope; pub mod xmlhttprequest; pub mod xmlhttprequesteventtarget; pub mod xmlhttprequestupload; diff --git a/src/test/content/test_interfaces.html b/src/test/content/test_interfaces.html index 6fe71e025eb..cc3c8ddeb88 100644 --- a/src/test/content/test_interfaces.html +++ b/src/test/content/test_interfaces.html @@ -59,6 +59,7 @@ var interfaceNamesInGlobalScope = [ "Comment", "Console", "CustomEvent", + "DedicatedWorkerGlobalScope", // #2823 "Document", "DocumentFragment", "DocumentType", @@ -156,6 +157,7 @@ var interfaceNamesInGlobalScope = [ "ValidityState", "Window", "Worker", + "WorkerGlobalScope", // #2823 "XMLHttpRequest", "XMLHttpRequestUpload", ]; |