diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-02-05 08:21:37 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2016-02-05 08:21:37 +0530 |
commit | b35801bf291466a4db4eb805fc86aba20a29545e (patch) | |
tree | f3f20c5383b705cf140358dd7c48c3c1a1d5ac2d | |
parent | 87aaa5ffe0ca7da8771883ea40d04d7c1449eea9 (diff) | |
parent | 396533c47971d1fad1d38a5e14800b7c107e704e (diff) | |
download | servo-b35801bf291466a4db4eb805fc86aba20a29545e.tar.gz servo-b35801bf291466a4db4eb805fc86aba20a29545e.zip |
Auto merge of #9521 - Manishearth:ws-worker, r=Ms2ger
Make websockets work in a worker scope
r? @jdm
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9521)
<!-- Reviewable:end -->
-rw-r--r-- | components/script/dom/websocket.rs | 4 | ||||
-rw-r--r-- | tests/wpt/metadata/MANIFEST.json | 11 | ||||
-rw-r--r-- | tests/wpt/web-platform-tests/websockets/Send-data.worker.js | 21 | ||||
-rw-r--r-- | tests/wpt/web-platform-tests/websockets/websocket.js | 2 |
4 files changed, 34 insertions, 4 deletions
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs index c9658a1b5c2..c8544698ecb 100644 --- a/components/script/dom/websocket.rs +++ b/components/script/dom/websocket.rs @@ -8,7 +8,6 @@ use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull; use dom::bindings::codegen::Bindings::LocationBinding::LocationMethods; use dom::bindings::codegen::Bindings::WebSocketBinding; use dom::bindings::codegen::Bindings::WebSocketBinding::{BinaryType, WebSocketMethods}; -use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; use dom::bindings::codegen::UnionTypes::StringOrStringSequence::{self, eString, eStringSequence}; use dom::bindings::conversions::{ToJSValConvertible}; use dom::bindings::error::{Error, Fallible}; @@ -24,6 +23,7 @@ use dom::closeevent::CloseEvent; use dom::event::{Event, EventBubbles, EventCancelable}; use dom::eventtarget::EventTarget; use dom::messageevent::MessageEvent; +use dom::urlhelper::UrlHelper; use ipc_channel::ipc::{self, IpcReceiver, IpcSender}; use js::jsapi::{JSAutoCompartment, JSAutoRequest, RootedValue}; use js::jsapi::{JS_GetArrayBufferData, JS_NewArrayBuffer}; @@ -233,7 +233,7 @@ impl WebSocket { } // Step 6: Origin. - let origin = global.as_window().Location().Origin().0; + let origin = UrlHelper::Origin(&global.get_url()).0; // Step 7. let ws = WebSocket::new(global, resource_url.clone()); diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 9dda2cb2e02..fac71bb940d 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -33717,7 +33717,16 @@ }, "local_changes": { "deleted": [], - "items": {}, + "items": { + "testharness": { + "websockets/Send-data.worker.js": [ + { + "path": "websockets/Send-data.worker.js", + "url": "/websockets/Send-data.worker" + } + ] + } + }, "reftest_nodes": {} }, "reftest_nodes": { diff --git a/tests/wpt/web-platform-tests/websockets/Send-data.worker.js b/tests/wpt/web-platform-tests/websockets/Send-data.worker.js new file mode 100644 index 00000000000..f03776fb323 --- /dev/null +++ b/tests/wpt/web-platform-tests/websockets/Send-data.worker.js @@ -0,0 +1,21 @@ +importScripts("/resources/testharness.js"); +importScripts('websocket.js?pipe=sub') + +var data = "test data"; + +async_test(function(t) { + + var wsocket = CreateWebSocket(false, false, false); + + wsocket.addEventListener('open', function (e) { + wsocket.send(data) + }, true) + + wsocket.addEventListener('message', t.step_func_done(function(e) { + assert_equals(e.data, data); + done(); + }), true); + +}, "W3C WebSocket API - Send data on a WebSocket in a Worker") + + diff --git a/tests/wpt/web-platform-tests/websockets/websocket.js b/tests/wpt/web-platform-tests/websockets/websocket.js index 79b7bd59c58..4b44a41608e 100644 --- a/tests/wpt/web-platform-tests/websockets/websocket.js +++ b/tests/wpt/web-platform-tests/websockets/websocket.js @@ -25,7 +25,7 @@ var closeCode; var urlToOpen; function IsWebSocket() { - if (!window.WebSocket) { + if (!self.WebSocket) { assert_true(false, "Browser does not support WebSocket"); } } |