constellation: Make setting up the WebGL state fallible.

This fixes a regression caused by the glutin update.

We now are creating EGL contexts in Linux Wayland, instead of X context, so the
GLContextFactory assumption of one GL back-end per platform is broken.

This just works around it, for now, but in general I think not relying on
available WebGL state is a good thing, and we do that already for WebVR anyway.
This commit is contained in:
Emilio Cobos Álvarez 2018-03-09 23:27:29 +01:00
parent 3fc5bf87d3
commit 21df4014db
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C
8 changed files with 48 additions and 31 deletions

View file

@ -224,8 +224,12 @@ impl WebGLRenderingContext {
return Err("WebGL context creation error forced by pref `webgl.testing.context_creation_error`".into());
}
let webgl_chan = match window.webgl_chan() {
Some(chan) => chan,
None => return Err("WebGL initialization failed early on".into()),
};
let (sender, receiver) = webgl_channel().unwrap();
let webgl_chan = window.webgl_chan();
webgl_chan.send(WebGLMsg::CreateContext(webgl_version, size, attrs, sender))
.unwrap();
let result = receiver.recv().unwrap();