diff --git a/components/config/prefs.rs b/components/config/prefs.rs index 0c6e394ffaa5..1bd1a7457996 100644 --- a/components/config/prefs.rs +++ b/components/config/prefs.rs @@ -446,6 +446,9 @@ mod gen { } }, media: { + glvideo: { + enabled: bool, + }, testing: { enabled: bool, } diff --git a/ports/glutin/headed_window.rs b/ports/glutin/headed_window.rs index 1e1801c2d49a..9f934029aa65 100644 --- a/ports/glutin/headed_window.rs +++ b/ports/glutin/headed_window.rs @@ -24,7 +24,7 @@ use servo::compositing::windowing::{AnimationState, MouseWindowEvent, WindowEven use servo::compositing::windowing::{EmbedderCoordinates, WindowMethods}; use servo::embedder_traits::Cursor; use servo::script_traits::{TouchEventType, WheelMode, WheelDelta}; -use servo::servo_config::opts; +use servo::servo_config::{opts, pref}; use servo::servo_geometry::DeviceIndependentPixel; use servo::style_traits::DevicePixel; use servo::webrender_api::{ @@ -527,10 +527,18 @@ impl WindowMethods for Window { } fn get_gl_context(&self) -> PlayerGLContext { - self.gl_context.borrow().raw_context() + if pref!(media.glvideo.enabled) { + self.gl_context.borrow().raw_context() + } else { + PlayerGLContext::Unknown + } } fn get_native_display(&self) -> NativeDisplay { + if !pref!(media.glvideo.enabled) { + return NativeDisplay::Unknown; + } + #[cfg(any( target_os = "linux", target_os = "dragonfly", diff --git a/resources/prefs.json b/resources/prefs.json index 22c4e22b4db8..8e7efaf60692 100644 --- a/resources/prefs.json +++ b/resources/prefs.json @@ -84,6 +84,7 @@ "layout.threads": 3, "layout.viewport.enabled": false, "layout.writing-mode.enabled": false, + "media.glvideo.enabled": false, "media.testing.enabled": false, "network.http-cache.disabled": false, "network.mime.sniff": false,