diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-01-22 04:25:49 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2016-01-22 04:25:49 +0530 |
commit | 1c6fb0f04e0cf305f4e1f75371be84944b1e5518 (patch) | |
tree | 366cfca5048cd2923e98b0e9edd215c3da8cd4dd /components/script/dom/websocket.rs | |
parent | 0dd024e492cff1bbbbceeb295c0e220d9dd045fc (diff) | |
parent | 1ee9ccba215535dfc1af93a3579c5bca4a21706f (diff) | |
download | servo-1c6fb0f04e0cf305f4e1f75371be84944b1e5518.tar.gz servo-1c6fb0f04e0cf305f4e1f75371be84944b1e5518.zip |
Auto merge of #9367 - Chandler:url_origin, r=jdm
Add origin to Location and Url API.
The origin field is part of location and url spec but hasn't been implemented in servo yet.
https://html.spec.whatwg.org/multipage/browsers.html#dom-location-origin
https://url.spec.whatwg.org/#dom-url-origin
All of the logic to calculate the url origin exists in https://github.com/servo/rust-url
This review threads through rust-url origin implementation into the servo location and url API.
This fixes one websockets test:
servo/tests/wpt/web-platform-tests/websockets/opening-handshake/003.html
testing done:
./mach test-wpt tests/wpt/web-platform-tests/websockets/
I'm brand new to rust so feedback is appreciated, thanks!
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9367)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/websocket.rs')
-rw-r--r-- | components/script/dom/websocket.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs index 36456cd02ff..d70b633f0d5 100644 --- a/components/script/dom/websocket.rs +++ b/components/script/dom/websocket.rs @@ -5,8 +5,10 @@ use dom::bindings::cell::DOMRefCell; use dom::bindings::codegen::Bindings::BlobBinding::BlobMethods; 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}; @@ -234,13 +236,12 @@ impl WebSocket { } // Step 6: Origin. + let origin = global.as_window().Location().Origin().0; // Step 7. let ws = WebSocket::new(global, resource_url.clone()); let address = Trusted::new(ws.r(), global.networking_thread_source()); - let origin = global.get_url().serialize(); - let connect_data = WebSocketConnectData { resource_url: resource_url.clone(), origin: origin, |