aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2018-08-22 15:53:26 -0400
committerGitHub <noreply@github.com>2018-08-22 15:53:26 -0400
commitaac4a3485f1080b43485a4349cbcdfd9bae09767 (patch)
tree65046195a031fef99ffdac281192e8247840b95e /components/script
parent73df3ad2ea27c562311993599e1af9f9b4232ee9 (diff)
parenta1925aab52bee832e67c8178df6144ec38fa1845 (diff)
downloadservo-aac4a3485f1080b43485a4349cbcdfd9bae09767.tar.gz
servo-aac4a3485f1080b43485a4349cbcdfd9bae09767.zip
Auto merge of #21430 - Eijebong:ws-origin, r=jdm
Properly set the origin on websocket messages <!-- Reviewable:start --> This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21430) <!-- Reviewable:end -->
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/dedicatedworkerglobalscope.rs2
-rw-r--r--components/script/dom/messageevent.rs5
-rw-r--r--components/script/dom/websocket.rs13
-rw-r--r--components/script/dom/window.rs1
-rw-r--r--components/script/dom/worker.rs2
5 files changed, 17 insertions, 6 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) {