diff options
-rw-r--r-- | components/script/dom/dedicatedworkerglobalscope.rs | 2 | ||||
-rw-r--r-- | components/script/dom/messageevent.rs | 5 | ||||
-rw-r--r-- | components/script/dom/websocket.rs | 13 | ||||
-rw-r--r-- | components/script/dom/window.rs | 1 | ||||
-rw-r--r-- | components/script/dom/worker.rs | 2 | ||||
-rw-r--r-- | tests/wpt/metadata/websockets/opening-handshake/003.html.ini | 11 |
6 files changed, 17 insertions, 17 deletions
diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs index 8ef8e5ad696..1c8c2316dde 100644 --- a/components/script/dom/dedicatedworkerglobalscope.rs +++ b/components/script/dom/dedicatedworkerglobalscope.rs @@ -313,7 +313,7 @@ impl DedicatedWorkerGlobalScope { scope.reflector().get_jsobject().get()); rooted!(in(scope.get_cx()) let mut message = UndefinedValue()); data.read(scope.upcast(), message.handle_mut()); - MessageEvent::dispatch_jsval(target, scope.upcast(), message.handle()); + MessageEvent::dispatch_jsval(target, scope.upcast(), message.handle(), None); }, WorkerScriptMsg::Common(msg) => { self.upcast::<WorkerGlobalScope>().process_event(msg); diff --git a/components/script/dom/messageevent.rs b/components/script/dom/messageevent.rs index c7cc693c7ba..f7a47488558 100644 --- a/components/script/dom/messageevent.rs +++ b/components/script/dom/messageevent.rs @@ -82,14 +82,15 @@ impl MessageEvent { impl MessageEvent { pub fn dispatch_jsval(target: &EventTarget, scope: &GlobalScope, - message: HandleValue) { + message: HandleValue, + origin: Option<&str>) { let messageevent = MessageEvent::new( scope, atom!("message"), false, false, message, - DOMString::new(), + DOMString::from(origin.unwrap_or("")), DOMString::new()); messageevent.upcast::<Event>().fire(target); } diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs index 14ff325f56d..2de8f97d98e 100644 --- a/components/script/dom/websocket.rs +++ b/components/script/dom/websocket.rs @@ -33,7 +33,7 @@ use net_traits::request::{RequestInit, RequestMode}; use profile_traits::ipc as ProfiledIpc; use script_runtime::CommonScriptMsg; use script_runtime::ScriptThreadEventCategory::WebSocketEvent; -use servo_url::ServoUrl; +use servo_url::{ImmutableOrigin, ServoUrl}; use std::borrow::ToOwned; use std::cell::Cell; use std::ptr; @@ -274,6 +274,10 @@ impl WebSocket { Ok(true) } + + pub fn origin(&self) -> ImmutableOrigin { + self.url.origin() + } } impl WebSocketMethods for WebSocket { @@ -549,7 +553,12 @@ impl TaskOnce for MessageReceivedTask { } }, } - MessageEvent::dispatch_jsval(ws.upcast(), &global, message.handle()); + MessageEvent::dispatch_jsval( + ws.upcast(), + &global, + message.handle(), + Some(&ws.origin().ascii_serialization()) + ); } } } diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index f15e2824db4..48b0861216c 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -2114,6 +2114,7 @@ impl Window { this.upcast(), this.upcast(), message_clone.handle(), + None ); }); // FIXME(nox): Why are errors silenced here? diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs index 35d8c932de4..b3ba42afb2b 100644 --- a/components/script/dom/worker.rs +++ b/components/script/dom/worker.rs @@ -130,7 +130,7 @@ impl Worker { let _ac = JSAutoCompartment::new(global.get_cx(), target.reflector().get_jsobject().get()); rooted!(in(global.get_cx()) let mut message = UndefinedValue()); data.read(&global, message.handle_mut()); - MessageEvent::dispatch_jsval(target, &global, message.handle()); + MessageEvent::dispatch_jsval(target, &global, message.handle(), None); } pub fn dispatch_simple_error(address: TrustedWorkerAddress) { diff --git a/tests/wpt/metadata/websockets/opening-handshake/003.html.ini b/tests/wpt/metadata/websockets/opening-handshake/003.html.ini deleted file mode 100644 index 1a7c50506a5..00000000000 --- a/tests/wpt/metadata/websockets/opening-handshake/003.html.ini +++ /dev/null @@ -1,11 +0,0 @@ -[003.html] - type: testharness - [WebSockets: origin] - expected: FAIL - - -[003.html?wss] - type: testharness - [WebSockets: origin] - expected: FAIL - |