aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/websocket.rs
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2015-07-14 18:14:47 +0200
committerMs2ger <ms2ger@gmail.com>2015-07-16 12:43:10 +0200
commit072fdf695bc2ed57264039e6d8f6bd1582b9b90a (patch)
tree3e4926af542355df6ad8ce441a02595076254ce4 /components/script/dom/websocket.rs
parentcd741e681d0a3dd3a90e4ee906dabf75b2926e08 (diff)
downloadservo-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.rs11
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