diff options
author | Paul Faria <pauldfaria@gmail.com> | 2015-05-16 14:10:10 -0400 |
---|---|---|
committer | Paul Faria <pauldfaria@gmail.com> | 2015-05-19 23:59:22 -0400 |
commit | 66e9b33a527b10f1f775f2f0aeab34a07150ecda (patch) | |
tree | 2902fe05badbff615c8c5c98bba58328d0273fb4 /components/script/dom | |
parent | c51e9f04559f04f1e820b792261e1653c6869ee5 (diff) | |
download | servo-66e9b33a527b10f1f775f2f0aeab34a07150ecda.tar.gz servo-66e9b33a527b10f1f775f2f0aeab34a07150ecda.zip |
Fixed definition of Close and Send in WebSocket.webidl and updated implementation in websocket.rs.
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/webidls/WebSocket.webidl | 6 | ||||
-rw-r--r-- | components/script/dom/websocket.rs | 11 |
2 files changed, 9 insertions, 8 deletions
diff --git a/components/script/dom/webidls/WebSocket.webidl b/components/script/dom/webidls/WebSocket.webidl index 6067ca30c4f..3fd2fcd403d 100644 --- a/components/script/dom/webidls/WebSocket.webidl +++ b/components/script/dom/webidls/WebSocket.webidl @@ -21,13 +21,13 @@ interface WebSocket : EventTarget { attribute EventHandler onclose; //readonly attribute DOMString extensions; //readonly attribute DOMString protocol; - //[Throws] void close([Clamp] optional unsigned short code, optional DOMString reason); //Clamp doesn't work - [Throws] void close(optional unsigned short code, optional DOMString reason); //No clamp version - works + //[Throws] void close([Clamp] optional unsigned short code, optional USVString reason); //Clamp doesn't work + [Throws] void close(optional unsigned short code, optional USVString reason); //No clamp version - works //messaging //attribute EventHandler onmessage; //attribute BinaryType binaryType; - [Throws] void send(optional DOMString data); + [Throws] void send(optional USVString data); //void send(Blob data); //void send(ArrayBuffer data); //void send(ArrayBufferView data); diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs index 75c868b50db..c9061457a81 100644 --- a/components/script/dom/websocket.rs +++ b/components/script/dom/websocket.rs @@ -14,6 +14,7 @@ use dom::bindings::error::Error::Syntax; use dom::bindings::global::{GlobalField, GlobalRef}; use dom::bindings::js::{Temporary, JSRef, Rootable}; use dom::bindings::refcounted::Trusted; +use dom::bindings::str::USVString; use dom::bindings::trace::JSTraceable; use dom::bindings::utils::reflect_dom_object; use dom::closeevent::CloseEvent; @@ -153,7 +154,7 @@ impl<'a> WebSocketMethods for JSRef<'a, WebSocket> { self.ready_state.get() as u16 } - fn Send(self, data: Option<DOMString>)-> Fallible<()>{ + fn Send(self, data: Option<USVString>)-> Fallible<()>{ /*TODO: This is not up to spec see http://html.spec.whatwg.org/multipage/comms.html search for "If argument is a string" TODO: Need to buffer data TODO: bufferedAmount attribute returns the size of the buffer in bytes - @@ -168,11 +169,11 @@ impl<'a> WebSocketMethods for JSRef<'a, WebSocket> { let _ = my_sender.send_message(Message::Close(None)); return Ok(()); } - let _ = my_sender.send_message(Message::Text(data.unwrap())); + let _ = my_sender.send_message(Message::Text(data.unwrap().0)); return Ok(()) } - fn Close(self, code: Option<u16>, reason: Option<DOMString>) -> Fallible<()>{ + fn Close(self, code: Option<u16>, reason: Option<USVString>) -> Fallible<()>{ if let Some(code) = code { //Check code is NOT 1000 NOR in the range of 3000-4999 (inclusive) if code != 1000 && (code < 3000 || code > 4999) { @@ -180,7 +181,7 @@ impl<'a> WebSocketMethods for JSRef<'a, WebSocket> { } } if let Some(ref reason) = reason { - if reason.as_bytes().len() > 123 { //reason cannot be larger than 123 bytes + if reason.0.as_bytes().len() > 123 { //reason cannot be larger than 123 bytes return Err(Error::Syntax); } } @@ -205,7 +206,7 @@ impl<'a> WebSocketMethods for JSRef<'a, WebSocket> { self.code.set(code); } if let Some(reason) = reason { - *self.reason.borrow_mut() = reason; + *self.reason.borrow_mut() = reason.0; } self.ready_state.set(WebSocketRequestState::Closing); self.sendCloseFrame.set(true); |