diff --git a/servo/components/compositing/Cargo.toml b/servo/components/compositing/Cargo.toml index 501285d04aa7..2203eb94c3a7 100644 --- a/servo/components/compositing/Cargo.toml +++ b/servo/components/compositing/Cargo.toml @@ -18,7 +18,6 @@ msg = {path = "../msg"} profile_traits = {path = "../profile_traits"} net_traits = {path = "../net_traits"} util = {path = "../util"} -devtools_traits = {path = "../devtools_traits"} plugins = {path = "../plugins"} azure = {git = "https://github.com/servo/rust-azure", features = ["plugins"]} layers = {git = "https://github.com/servo/rust-layers", features = ["plugins"]} diff --git a/servo/components/compositing/compositor.rs b/servo/components/compositing/compositor.rs index 61bc6bbd5b15..0b78e6887288 100644 --- a/servo/components/compositing/compositor.rs +++ b/servo/components/compositing/compositor.rs @@ -3,6 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use AnimationTickType; +use CompositionPipeline; use CompositorMsg as ConstellationMsg; use SendableFrameTree; use app_units::Au; @@ -33,7 +34,6 @@ use msg::constellation_msg::{Image, PixelFormat}; use msg::constellation_msg::{Key, KeyModifiers, KeyState, LoadData}; use msg::constellation_msg::{NavigationDirection, PipelineId, PipelineIndex, PipelineNamespaceId}; use msg::constellation_msg::{WindowSizeData, WindowSizeType}; -use pipeline::CompositionPipeline; use profile_traits::mem::{self, ReportKind, Reporter, ReporterRequest}; use profile_traits::time::{self, ProfilerCategory, profile}; use script_traits::CompositorEvent::{MouseMoveEvent, MouseButtonEvent, TouchEvent}; diff --git a/servo/components/compositing/lib.rs b/servo/components/compositing/lib.rs index b4677cc20f60..7f2cbdeec238 100644 --- a/servo/components/compositing/lib.rs +++ b/servo/components/compositing/lib.rs @@ -14,7 +14,6 @@ extern crate app_units; extern crate azure; -extern crate devtools_traits; extern crate euclid; #[cfg(not(target_os = "windows"))] extern crate gaol; @@ -43,13 +42,16 @@ extern crate webrender_traits; pub use compositor_thread::{CompositorEventListener, CompositorProxy, CompositorThread}; use euclid::size::{Size2D, TypedSize2D}; +use gfx::paint_thread::ChromeToPaintMsg; use gfx_traits::Epoch; use ipc_channel::ipc::{IpcSender}; +use layout_traits::LayoutControlChan; use msg::constellation_msg::{FrameId, Key, KeyState, KeyModifiers, LoadData}; use msg::constellation_msg::{NavigationDirection, PipelineId, SubpageId}; use msg::constellation_msg::{WebDriverCommandMsg, WindowSizeData, WindowSizeType}; -use pipeline::CompositionPipeline; +use script_traits::ConstellationControlMsg; use std::collections::HashMap; +use std::sync::mpsc::Sender; use url::Url; use util::geometry::PagePx; @@ -57,7 +59,6 @@ mod compositor; mod compositor_layer; pub mod compositor_thread; mod delayed_composition; -pub mod pipeline; #[cfg(not(target_os = "windows"))] pub mod sandboxing; mod surface_map; @@ -104,3 +105,12 @@ pub struct SendableFrameTree { pub size: Option>, pub children: Vec, } + +/// The subset of the pipeline that is needed for layer composition. +#[derive(Clone)] +pub struct CompositionPipeline { + pub id: PipelineId, + pub script_chan: IpcSender, + pub layout_chan: LayoutControlChan, + pub chrome_to_paint_chan: Sender, +} diff --git a/servo/components/constellation/Cargo.toml b/servo/components/constellation/Cargo.toml index 1e685ab58479..fc26ffbe67cf 100644 --- a/servo/components/constellation/Cargo.toml +++ b/servo/components/constellation/Cargo.toml @@ -18,6 +18,7 @@ euclid = {version = "0.6.4", features = ["plugins"]} gfx = {path = "../gfx"} gfx_traits = {path = "../gfx_traits"} ipc-channel = {git = "https://github.com/servo/ipc-channel"} +layers = {git = "https://github.com/servo/rust-layers", features = ["plugins"]} layout_traits = {path = "../layout_traits"} log = "0.3.5" msg = {path = "../msg"} @@ -27,6 +28,7 @@ plugins = {path = "../plugins"} profile_traits = {path = "../profile_traits"} rand = "0.3" script_traits = {path = "../script_traits"} +serde = "0.7" serde_macros = "0.7" style_traits = {path = "../style_traits"} url = {version = "1.0.0", features = ["heap_size"]} diff --git a/servo/components/constellation/constellation.rs b/servo/components/constellation/constellation.rs index 239dbbc3fc32..962cc92d1699 100644 --- a/servo/components/constellation/constellation.rs +++ b/servo/components/constellation/constellation.rs @@ -16,7 +16,6 @@ use clipboard::ClipboardContext; use compositing::CompositorMsg as FromCompositorMsg; use compositing::compositor_thread::CompositorProxy; use compositing::compositor_thread::Msg as ToCompositorMsg; -use compositing::pipeline::{InitialPipelineState, Pipeline, UnprivilegedPipelineContent}; #[cfg(not(target_os = "windows"))] use compositing::sandboxing; use compositing::{AnimationTickType, SendableFrameTree}; @@ -46,6 +45,7 @@ use net_traits::image_cache_thread::ImageCacheThread; use net_traits::storage_thread::StorageThreadMsg; use net_traits::{self, ResourceThreads, IpcSend}; use offscreen_gl_context::{GLContextAttributes, GLLimits}; +use pipeline::{InitialPipelineState, Pipeline, UnprivilegedPipelineContent}; use profile_traits::mem; use profile_traits::time; use rand::{random, Rng, SeedableRng, StdRng}; diff --git a/servo/components/constellation/lib.rs b/servo/components/constellation/lib.rs index 71b1a93f135c..ce4b45499cd9 100644 --- a/servo/components/constellation/lib.rs +++ b/servo/components/constellation/lib.rs @@ -23,6 +23,7 @@ extern crate gaol; extern crate gfx; extern crate gfx_traits; extern crate ipc_channel; +extern crate layers; extern crate layout_traits; #[macro_use] extern crate log; @@ -33,6 +34,7 @@ extern crate offscreen_gl_context; extern crate profile_traits; extern crate rand; extern crate script_traits; +extern crate serde; extern crate style_traits; extern crate url; #[macro_use] @@ -40,6 +42,8 @@ extern crate util; extern crate webrender_traits; mod constellation; +mod pipeline; mod timer_scheduler; pub use constellation::{Constellation, InitialConstellationState}; +pub use pipeline::UnprivilegedPipelineContent; diff --git a/servo/components/compositing/pipeline.rs b/servo/components/constellation/pipeline.rs similarity index 98% rename from servo/components/compositing/pipeline.rs rename to servo/components/constellation/pipeline.rs index b30e8743bec0..8f9252bd2632 100644 --- a/servo/components/compositing/pipeline.rs +++ b/servo/components/constellation/pipeline.rs @@ -2,9 +2,10 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -use CompositorProxy; -use compositor_thread; -use compositor_thread::Msg as CompositorMsg; +use compositing::CompositionPipeline; +use compositing::CompositorProxy; +use compositing::compositor_thread; +use compositing::compositor_thread::Msg as CompositorMsg; use devtools_traits::{DevtoolsControlMsg, ScriptToDevtoolsControlMsg}; use euclid::scale_factor::ScaleFactor; use euclid::size::TypedSize2D; @@ -60,15 +61,6 @@ pub struct Pipeline { pub is_private: bool, } -/// The subset of the pipeline that is needed for layer composition. -#[derive(Clone)] -pub struct CompositionPipeline { - pub id: PipelineId, - pub script_chan: IpcSender, - pub layout_chan: LayoutControlChan, - pub chrome_to_paint_chan: Sender, -} - /// Initial setup data needed to construct a pipeline. /// /// *DO NOT* add any Senders to this unless you absolutely know what you're doing, or pcwalton will diff --git a/servo/components/servo/Cargo.lock b/servo/components/servo/Cargo.lock index 467eb3b9f9a6..c854df221de3 100644 --- a/servo/components/servo/Cargo.lock +++ b/servo/components/servo/Cargo.lock @@ -308,7 +308,6 @@ version = "0.0.1" dependencies = [ "app_units 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "azure 0.4.5 (git+https://github.com/servo/rust-azure)", - "devtools_traits 0.0.1", "euclid 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", "gaol 0.0.1 (git+https://github.com/servo/gaol)", "gfx 0.0.1", @@ -348,6 +347,7 @@ dependencies = [ "gfx 0.0.1", "gfx_traits 0.0.1", "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)", + "layers 0.2.5 (git+https://github.com/servo/rust-layers)", "layout_traits 0.0.1", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", @@ -357,6 +357,7 @@ dependencies = [ "profile_traits 0.0.1", "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "script_traits 0.0.1", + "serde 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "style_traits 0.0.1", "url 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/servo/components/servo/lib.rs b/servo/components/servo/lib.rs index 5f4b571625a8..16eb5409d953 100644 --- a/servo/components/servo/lib.rs +++ b/servo/components/servo/lib.rs @@ -60,13 +60,12 @@ fn webdriver(_port: u16, _constellation: Sender) { } use compositing::CompositorEventListener; use compositing::CompositorMsg as ConstellationMsg; use compositing::compositor_thread::InitialCompositorState; -use compositing::pipeline::UnprivilegedPipelineContent; #[cfg(not(target_os = "windows"))] use compositing::sandboxing; use compositing::windowing::WindowEvent; use compositing::windowing::WindowMethods; use compositing::{CompositorProxy, CompositorThread}; -use constellation::{Constellation, InitialConstellationState}; +use constellation::{Constellation, InitialConstellationState, UnprivilegedPipelineContent}; #[cfg(not(target_os = "windows"))] use gaol::sandbox::{ChildSandbox, ChildSandboxMethods}; use gfx::font_cache_thread::FontCacheThread; diff --git a/servo/etc/ci/check_no_unwrap.sh b/servo/etc/ci/check_no_unwrap.sh index 255e1ac84500..f19f18d7a10c 100755 --- a/servo/etc/ci/check_no_unwrap.sh +++ b/servo/etc/ci/check_no_unwrap.sh @@ -10,8 +10,8 @@ cd "$(git rev-parse --show-toplevel)" # cd into repo root so make sure paths wor # files that should not contain "unwrap" FILES=("components/compositing/compositor.rs" - "components/compositing/pipeline.rs" "components/constellation/constellation.rs" + "components/constellation/pipeline.rs" "ports/glutin/lib.rs" "ports/glutin/window.rs") diff --git a/servo/ports/cef/Cargo.lock b/servo/ports/cef/Cargo.lock index f7464449479a..3cb76dd6ce49 100644 --- a/servo/ports/cef/Cargo.lock +++ b/servo/ports/cef/Cargo.lock @@ -270,7 +270,6 @@ version = "0.0.1" dependencies = [ "app_units 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "azure 0.4.5 (git+https://github.com/servo/rust-azure)", - "devtools_traits 0.0.1", "euclid 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", "gaol 0.0.1 (git+https://github.com/servo/gaol)", "gfx 0.0.1", @@ -310,6 +309,7 @@ dependencies = [ "gfx 0.0.1", "gfx_traits 0.0.1", "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)", + "layers 0.2.5 (git+https://github.com/servo/rust-layers)", "layout_traits 0.0.1", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", @@ -319,6 +319,7 @@ dependencies = [ "profile_traits 0.0.1", "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "script_traits 0.0.1", + "serde 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "style_traits 0.0.1", "url 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/servo/ports/gonk/Cargo.lock b/servo/ports/gonk/Cargo.lock index 690297190d58..12c72675c526 100644 --- a/servo/ports/gonk/Cargo.lock +++ b/servo/ports/gonk/Cargo.lock @@ -272,7 +272,6 @@ version = "0.0.1" dependencies = [ "app_units 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "azure 0.4.5 (git+https://github.com/servo/rust-azure)", - "devtools_traits 0.0.1", "euclid 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", "gaol 0.0.1 (git+https://github.com/servo/gaol)", "gfx 0.0.1", @@ -312,6 +311,7 @@ dependencies = [ "gfx 0.0.1", "gfx_traits 0.0.1", "ipc-channel 0.2.2 (git+https://github.com/servo/ipc-channel)", + "layers 0.2.5 (git+https://github.com/servo/rust-layers)", "layout_traits 0.0.1", "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", @@ -321,6 +321,7 @@ dependencies = [ "profile_traits 0.0.1", "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "script_traits 0.0.1", + "serde 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde_macros 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", "style_traits 0.0.1", "url 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",