diff options
author | Josh Matthews <josh@joshmatthews.net> | 2020-02-25 12:43:12 -0500 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2020-02-25 13:53:15 -0500 |
commit | ba83f0ffa69705b85289063e47a2e3bb2bb2e669 (patch) | |
tree | 543941fa7443af97f4b58636b44a2a8694e50040 | |
parent | 5a55ae1b13497d1ae78ff01596f4342dce16d9be (diff) | |
download | servo-ba83f0ffa69705b85289063e47a2e3bb2bb2e669.tar.gz servo-ba83f0ffa69705b85289063e47a2e3bb2bb2e669.zip |
Don't panic when dealing with disconnected websockets.
7 files changed, 17 insertions, 30 deletions
diff --git a/components/net/websocket_loader.rs b/components/net/websocket_loader.rs index fb24e6566a4..c4a8483837a 100644 --- a/components/net/websocket_loader.rs +++ b/components/net/websocket_loader.rs @@ -268,21 +268,31 @@ pub fn init( let dom_action = message.to().expect("Ws dom_action message to deserialize"); match dom_action { WebSocketDomAction::SendMessage(MessageData::Text(data)) => { - ws_sender.send(Message::text(data)).unwrap(); + if let Err(e) = ws_sender.send(Message::text(data)) { + warn!("Error sending websocket message: {:?}", e); + } }, WebSocketDomAction::SendMessage(MessageData::Binary(data)) => { - ws_sender.send(Message::binary(data)).unwrap(); + if let Err(e) = ws_sender.send(Message::binary(data)) { + warn!("Error sending websocket message: {:?}", e); + } }, WebSocketDomAction::Close(code, reason) => { if !initiated_close.fetch_or(true, Ordering::SeqCst) { match code { - Some(code) => ws_sender - .close_with_reason( + Some(code) => { + if let Err(e) = ws_sender.close_with_reason( code.into(), reason.unwrap_or("".to_owned()), - ) - .unwrap(), - None => ws_sender.close(CloseCode::Status).unwrap(), + ) { + warn!("Error closing websocket: {:?}", e); + } + }, + None => { + if let Err(e) = ws_sender.close(CloseCode::Status) { + warn!("Error closing websocket: {:?}", e); + } + }, }; } }, diff --git a/tests/wpt/metadata/websockets/constructor/009.html.ini b/tests/wpt/metadata/websockets/constructor/009.html.ini deleted file mode 100644 index cafe256b18c..00000000000 --- a/tests/wpt/metadata/websockets/constructor/009.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[009.html?wss] - expected: TIMEOUT - -[009.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/websockets/constructor/022.html.ini b/tests/wpt/metadata/websockets/constructor/022.html.ini deleted file mode 100644 index da02a1678d5..00000000000 --- a/tests/wpt/metadata/websockets/constructor/022.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[022.html] - expected: TIMEOUT - -[022.html?wss] - expected: TIMEOUT diff --git a/tests/wpt/metadata/websockets/cookies/005.html.ini b/tests/wpt/metadata/websockets/cookies/005.html.ini index 83aee6d14e4..03e42d20a06 100644 --- a/tests/wpt/metadata/websockets/cookies/005.html.ini +++ b/tests/wpt/metadata/websockets/cookies/005.html.ini @@ -4,4 +4,3 @@ [005.html?wss] type: testharness - expected: TIMEOUT diff --git a/tests/wpt/metadata/websockets/opening-handshake/003-sets-origin.worker.js.ini b/tests/wpt/metadata/websockets/opening-handshake/003-sets-origin.worker.js.ini deleted file mode 100644 index bf535e0993d..00000000000 --- a/tests/wpt/metadata/websockets/opening-handshake/003-sets-origin.worker.js.ini +++ /dev/null @@ -1,2 +0,0 @@ -[003-sets-origin.worker.html] - expected: CRASH diff --git a/tests/wpt/metadata/websockets/opening-handshake/003.html.ini b/tests/wpt/metadata/websockets/opening-handshake/003.html.ini deleted file mode 100644 index 44f502faaa6..00000000000 --- a/tests/wpt/metadata/websockets/opening-handshake/003.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[003.html?wss] - expected: TIMEOUT - -[003.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/websockets/opening-handshake/005.html.ini b/tests/wpt/metadata/websockets/opening-handshake/005.html.ini deleted file mode 100644 index 1afd2545cd2..00000000000 --- a/tests/wpt/metadata/websockets/opening-handshake/005.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[005.html?wss] - expected: TIMEOUT - -[005.html] - expected: TIMEOUT |