diff options
author | Ms2ger <ms2ger@gmail.com> | 2015-07-14 18:14:47 +0200 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2015-07-16 12:43:10 +0200 |
commit | 072fdf695bc2ed57264039e6d8f6bd1582b9b90a (patch) | |
tree | 3e4926af542355df6ad8ce441a02595076254ce4 /components/script/dom/websocket.rs | |
parent | cd741e681d0a3dd3a90e4ee906dabf75b2926e08 (diff) | |
download | servo-072fdf695bc2ed57264039e6d8f6bd1582b9b90a.tar.gz servo-072fdf695bc2ed57264039e6d8f6bd1582b9b90a.zip |
Handle Send correctly if readyState is not Open.
Diffstat (limited to 'components/script/dom/websocket.rs')
-rw-r--r-- | components/script/dom/websocket.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs index bad0e1a8e7f..94385c5ba89 100644 --- a/components/script/dom/websocket.rs +++ b/components/script/dom/websocket.rs @@ -169,8 +169,15 @@ impl<'a> WebSocketMethods for &'a WebSocket { } fn Send(self, data: Option<USVString>) -> Fallible<()> { - if self.ready_state.get() == WebSocketRequestState::Connecting { - return Err(Error::InvalidState); + match self.ready_state.get() { + WebSocketRequestState::Connecting => { + return Err(Error::InvalidState); + }, + WebSocketRequestState::Open => (), + WebSocketRequestState::Closing | WebSocketRequestState::Closed => { + // TODO: Update bufferedAmount. + return Ok(()); + } } /*TODO: This is not up to spec see http://html.spec.whatwg.org/multipage/comms.html search for |