aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/websocket.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs
index 0c0ab25a3ea..effa8b54112 100644
--- a/components/script/dom/websocket.rs
+++ b/components/script/dom/websocket.rs
@@ -32,6 +32,7 @@ use websocket::client::receiver::Receiver;
use websocket::stream::WebSocketStream;
use websocket::client::request::Url;
use websocket::Client;
+use websocket::header::Origin;
#[derive(JSTraceable, PartialEq, Copy, Clone)]
enum WebSocketRequestState {
@@ -139,7 +140,7 @@ impl WebSocket {
// TODO Client::connect does not conform to RFC 6455
// see https://github.com/cyderize/rust-websocket/issues/38
- let request = match Client::connect(url) {
+ let mut request = match Client::connect(url) {
Ok(request) => request,
Err(_) => {
let global_root = ws.r().global.root();
@@ -149,6 +150,7 @@ impl WebSocket {
return Ok(ws);
}
};
+ request.headers.set(Origin(global.get_url().serialize()));
let response = request.send().unwrap();
response.validate().unwrap();