webgl: Make context creation fallible. Fixes #6806

This commit is contained in:
ecoal95 2015-07-28 16:58:53 +02:00
parent e0bd80f807
commit bc908458ff
3 changed files with 24 additions and 16 deletions

View file

@ -942,12 +942,17 @@ impl<LTF: LayoutTaskFactory, STF: ScriptTaskFactory> Constellation<LTF, STF> {
&mut self,
size: &Size2D<i32>,
attributes: GLContextAttributes,
response_sender: IpcSender<(IpcSender<CanvasMsg>, usize)>) {
let id = self.webgl_paint_tasks.len();
let (out_of_process_sender, in_process_sender) =
WebGLPaintTask::start(*size, attributes).unwrap();
self.webgl_paint_tasks.push(in_process_sender);
response_sender.send((out_of_process_sender, id)).unwrap()
response_sender: IpcSender<Result<(IpcSender<CanvasMsg>, usize), String>>) {
let response = match WebGLPaintTask::start(*size, attributes) {
Ok((out_of_process_sender, in_process_sender)) => {
let id = self.webgl_paint_tasks.len();
self.webgl_paint_tasks.push(in_process_sender);
Ok((out_of_process_sender, id))
},
Err(msg) => Err(msg.to_owned()),
};
response_sender.send(response).unwrap()
}
fn handle_webdriver_msg(&mut self, msg: WebDriverCommandMsg) {