From 35d5328271bc10b18a418d37933efd168bed09a4 Mon Sep 17 00:00:00 2001 From: Bogdan Cuza Date: Thu, 2 Jul 2015 22:58:39 +0300 Subject: [PATCH 1/2] Fix #6379 --- components/script/dom/websocket.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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(); From 15102d9c534f319adb8711ddb1e111dcfaf537cd Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Mon, 13 Jul 2015 12:23:54 -0400 Subject: [PATCH 2/2] Update web-platform-tests expected data --- tests/wpt/metadata/websockets/constructor/010.html.ini | 5 ++++- tests/wpt/metadata/websockets/constructor/011.html.ini | 5 ++++- tests/wpt/metadata/websockets/constructor/012.html.ini | 5 ++++- tests/wpt/metadata/websockets/cookies/002.html.ini | 4 +++- tests/wpt/metadata/websockets/cookies/004.html.ini | 3 --- tests/wpt/metadata/websockets/cookies/005.html.ini | 5 ++++- tests/wpt/metadata/websockets/cookies/007.html.ini | 4 +++- tests/wpt/metadata/websockets/opening-handshake/005.html.ini | 5 ++++- 8 files changed, 26 insertions(+), 10 deletions(-) delete mode 100644 tests/wpt/metadata/websockets/cookies/004.html.ini diff --git a/tests/wpt/metadata/websockets/constructor/010.html.ini b/tests/wpt/metadata/websockets/constructor/010.html.ini index 0054c6ec395..d16a207d619 100644 --- a/tests/wpt/metadata/websockets/constructor/010.html.ini +++ b/tests/wpt/metadata/websockets/constructor/010.html.ini @@ -1,3 +1,6 @@ [010.html] type: testharness - expected: CRASH + expected: TIMEOUT + [WebSockets: protocol in response but no requested protocol] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/websockets/constructor/011.html.ini b/tests/wpt/metadata/websockets/constructor/011.html.ini index 479eca88ffd..6062f84bb80 100644 --- a/tests/wpt/metadata/websockets/constructor/011.html.ini +++ b/tests/wpt/metadata/websockets/constructor/011.html.ini @@ -1,3 +1,6 @@ [011.html] type: testharness - expected: CRASH + expected: TIMEOUT + [WebSockets: protocol mismatch] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/websockets/constructor/012.html.ini b/tests/wpt/metadata/websockets/constructor/012.html.ini index c28b9910019..3c79462be91 100644 --- a/tests/wpt/metadata/websockets/constructor/012.html.ini +++ b/tests/wpt/metadata/websockets/constructor/012.html.ini @@ -1,3 +1,6 @@ [012.html] type: testharness - expected: CRASH + expected: TIMEOUT + [WebSockets: no protocol in response] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/websockets/cookies/002.html.ini b/tests/wpt/metadata/websockets/cookies/002.html.ini index fe7c6057cbd..a5cc7f98afa 100644 --- a/tests/wpt/metadata/websockets/cookies/002.html.ini +++ b/tests/wpt/metadata/websockets/cookies/002.html.ini @@ -1,3 +1,5 @@ [002.html] type: testharness - expected: CRASH + [WebSockets: Set-Cookie in response] + expected: FAIL + diff --git a/tests/wpt/metadata/websockets/cookies/004.html.ini b/tests/wpt/metadata/websockets/cookies/004.html.ini deleted file mode 100644 index 58468cab4ee..00000000000 --- a/tests/wpt/metadata/websockets/cookies/004.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[004.html] - type: testharness - expected: CRASH diff --git a/tests/wpt/metadata/websockets/cookies/005.html.ini b/tests/wpt/metadata/websockets/cookies/005.html.ini index 3c0649a3bd8..079a6da0567 100644 --- a/tests/wpt/metadata/websockets/cookies/005.html.ini +++ b/tests/wpt/metadata/websockets/cookies/005.html.ini @@ -1,3 +1,6 @@ [005.html] type: testharness - expected: CRASH + expected: TIMEOUT + [WebSockets: setting HttpOnly cookies in ws response, checking ws request] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/websockets/cookies/007.html.ini b/tests/wpt/metadata/websockets/cookies/007.html.ini index 323bf776b2e..437c6b99b43 100644 --- a/tests/wpt/metadata/websockets/cookies/007.html.ini +++ b/tests/wpt/metadata/websockets/cookies/007.html.ini @@ -1,3 +1,5 @@ [007.html] type: testharness - expected: CRASH + [WebSockets: when to process set-cookie fields in ws response] + expected: FAIL + diff --git a/tests/wpt/metadata/websockets/opening-handshake/005.html.ini b/tests/wpt/metadata/websockets/opening-handshake/005.html.ini index 3c0649a3bd8..392bf799295 100644 --- a/tests/wpt/metadata/websockets/opening-handshake/005.html.ini +++ b/tests/wpt/metadata/websockets/opening-handshake/005.html.ini @@ -1,3 +1,6 @@ [005.html] type: testharness - expected: CRASH + expected: TIMEOUT + [WebSockets: proper first line] + expected: TIMEOUT +