diff options
author | Ms2ger <ms2ger@gmail.com> | 2015-07-13 14:21:18 +0200 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2015-07-13 14:21:18 +0200 |
commit | 4c0c60a4d61cc1024ca55cd15b20e77fdb7bd578 (patch) | |
tree | febc7d87a8d249cb4424746f7fe09b15dcf9795a /components/script/dom/websocket.rs | |
parent | c3fc943c6627b0248e1e61b106a964131209cb6d (diff) | |
download | servo-4c0c60a4d61cc1024ca55cd15b20e77fdb7bd578.tar.gz servo-4c0c60a4d61cc1024ca55cd15b20e77fdb7bd578.zip |
Return the parsed URL from WebSocket#url.
Diffstat (limited to 'components/script/dom/websocket.rs')
-rw-r--r-- | components/script/dom/websocket.rs | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs index 39c627b72bd..e676e9d8fcd 100644 --- a/components/script/dom/websocket.rs +++ b/components/script/dom/websocket.rs @@ -47,7 +47,7 @@ no_jsmanaged_fields!(Receiver<WebSocketStream>); #[dom_struct] pub struct WebSocket { eventtarget: EventTarget, - url: DOMString, + url: Url, global: GlobalField, ready_state: Cell<WebSocketRequestState>, sender: RefCell<Option<Sender<WebSocketStream>>>, @@ -101,7 +101,7 @@ fn parse_web_socket_url(url_str: &str) -> Fallible<(Url, String, u16, String, bo } impl WebSocket { - pub fn new_inherited(global: GlobalRef, url: DOMString) -> WebSocket { + pub fn new_inherited(global: GlobalRef, url: Url) -> WebSocket { WebSocket { eventtarget: EventTarget::new_inherited(EventTargetTypeId::WebSocket), url: url, @@ -121,25 +121,25 @@ impl WebSocket { } pub fn new(global: GlobalRef, url: DOMString) -> Fallible<Root<WebSocket>> { + // Step 1. + // FIXME extract the right variables once Client::connect + // implementation is fixed to follow the RFC 6455 properly. + let (url, _, _, _, _) = try!(parse_web_socket_url(&url)); + /*TODO: This constructor is only a prototype, it does not accomplish the specs defined here: http://html.spec.whatwg.org - Item 1 is already satisfied. The remaining 8 items must be satisfied. TODO: This constructor should be responsible for spawning a thread for the receive loop after ws.r().Open() - See comment */ - let ws = reflect_dom_object(box WebSocket::new_inherited(global, url), + let ws = reflect_dom_object(box WebSocket::new_inherited(global, url.clone()), global, WebSocketBinding::Wrap); - // FIXME extract the right variables once Client::connect implementation is - // fixed to follow the RFC 6455 properly - let (parsed_url, _, _, _, _) = try!(parse_web_socket_url(&ws.r().url)); - // TODO Client::connect does not conform to RFC 6455 // see https://github.com/cyderize/rust-websocket/issues/38 - let request = match Client::connect(parsed_url) { + let request = match Client::connect(url) { Ok(request) => request, Err(_) => { let global_root = ws.r().global.root(); @@ -198,7 +198,7 @@ impl<'a> WebSocketMethods for &'a WebSocket { event_handler!(error, GetOnerror, SetOnerror); fn Url(self) -> DOMString { - self.url.clone() + self.url.serialize() } fn ReadyState(self) -> u16 { |