aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/webglrenderingcontext.rs
diff options
context:
space:
mode:
authorBenjamin Dahse <ronoueb@gmail.com>2017-06-06 19:18:40 +0200
committerBenjamin Dahse <ronoueb@gmail.com>2017-06-06 23:08:57 +0200
commitc034d99880c1e2fe8e955cf673ce7f5e8b1e2a85 (patch)
tree29c1ab7e24ebfad1909e4097e69bb3816562f909 /components/script/dom/webglrenderingcontext.rs
parent2da8eb0342f6701b5365116b96113c83a1599b1f (diff)
downloadservo-c034d99880c1e2fe8e955cf673ce7f5e8b1e2a85.tar.gz
servo-c034d99880c1e2fe8e955cf673ce7f5e8b1e2a85.zip
Add pref to force WebGL context creation failure
The pref `webgl.testing.context_creation_error` will cause creation of a new WebGLRenderingContext to fail, iff set to true. Also update test expectation of `context_creation_error.html` to pass.
Diffstat (limited to 'components/script/dom/webglrenderingcontext.rs')
-rw-r--r--components/script/dom/webglrenderingcontext.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index eb1578d1b3a..8267c5bf2d1 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -51,6 +51,7 @@ use net_traits::image::base::PixelFormat;
use net_traits::image_cache::ImageResponse;
use offscreen_gl_context::{GLContextAttributes, GLLimits};
use script_traits::ScriptMsg as ConstellationMsg;
+use servo_config::prefs::PREFS;
use std::cell::Cell;
use std::collections::HashMap;
use webrender_traits;
@@ -166,6 +167,10 @@ impl WebGLRenderingContext {
size: Size2D<i32>,
attrs: GLContextAttributes)
-> Result<WebGLRenderingContext, String> {
+ if let Some(true) = PREFS.get("webgl.testing.context_creation_error").as_boolean() {
+ return Err("WebGL context creation error forced by pref `webgl.testing.context_creation_error`".into());
+ }
+
let (sender, receiver) = ipc::channel().unwrap();
let constellation_chan = window.upcast::<GlobalScope>().constellation_chan();
constellation_chan.send(ConstellationMsg::CreateWebGLPaintThread(size, attrs, sender))