mirror of
https://github.com/servo/servo.git
synced 2025-08-05 05:30:08 +01:00
Merge pull request #3077 from Ms2ger/onmessage
Implement {Worker,DedicatedWorkerGlobalScope}.onmessage; r=abinader+Manishearth
This commit is contained in:
commit
76ba6f669e
5 changed files with 26 additions and 10 deletions
|
@ -4,13 +4,14 @@
|
||||||
|
|
||||||
use dom::bindings::codegen::Bindings::DedicatedWorkerGlobalScopeBinding;
|
use dom::bindings::codegen::Bindings::DedicatedWorkerGlobalScopeBinding;
|
||||||
use dom::bindings::codegen::Bindings::DedicatedWorkerGlobalScopeBinding::DedicatedWorkerGlobalScopeMethods;
|
use dom::bindings::codegen::Bindings::DedicatedWorkerGlobalScopeBinding::DedicatedWorkerGlobalScopeMethods;
|
||||||
|
use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
|
||||||
use dom::bindings::codegen::InheritTypes::DedicatedWorkerGlobalScopeDerived;
|
use dom::bindings::codegen::InheritTypes::DedicatedWorkerGlobalScopeDerived;
|
||||||
use dom::bindings::codegen::InheritTypes::{EventTargetCast, WorkerGlobalScopeCast};
|
use dom::bindings::codegen::InheritTypes::{EventTargetCast, WorkerGlobalScopeCast};
|
||||||
use dom::bindings::global::Worker;
|
use dom::bindings::global::Worker;
|
||||||
use dom::bindings::js::{JSRef, Temporary, RootCollection};
|
use dom::bindings::js::{JSRef, Temporary, RootCollection};
|
||||||
use dom::bindings::trace::Untraceable;
|
use dom::bindings::trace::Untraceable;
|
||||||
use dom::bindings::utils::{Reflectable, Reflector};
|
use dom::bindings::utils::{Reflectable, Reflector};
|
||||||
use dom::eventtarget::EventTarget;
|
use dom::eventtarget::{EventTarget, EventTargetHelpers};
|
||||||
use dom::eventtarget::WorkerGlobalScopeTypeId;
|
use dom::eventtarget::WorkerGlobalScopeTypeId;
|
||||||
use dom::messageevent::MessageEvent;
|
use dom::messageevent::MessageEvent;
|
||||||
use dom::worker::{Worker, TrustedWorkerAddress};
|
use dom::worker::{Worker, TrustedWorkerAddress};
|
||||||
|
@ -142,6 +143,16 @@ impl<'a> DedicatedWorkerGlobalScopeMethods for JSRef<'a, DedicatedWorkerGlobalSc
|
||||||
let ScriptChan(ref sender) = self.parent_sender;
|
let ScriptChan(ref sender) = self.parent_sender;
|
||||||
sender.send(WorkerPostMessage(*self.worker, message));
|
sender.send(WorkerPostMessage(*self.worker, message));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn GetOnmessage(&self) -> Option<EventHandlerNonNull> {
|
||||||
|
let eventtarget: &JSRef<EventTarget> = EventTargetCast::from_ref(self);
|
||||||
|
eventtarget.get_event_handler_common("message")
|
||||||
|
}
|
||||||
|
|
||||||
|
fn SetOnmessage(&self, listener: Option<EventHandlerNonNull>) {
|
||||||
|
let eventtarget: &JSRef<EventTarget> = EventTargetCast::from_ref(self);
|
||||||
|
eventtarget.set_event_handler_common("message", listener)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
trait PrivateDedicatedWorkerGlobalScopeHelpers {
|
trait PrivateDedicatedWorkerGlobalScopeHelpers {
|
||||||
|
|
|
@ -7,5 +7,5 @@
|
||||||
/*sealed*/ interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
|
/*sealed*/ interface DedicatedWorkerGlobalScope : WorkerGlobalScope {
|
||||||
//void postMessage(any message, optional sequence<Transferable> transfer);
|
//void postMessage(any message, optional sequence<Transferable> transfer);
|
||||||
void postMessage(DOMString message);
|
void postMessage(DOMString message);
|
||||||
// attribute EventHandler onmessage;
|
attribute EventHandler onmessage;
|
||||||
};
|
};
|
||||||
|
|
|
@ -16,6 +16,6 @@ interface Worker : EventTarget {
|
||||||
|
|
||||||
//void postMessage(any message/*, optional sequence<Transferable> transfer*/);
|
//void postMessage(any message/*, optional sequence<Transferable> transfer*/);
|
||||||
void postMessage(DOMString message);
|
void postMessage(DOMString message);
|
||||||
// attribute EventHandler onmessage;
|
attribute EventHandler onmessage;
|
||||||
};
|
};
|
||||||
Worker implements AbstractWorker;
|
Worker implements AbstractWorker;
|
||||||
|
|
|
@ -4,13 +4,14 @@
|
||||||
|
|
||||||
use dom::bindings::codegen::Bindings::WorkerBinding;
|
use dom::bindings::codegen::Bindings::WorkerBinding;
|
||||||
use dom::bindings::codegen::Bindings::WorkerBinding::WorkerMethods;
|
use dom::bindings::codegen::Bindings::WorkerBinding::WorkerMethods;
|
||||||
|
use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull;
|
||||||
use dom::bindings::codegen::InheritTypes::EventTargetCast;
|
use dom::bindings::codegen::InheritTypes::EventTargetCast;
|
||||||
use dom::bindings::error::{Fallible, Syntax};
|
use dom::bindings::error::{Fallible, Syntax};
|
||||||
use dom::bindings::global::{GlobalRef, GlobalField};
|
use dom::bindings::global::{GlobalRef, GlobalField};
|
||||||
use dom::bindings::js::{JS, JSRef, Temporary};
|
use dom::bindings::js::{JS, JSRef, Temporary};
|
||||||
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
|
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
|
||||||
use dom::dedicatedworkerglobalscope::DedicatedWorkerGlobalScope;
|
use dom::dedicatedworkerglobalscope::DedicatedWorkerGlobalScope;
|
||||||
use dom::eventtarget::{EventTarget, WorkerTypeId};
|
use dom::eventtarget::{EventTarget, EventTargetHelpers, WorkerTypeId};
|
||||||
use dom::messageevent::MessageEvent;
|
use dom::messageevent::MessageEvent;
|
||||||
use script_task::{ScriptChan, DOMMessage};
|
use script_task::{ScriptChan, DOMMessage};
|
||||||
|
|
||||||
|
@ -119,6 +120,16 @@ impl<'a> WorkerMethods for JSRef<'a, Worker> {
|
||||||
let ScriptChan(ref sender) = self.sender;
|
let ScriptChan(ref sender) = self.sender;
|
||||||
sender.send(DOMMessage(message));
|
sender.send(DOMMessage(message));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn GetOnmessage(&self) -> Option<EventHandlerNonNull> {
|
||||||
|
let eventtarget: &JSRef<EventTarget> = EventTargetCast::from_ref(self);
|
||||||
|
eventtarget.get_event_handler_common("message")
|
||||||
|
}
|
||||||
|
|
||||||
|
fn SetOnmessage(&self, listener: Option<EventHandlerNonNull>) {
|
||||||
|
let eventtarget: &JSRef<EventTarget> = EventTargetCast::from_ref(self);
|
||||||
|
eventtarget.set_event_handler_common("message", listener)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Reflectable for Worker {
|
impl Reflectable for Worker {
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
[open-url-worker-simple.htm]
|
|
||||||
type: testharness
|
|
||||||
expected: TIMEOUT
|
|
||||||
[XMLHttpRequest: relative URLs in worker scripts resolved by script URL]
|
|
||||||
expected: NOTRUN
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue