mirror of
https://github.com/servo/servo.git
synced 2025-07-16 20:03:39 +01:00
Cleanup WebSocket::Send_Impl.
This commit is contained in:
parent
8b030c5177
commit
0a158967e0
1 changed files with 7 additions and 14 deletions
|
@ -296,18 +296,13 @@ impl WebSocket {
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/#dom-websocket-send
|
// https://html.spec.whatwg.org/multipage/#dom-websocket-send
|
||||||
fn Send_Impl(&self, data_byte_len: u64) -> Fallible<bool> {
|
fn Send_Impl(&self, data_byte_len: u64) -> Fallible<bool> {
|
||||||
|
let return_after_buffer = match self.ready_state.get() {
|
||||||
let mut return_after_buffer = false;
|
|
||||||
|
|
||||||
match self.ready_state.get() {
|
|
||||||
WebSocketRequestState::Connecting => {
|
WebSocketRequestState::Connecting => {
|
||||||
return Err(Error::InvalidState);
|
return Err(Error::InvalidState);
|
||||||
},
|
},
|
||||||
WebSocketRequestState::Open => (),
|
WebSocketRequestState::Open => false,
|
||||||
WebSocketRequestState::Closing | WebSocketRequestState::Closed => {
|
WebSocketRequestState::Closing | WebSocketRequestState::Closed => true,
|
||||||
return_after_buffer = true;
|
};
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let global = self.global.root();
|
let global = self.global.root();
|
||||||
let chan = global.r().script_chan();
|
let chan = global.r().script_chan();
|
||||||
|
@ -315,23 +310,21 @@ impl WebSocket {
|
||||||
|
|
||||||
let new_buffer_amount = (self.buffered_amount.get() as u64) + data_byte_len;
|
let new_buffer_amount = (self.buffered_amount.get() as u64) + data_byte_len;
|
||||||
if new_buffer_amount > (u32::max_value() as u64) {
|
if new_buffer_amount > (u32::max_value() as u64) {
|
||||||
|
|
||||||
self.buffered_amount.set(u32::max_value());
|
self.buffered_amount.set(u32::max_value());
|
||||||
self.full.set(true);
|
self.full.set(true);
|
||||||
|
|
||||||
let _ = self.Close(None, None);
|
let _ = self.Close(None, None);
|
||||||
return Ok(false);
|
return Ok(false);
|
||||||
|
|
||||||
} else {
|
|
||||||
self.buffered_amount.set(new_buffer_amount as u32);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.buffered_amount.set(new_buffer_amount as u32);
|
||||||
|
|
||||||
if return_after_buffer {
|
if return_after_buffer {
|
||||||
return Ok(false);
|
return Ok(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if !self.clearing_buffer.get() &&
|
if !self.clearing_buffer.get() && self.ready_state.get() == WebSocketRequestState::Open {
|
||||||
self.ready_state.get() == WebSocketRequestState::Open {
|
|
||||||
self.clearing_buffer.set(true);
|
self.clearing_buffer.set(true);
|
||||||
|
|
||||||
let task = box BufferedAmountTask {
|
let task = box BufferedAmountTask {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue