mirror of
https://github.com/servo/servo.git
synced 2025-08-05 05:30:08 +01:00
script: Don't panic when IPC WebRender APIs fail during shutdown.
This commit is contained in:
parent
c88bea8d93
commit
125bfceafd
2 changed files with 11 additions and 5 deletions
|
@ -213,7 +213,10 @@ impl VideoFrameRenderer for MediaFrameRenderer {
|
||||||
Some((ref mut image_key, ref mut width, ref mut height)) => {
|
Some((ref mut image_key, ref mut width, ref mut height)) => {
|
||||||
self.old_frame = Some(*image_key);
|
self.old_frame = Some(*image_key);
|
||||||
|
|
||||||
let new_image_key = self.api.generate_image_key();
|
let new_image_key = match self.api.generate_image_key() {
|
||||||
|
Ok(key) => key,
|
||||||
|
Err(()) => return,
|
||||||
|
};
|
||||||
|
|
||||||
/* update current_frame */
|
/* update current_frame */
|
||||||
*image_key = new_image_key;
|
*image_key = new_image_key;
|
||||||
|
@ -243,7 +246,10 @@ impl VideoFrameRenderer for MediaFrameRenderer {
|
||||||
updates.push(ImageUpdate::AddImage(new_image_key, descriptor, image_data));
|
updates.push(ImageUpdate::AddImage(new_image_key, descriptor, image_data));
|
||||||
},
|
},
|
||||||
None => {
|
None => {
|
||||||
let image_key = self.api.generate_image_key();
|
let image_key = match self.api.generate_image_key() {
|
||||||
|
Ok(key) => key,
|
||||||
|
Err(()) => return,
|
||||||
|
};
|
||||||
self.current_frame = Some((image_key, frame.get_width(), frame.get_height()));
|
self.current_frame = Some((image_key, frame.get_width(), frame.get_height()));
|
||||||
|
|
||||||
let image_data = if frame.is_gl_texture() && self.player_id.is_some() {
|
let image_data = if frame.is_gl_texture() && self.player_id.is_some() {
|
||||||
|
|
|
@ -1195,12 +1195,12 @@ impl WebrenderIpcSender {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Create a new image key. Blocks until the key is available.
|
/// Create a new image key. Blocks until the key is available.
|
||||||
pub fn generate_image_key(&self) -> ImageKey {
|
pub fn generate_image_key(&self) -> Result<ImageKey, ()> {
|
||||||
let (sender, receiver) = ipc::channel().unwrap();
|
let (sender, receiver) = ipc::channel().unwrap();
|
||||||
self.0
|
self.0
|
||||||
.send(WebrenderMsg::GenerateImageKey(sender))
|
.send(WebrenderMsg::GenerateImageKey(sender))
|
||||||
.expect("error sending image key generation");
|
.map_err(|_| ())?;
|
||||||
receiver.recv().expect("error receiving image key result")
|
receiver.recv().map_err(|_| ())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Perform a resource update operation.
|
/// Perform a resource update operation.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue