diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2017-08-16 09:45:13 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-16 09:45:13 -0500 |
commit | 4d10d39e8fe841c5fe2ac58da2daaa13c10c140e (patch) | |
tree | f77d68b734a6327898cc8c01505b0723bf45ed4a /components/script_traits | |
parent | ee94e2b7c0bd327abe8f9545b2a1f792f67a2bdd (diff) | |
parent | cfe22e3979b7270833a4b450b25fb2157deb1da2 (diff) | |
download | servo-4d10d39e8fe841c5fe2ac58da2daaa13c10c140e.tar.gz servo-4d10d39e8fe841c5fe2ac58da2daaa13c10c140e.zip |
Auto merge of #18114 - emilio:revert-webgl-refactor, r=nox
Revert "Auto merge of #17891 - MortimerGoro:webgl_move, r=glennw,emilio"
This reverts commit 90f55ea4580e2a15f7d70d0491444f18b972d450, reversing
changes made to 2e60b27a2186a8cba4b952960155dfcf3f47d7db.
Doing that per Josh's request, since it's causing very frequent intermittent OOMs on the android builders.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18114)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script_traits')
-rw-r--r-- | components/script_traits/Cargo.toml | 1 | ||||
-rw-r--r-- | components/script_traits/lib.rs | 8 | ||||
-rw-r--r-- | components/script_traits/script_msg.rs | 8 |
3 files changed, 12 insertions, 5 deletions
diff --git a/components/script_traits/Cargo.toml b/components/script_traits/Cargo.toml index 2c083b2773c..70fcdbb3f33 100644 --- a/components/script_traits/Cargo.toml +++ b/components/script_traits/Cargo.toml @@ -25,6 +25,7 @@ libc = "0.2" metrics = {path = "../metrics"} msg = {path = "../msg"} net_traits = {path = "../net_traits"} +offscreen_gl_context = { version = "0.11", features = ["serde"] } profile_traits = {path = "../profile_traits"} rustc-serialize = "0.3.4" serde = "1.0" diff --git a/components/script_traits/lib.rs b/components/script_traits/lib.rs index 4a197e759ff..85122d35c3c 100644 --- a/components/script_traits/lib.rs +++ b/components/script_traits/lib.rs @@ -24,6 +24,7 @@ extern crate ipc_channel; extern crate libc; extern crate msg; extern crate net_traits; +extern crate offscreen_gl_context; extern crate profile_traits; extern crate rustc_serialize; #[macro_use] extern crate serde; @@ -38,7 +39,6 @@ mod script_msg; pub mod webdriver_msg; use bluetooth_traits::BluetoothRequest; -use canvas_traits::webgl::WebGLPipeline; use devtools_traits::{DevtoolScriptControlMsg, ScriptToDevtoolsControlMsg, WorkerId}; use euclid::{Size2D, Length, Point2D, Vector2D, Rect, ScaleFactor, TypedSize2D}; use gfx_traits::Epoch; @@ -524,10 +524,8 @@ pub struct InitialScriptState { pub pipeline_namespace_id: PipelineNamespaceId, /// A ping will be sent on this channel once the script thread shuts down. pub content_process_shutdown_chan: IpcSender<()>, - /// A channel to the webgl thread used in this pipeline. - pub webgl_chan: WebGLPipeline, /// A channel to the webvr thread, if available. - pub webvr_chan: Option<IpcSender<WebVRMsg>> + pub webvr_thread: Option<IpcSender<WebVRMsg>> } /// This trait allows creating a `ScriptThread` without depending on the `script` @@ -761,6 +759,8 @@ pub enum ConstellationMsg { Reload(TopLevelBrowsingContextId), /// A log entry, with the top-level browsing context id and thread name LogEntry(Option<TopLevelBrowsingContextId>, Option<String>, LogEntry), + /// Set the WebVR thread channel. + SetWebVRThread(IpcSender<WebVRMsg>), /// Dispatch WebVR events to the subscribed script threads. WebVREvents(Vec<PipelineId>, Vec<WebVREvent>), /// Create a new top level browsing context. diff --git a/components/script_traits/script_msg.rs b/components/script_traits/script_msg.rs index 156f85a2be7..4fd8fca5c7f 100644 --- a/components/script_traits/script_msg.rs +++ b/components/script_traits/script_msg.rs @@ -12,7 +12,7 @@ use LoadData; use MozBrowserEvent; use WorkerGlobalScopeInit; use WorkerScriptLoadOrigin; -use canvas_traits::canvas::CanvasMsg; +use canvas_traits::CanvasMsg; use devtools_traits::{ScriptToDevtoolsControlMsg, WorkerId}; use euclid::{Point2D, Size2D, TypedSize2D}; use ipc_channel::ipc::IpcSender; @@ -21,6 +21,7 @@ use msg::constellation_msg::{Key, KeyModifiers, KeyState}; use net_traits::CoreResourceMsg; use net_traits::request::RequestInit; use net_traits::storage_thread::StorageType; +use offscreen_gl_context::{GLContextAttributes, GLLimits}; use servo_url::ImmutableOrigin; use servo_url::ServoUrl; use style_traits::CSSPixel; @@ -77,6 +78,11 @@ pub enum ScriptMsg { /// Requests that a new 2D canvas thread be created. (This is done in the constellation because /// 2D canvases may use the GPU and we don't want to give untrusted content access to the GPU.) CreateCanvasPaintThread(Size2D<i32>, IpcSender<IpcSender<CanvasMsg>>), + /// Requests that a new WebGL thread be created. (This is done in the constellation because + /// WebGL uses the GPU and we don't want to give untrusted content access to the GPU.) + CreateWebGLPaintThread(Size2D<i32>, + GLContextAttributes, + IpcSender<Result<(IpcSender<CanvasMsg>, GLLimits), String>>), /// Notifies the constellation that this frame has received focus. Focus, /// Forward an event that was sent to the parent window. |