mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Auto merge of #26983 - jdm:websocket-panic, r=nox
Silently ignore failures to queue websocket tasks - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #26977 - [x] There are tests for these changes
This commit is contained in:
commit
1dc41b3277
4 changed files with 41 additions and 14 deletions
|
@ -68,7 +68,7 @@ mod close_code {
|
|||
pub const TLS_FAILED: u16 = 1015;
|
||||
}
|
||||
|
||||
pub fn close_the_websocket_connection(
|
||||
fn close_the_websocket_connection(
|
||||
address: Trusted<WebSocket>,
|
||||
task_source: &WebsocketTaskSource,
|
||||
canceller: &TaskCanceller,
|
||||
|
@ -81,12 +81,10 @@ pub fn close_the_websocket_connection(
|
|||
code: code,
|
||||
reason: Some(reason),
|
||||
};
|
||||
task_source
|
||||
.queue_with_canceller(close_task, &canceller)
|
||||
.unwrap();
|
||||
let _ = task_source.queue_with_canceller(close_task, &canceller);
|
||||
}
|
||||
|
||||
pub fn fail_the_websocket_connection(
|
||||
fn fail_the_websocket_connection(
|
||||
address: Trusted<WebSocket>,
|
||||
task_source: &WebsocketTaskSource,
|
||||
canceller: &TaskCanceller,
|
||||
|
@ -97,9 +95,7 @@ pub fn fail_the_websocket_connection(
|
|||
code: Some(close_code::ABNORMAL),
|
||||
reason: None,
|
||||
};
|
||||
task_source
|
||||
.queue_with_canceller(close_task, &canceller)
|
||||
.unwrap();
|
||||
let _ = task_source.queue_with_canceller(close_task, &canceller);
|
||||
}
|
||||
|
||||
#[dom_struct]
|
||||
|
@ -220,18 +216,14 @@ impl WebSocket {
|
|||
address: address.clone(),
|
||||
protocol_in_use,
|
||||
};
|
||||
task_source
|
||||
.queue_with_canceller(open_thread, &canceller)
|
||||
.unwrap();
|
||||
let _ = task_source.queue_with_canceller(open_thread, &canceller);
|
||||
},
|
||||
WebSocketNetworkEvent::MessageReceived(message) => {
|
||||
let message_thread = MessageReceivedTask {
|
||||
address: address.clone(),
|
||||
message: message,
|
||||
};
|
||||
task_source
|
||||
.queue_with_canceller(message_thread, &canceller)
|
||||
.unwrap();
|
||||
let _ = task_source.queue_with_canceller(message_thread, &canceller);
|
||||
},
|
||||
WebSocketNetworkEvent::Fail => {
|
||||
fail_the_websocket_connection(address.clone(), &task_source, &canceller);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue