diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs index e560f788278..d04ea7f11de 100644 --- a/components/script/dom/dedicatedworkerglobalscope.rs +++ b/components/script/dom/dedicatedworkerglobalscope.rs @@ -94,10 +94,11 @@ impl ScriptChan for WorkerThreadWorkerChan { } impl ScriptPort for Receiver<(TrustedWorkerAddress, WorkerScriptMsg)> { - fn recv(&self) -> CommonScriptMsg { - match self.recv().unwrap().1 { - WorkerScriptMsg::Common(script_msg) => script_msg, - WorkerScriptMsg::DOMMessage(_) => panic!("unexpected worker event message!"), + fn recv(&self) -> Result { + match self.recv().map(|(_, msg)| msg) { + Ok(WorkerScriptMsg::Common(script_msg)) => Ok(script_msg), + Ok(WorkerScriptMsg::DOMMessage(_)) => panic!("unexpected worker event message!"), + Err(_) => Err(()), } } } diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index 20a729c70c0..31833912795 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -1337,7 +1337,7 @@ impl XMLHttpRequest { if let Some(script_port) = script_port { loop { - global.process_event(script_port.recv()); + global.process_event(script_port.recv().unwrap()); let context = context.lock().unwrap(); let sync_status = context.sync_status.borrow(); if let Some(ref status) = *sync_status { diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs index c591cd955a3..1f6adc177c1 100644 --- a/components/script/script_thread.rs +++ b/components/script/script_thread.rs @@ -282,35 +282,37 @@ impl OpaqueSender for Box { /// APIs that need to abstract over multiple kinds of event loops (worker/main thread) with /// different Receiver interfaces. pub trait ScriptPort { - fn recv(&self) -> CommonScriptMsg; + fn recv(&self) -> Result; } impl ScriptPort for Receiver { - fn recv(&self) -> CommonScriptMsg { - self.recv().unwrap() + fn recv(&self) -> Result { + self.recv().map_err(|_| ()) } } impl ScriptPort for Receiver { - fn recv(&self) -> CommonScriptMsg { - match self.recv().unwrap() { - MainThreadScriptMsg::Common(script_msg) => script_msg, - _ => panic!("unexpected main thread event message!") + fn recv(&self) -> Result { + match self.recv() { + Ok(MainThreadScriptMsg::Common(script_msg)) => Ok(script_msg), + Ok(_) => panic!("unexpected main thread event message!"), + _ => Err(()), } } } impl ScriptPort for Receiver<(TrustedWorkerAddress, CommonScriptMsg)> { - fn recv(&self) -> CommonScriptMsg { - self.recv().unwrap().1 + fn recv(&self) -> Result { + self.recv().map(|(_, msg)| msg).map_err(|_| ()) } } impl ScriptPort for Receiver<(TrustedWorkerAddress, MainThreadScriptMsg)> { - fn recv(&self) -> CommonScriptMsg { - match self.recv().unwrap().1 { - MainThreadScriptMsg::Common(script_msg) => script_msg, - _ => panic!("unexpected main thread event message!") + fn recv(&self) -> Result { + match self.recv().map(|(_, msg)| msg) { + Ok(MainThreadScriptMsg::Common(script_msg)) => Ok(script_msg), + Ok(_) => panic!("unexpected main thread event message!"), + _ => Err(()), } } }