diff options
-rw-r--r-- | Cargo.lock | 5 | ||||
-rw-r--r-- | components/compositing/Cargo.toml | 2 | ||||
-rw-r--r-- | components/compositing/compositor.rs | 5 | ||||
-rw-r--r-- | components/compositing/compositor_thread.rs | 4 | ||||
-rw-r--r-- | components/compositing/lib.rs | 111 | ||||
-rw-r--r-- | components/compositing/windowing.rs | 2 | ||||
-rw-r--r-- | components/constellation/constellation.rs | 6 | ||||
-rw-r--r-- | components/script/dom/event.rs | 2 | ||||
-rw-r--r-- | components/script_traits/lib.rs | 101 | ||||
-rw-r--r-- | components/servo/lib.rs | 6 | ||||
-rw-r--r-- | components/webdriver_server/Cargo.toml | 1 | ||||
-rw-r--r-- | components/webdriver_server/actions.rs | 3 | ||||
-rw-r--r-- | components/webdriver_server/lib.rs | 3 | ||||
-rw-r--r-- | components/webvr/Cargo.toml | 2 | ||||
-rw-r--r-- | components/webvr/webvr_thread.rs | 2 |
15 files changed, 133 insertions, 122 deletions
diff --git a/Cargo.lock b/Cargo.lock index 0a3b71daf20..980fe6f20fb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -779,6 +779,7 @@ dependencies = [ "num-traits", "pixels", "profile_traits", + "rust-webvr", "script_traits", "servo-media", "servo_geometry", @@ -788,7 +789,6 @@ dependencies = [ "toml", "webrender", "webrender_api", - "webvr", "webvr_traits", "webxr", ] @@ -6585,6 +6585,7 @@ name = "webdriver_server" version = "0.0.1" dependencies = [ "base64", + "compositing", "cookie", "crossbeam-channel", "euclid", @@ -6703,6 +6704,7 @@ name = "webvr" version = "0.0.1" dependencies = [ "canvas_traits", + "compositing", "crossbeam-channel", "euclid", "ipc-channel", @@ -6710,7 +6712,6 @@ dependencies = [ "msg", "rust-webvr", "rust-webvr-api", - "script_traits", "servo_config", "sparkle", "webvr_traits", diff --git a/components/compositing/Cargo.toml b/components/compositing/Cargo.toml index 90daa3a3be5..c1c9244cda5 100644 --- a/components/compositing/Cargo.toml +++ b/components/compositing/Cargo.toml @@ -31,6 +31,7 @@ net_traits = {path = "../net_traits"} num-traits = "0.2" pixels = {path = "../pixels", optional = true} profile_traits = {path = "../profile_traits"} +rust-webvr = {version = "0.16", features = ["mock", "openvr", "vrexternal"]} script_traits = {path = "../script_traits"} servo_geometry = {path = "../geometry"} servo-media = {git = "https://github.com/servo/media"} @@ -40,7 +41,6 @@ time = "0.1.17" webrender = {git = "https://github.com/servo/webrender", features = ["capture"]} webrender_api = {git = "https://github.com/servo/webrender"} webvr_traits = {path = "../webvr_traits"} -webvr = {path = "../webvr"} webxr = {git = "https://github.com/servo/webxr"} [build-dependencies] diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs index 10f7e6de2e6..ec453d95f6c 100644 --- a/components/compositing/compositor.rs +++ b/components/compositing/compositor.rs @@ -10,8 +10,7 @@ use crate::touch::{TouchAction, TouchHandler}; use crate::windowing::{ self, EmbedderCoordinates, MouseWindowEvent, WebRenderDebugOption, WindowMethods, }; -use crate::CompositionPipeline; -use crate::SendableFrameTree; +use crate::{CompositionPipeline, ConstellationMsg, SendableFrameTree}; use crossbeam_channel::Sender; use embedder_traits::Cursor; use euclid::{Point2D, Rect, Scale, Vector2D}; @@ -28,7 +27,7 @@ use num_traits::FromPrimitive; use pixels::PixelFormat; use profile_traits::time::{self as profile_time, profile, ProfilerCategory}; use script_traits::CompositorEvent::{MouseButtonEvent, MouseMoveEvent, TouchEvent, WheelEvent}; -use script_traits::{AnimationState, AnimationTickType, ConstellationMsg, LayoutControlMsg}; +use script_traits::{AnimationState, AnimationTickType, LayoutControlMsg}; use script_traits::{ MouseButton, MouseEventType, ScrollState, TouchEventType, TouchId, WheelDelta, }; diff --git a/components/compositing/compositor_thread.rs b/components/compositing/compositor_thread.rs index 9ba7f53c22c..0c0f014f9da 100644 --- a/components/compositing/compositor_thread.rs +++ b/components/compositing/compositor_thread.rs @@ -5,7 +5,7 @@ //! Communication with the compositor thread. use crate::compositor::CompositingReason; -use crate::SendableFrameTree; +use crate::{ConstellationMsg, SendableFrameTree}; use crossbeam_channel::{Receiver, Sender}; use embedder_traits::EventLoopWaker; use euclid::Rect; @@ -15,7 +15,7 @@ use msg::constellation_msg::{PipelineId, TopLevelBrowsingContextId}; use net_traits::image::base::Image; use profile_traits::mem; use profile_traits::time; -use script_traits::{AnimationState, ConstellationMsg, EventResult, MouseButton, MouseEventType}; +use script_traits::{AnimationState, EventResult, MouseButton, MouseEventType}; use std::fmt::{Debug, Error, Formatter}; use style_traits::viewport::ViewportConstraints; use style_traits::CSSPixel; diff --git a/components/compositing/lib.rs b/components/compositing/lib.rs index 49b2ab7bf70..a6c94697142 100644 --- a/components/compositing/lib.rs +++ b/components/compositing/lib.rs @@ -11,10 +11,24 @@ pub use crate::compositor::CompositingReason; pub use crate::compositor::IOCompositor; pub use crate::compositor::ShutdownState; pub use crate::compositor_thread::CompositorProxy; +use embedder_traits::Cursor; +use gfx_traits::Epoch; use ipc_channel::ipc::IpcSender; +use keyboard_types::KeyboardEvent; use msg::constellation_msg::PipelineId; use msg::constellation_msg::TopLevelBrowsingContextId; -use script_traits::{ConstellationControlMsg, LayoutControlMsg}; +use msg::constellation_msg::{BrowsingContextId, TraversalDirection}; +use script_traits::{ + AnimationTickType, LogEntry, WebDriverCommandMsg, WindowSizeData, WindowSizeType, +}; +use script_traits::{ + CompositorEvent, ConstellationControlMsg, LayoutControlMsg, MediaSessionActionType, +}; +use servo_url::ServoUrl; +use std::collections::HashMap; +use std::fmt; +use std::time::Duration; +use webvr_traits::WebVREvent; mod compositor; pub mod compositor_thread; @@ -36,3 +50,98 @@ pub struct CompositionPipeline { pub script_chan: IpcSender<ConstellationControlMsg>, pub layout_chan: IpcSender<LayoutControlMsg>, } + +/// Messages to the constellation. +pub enum ConstellationMsg { + /// Exit the constellation. + Exit, + /// Request that the constellation send the BrowsingContextId corresponding to the document + /// with the provided pipeline id + GetBrowsingContext(PipelineId, IpcSender<Option<BrowsingContextId>>), + /// Request that the constellation send the current pipeline id for the provided + /// browsing context id, over a provided channel. + GetPipeline(BrowsingContextId, IpcSender<Option<PipelineId>>), + /// Request that the constellation send the current focused top-level browsing context id, + /// over a provided channel. + GetFocusTopLevelBrowsingContext(IpcSender<Option<TopLevelBrowsingContextId>>), + /// Query the constellation to see if the current compositor output is stable + IsReadyToSaveImage(HashMap<PipelineId, Epoch>), + /// Inform the constellation of a key event. + Keyboard(KeyboardEvent), + /// Whether to allow script to navigate. + AllowNavigationResponse(PipelineId, bool), + /// Request to load a page. + LoadUrl(TopLevelBrowsingContextId, ServoUrl), + /// Request to traverse the joint session history of the provided browsing context. + TraverseHistory(TopLevelBrowsingContextId, TraversalDirection), + /// Inform the constellation of a window being resized. + WindowSize( + Option<TopLevelBrowsingContextId>, + WindowSizeData, + WindowSizeType, + ), + /// Requests that the constellation instruct layout to begin a new tick of the animation. + TickAnimation(PipelineId, AnimationTickType), + /// Dispatch a webdriver command + WebDriverCommand(WebDriverCommandMsg), + /// Reload a top-level browsing context. + Reload(TopLevelBrowsingContextId), + /// A log entry, with the top-level browsing context id and thread name + LogEntry(Option<TopLevelBrowsingContextId>, Option<String>, LogEntry), + /// Dispatch WebVR events to the subscribed script threads. + WebVREvents(Vec<PipelineId>, Vec<WebVREvent>), + /// Create a new top level browsing context. + NewBrowser(ServoUrl, TopLevelBrowsingContextId), + /// Close a top level browsing context. + CloseBrowser(TopLevelBrowsingContextId), + /// Panic a top level browsing context. + SendError(Option<TopLevelBrowsingContextId>, String), + /// Make browser visible. + SelectBrowser(TopLevelBrowsingContextId), + /// Forward an event to the script task of the given pipeline. + ForwardEvent(PipelineId, CompositorEvent), + /// Requesting a change to the onscreen cursor. + SetCursor(Cursor), + /// Enable the sampling profiler, with a given sampling rate and max total sampling duration. + EnableProfiler(Duration, Duration), + /// Disable the sampling profiler. + DisableProfiler, + /// Request to exit from fullscreen mode + ExitFullScreen(TopLevelBrowsingContextId), + /// Media session action. + MediaSessionAction(MediaSessionActionType), +} + +impl fmt::Debug for ConstellationMsg { + fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + use self::ConstellationMsg::*; + let variant = match *self { + Exit => "Exit", + GetBrowsingContext(..) => "GetBrowsingContext", + GetPipeline(..) => "GetPipeline", + GetFocusTopLevelBrowsingContext(..) => "GetFocusTopLevelBrowsingContext", + IsReadyToSaveImage(..) => "IsReadyToSaveImage", + Keyboard(..) => "Keyboard", + AllowNavigationResponse(..) => "AllowNavigationResponse", + LoadUrl(..) => "LoadUrl", + TraverseHistory(..) => "TraverseHistory", + WindowSize(..) => "WindowSize", + TickAnimation(..) => "TickAnimation", + WebDriverCommand(..) => "WebDriverCommand", + Reload(..) => "Reload", + LogEntry(..) => "LogEntry", + WebVREvents(..) => "WebVREvents", + NewBrowser(..) => "NewBrowser", + CloseBrowser(..) => "CloseBrowser", + SendError(..) => "SendError", + SelectBrowser(..) => "SelectBrowser", + ForwardEvent(..) => "ForwardEvent", + SetCursor(..) => "SetCursor", + EnableProfiler(..) => "EnableProfiler", + DisableProfiler => "DisableProfiler", + ExitFullScreen(..) => "ExitFullScreen", + MediaSessionAction(..) => "MediaSessionAction", + }; + write!(formatter, "ConstellationMsg::{}", variant) + } +} diff --git a/components/compositing/windowing.rs b/components/compositing/windowing.rs index cdc1b7ff883..93e7c914313 100644 --- a/components/compositing/windowing.rs +++ b/components/compositing/windowing.rs @@ -20,10 +20,10 @@ use std::rc::Rc; use std::time::Duration; use style_traits::DevicePixel; +use rust_webvr::VRServiceManager; use webrender_api::units::DevicePoint; use webrender_api::units::{DeviceIntPoint, DeviceIntRect, DeviceIntSize}; use webrender_api::ScrollLocation; -use webvr::VRServiceManager; use webvr_traits::WebVRMainThreadHeartbeat; #[derive(Clone)] diff --git a/components/constellation/constellation.rs b/components/constellation/constellation.rs index 89d0b4462a1..e594594cc22 100644 --- a/components/constellation/constellation.rs +++ b/components/constellation/constellation.rs @@ -109,7 +109,7 @@ use canvas_traits::canvas::{CanvasId, CanvasMsg}; use canvas_traits::webgl::WebGLThreads; use compositing::compositor_thread::CompositorProxy; use compositing::compositor_thread::Msg as ToCompositorMsg; -use compositing::SendableFrameTree; +use compositing::{ConstellationMsg as FromCompositorMsg, SendableFrameTree}; use crossbeam_channel::{after, never, unbounded, Receiver, Sender}; use devtools_traits::{ChromeToDevtoolsControlMsg, DevtoolsControlMsg}; use embedder_traits::{Cursor, EmbedderMsg, EmbedderProxy, EventLoopWaker}; @@ -145,9 +145,7 @@ use script_traits::{webdriver_msg, LogEntry, ScriptToConstellationChan, ServiceW use script_traits::{ AnimationState, AnimationTickType, AuxiliaryBrowsingContextLoadInfo, CompositorEvent, }; -use script_traits::{ - ConstellationControlMsg, ConstellationMsg as FromCompositorMsg, DiscardBrowsingContext, -}; +use script_traits::{ConstellationControlMsg, DiscardBrowsingContext}; use script_traits::{DocumentActivity, DocumentState, LayoutControlMsg, LoadData, LoadOrigin}; use script_traits::{HistoryEntryReplacement, IFrameSizeMsg, WindowSizeData, WindowSizeType}; use script_traits::{ diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs index e8e7ad7251c..561022f0f3a 100644 --- a/components/script/dom/event.rs +++ b/components/script/dom/event.rs @@ -419,7 +419,7 @@ pub enum EventPhase { /// helps us to prevent such events from being [sent to the constellation][msg] where it will be /// handled once again for page scrolling (which is definitely not what we'd want). /// -/// [msg]: https://doc.servo.org/script_traits/enum.ConstellationMsg.html#variant.KeyEvent +/// [msg]: https://doc.servo.org/compositing/enum.ConstellationMsg.html#variant.KeyEvent /// #[derive(Clone, Copy, JSTraceable, MallocSizeOf, PartialEq)] pub enum EventDefault { diff --git a/components/script_traits/lib.rs b/components/script_traits/lib.rs index ed53c70ae39..b85dffd790c 100644 --- a/components/script_traits/lib.rs +++ b/components/script_traits/lib.rs @@ -28,7 +28,7 @@ use bluetooth_traits::BluetoothRequest; use canvas_traits::webgl::WebGLPipeline; use crossbeam_channel::{Receiver, RecvTimeoutError, Sender}; use devtools_traits::{DevtoolScriptControlMsg, ScriptToDevtoolsControlMsg, WorkerId}; -use embedder_traits::{Cursor, EventLoopWaker}; +use embedder_traits::EventLoopWaker; use euclid::{default::Point2D, Length, Rect, Scale, Size2D, UnknownUnit, Vector2D}; use gfx_traits::Epoch; use http::HeaderMap; @@ -44,7 +44,7 @@ use msg::constellation_msg::BackgroundHangMonitorRegister; use msg::constellation_msg::{ BlobId, BrowsingContextId, HistoryStateId, MessagePortId, PipelineId, }; -use msg::constellation_msg::{PipelineNamespaceId, TopLevelBrowsingContextId, TraversalDirection}; +use msg::constellation_msg::{PipelineNamespaceId, TopLevelBrowsingContextId}; use net_traits::image::base::Image; use net_traits::image_cache::ImageCache; use net_traits::request::Referrer; @@ -62,7 +62,6 @@ use std::collections::{HashMap, VecDeque}; use std::fmt; use std::sync::atomic::AtomicBool; use std::sync::Arc; -use std::time::Duration; use style_traits::CSSPixel; use style_traits::SpeculativePainter; use webrender_api::units::{ @@ -836,102 +835,6 @@ pub enum WebDriverCommandMsg { ), } -/// Messages to the constellation. -#[derive(Deserialize, Serialize)] -pub enum ConstellationMsg { - /// Exit the constellation. - Exit, - /// Request that the constellation send the BrowsingContextId corresponding to the document - /// with the provided pipeline id - GetBrowsingContext(PipelineId, IpcSender<Option<BrowsingContextId>>), - /// Request that the constellation send the current pipeline id for the provided - /// browsing context id, over a provided channel. - GetPipeline(BrowsingContextId, IpcSender<Option<PipelineId>>), - /// Request that the constellation send the current focused top-level browsing context id, - /// over a provided channel. - GetFocusTopLevelBrowsingContext(IpcSender<Option<TopLevelBrowsingContextId>>), - /// Query the constellation to see if the current compositor output is stable - IsReadyToSaveImage(HashMap<PipelineId, Epoch>), - /// Inform the constellation of a key event. - Keyboard(KeyboardEvent), - /// Whether to allow script to navigate. - AllowNavigationResponse(PipelineId, bool), - /// Request to load a page. - LoadUrl(TopLevelBrowsingContextId, ServoUrl), - /// Request to traverse the joint session history of the provided browsing context. - TraverseHistory(TopLevelBrowsingContextId, TraversalDirection), - /// Inform the constellation of a window being resized. - WindowSize( - Option<TopLevelBrowsingContextId>, - WindowSizeData, - WindowSizeType, - ), - /// Requests that the constellation instruct layout to begin a new tick of the animation. - TickAnimation(PipelineId, AnimationTickType), - /// Dispatch a webdriver command - WebDriverCommand(WebDriverCommandMsg), - /// Reload a top-level browsing context. - Reload(TopLevelBrowsingContextId), - /// A log entry, with the top-level browsing context id and thread name - LogEntry(Option<TopLevelBrowsingContextId>, Option<String>, LogEntry), - /// Dispatch WebVR events to the subscribed script threads. - WebVREvents(Vec<PipelineId>, Vec<WebVREvent>), - /// Create a new top level browsing context. - NewBrowser(ServoUrl, TopLevelBrowsingContextId), - /// Close a top level browsing context. - CloseBrowser(TopLevelBrowsingContextId), - /// Panic a top level browsing context. - SendError(Option<TopLevelBrowsingContextId>, String), - /// Make browser visible. - SelectBrowser(TopLevelBrowsingContextId), - /// Forward an event to the script task of the given pipeline. - ForwardEvent(PipelineId, CompositorEvent), - /// Requesting a change to the onscreen cursor. - SetCursor(Cursor), - /// Enable the sampling profiler, with a given sampling rate and max total sampling duration. - EnableProfiler(Duration, Duration), - /// Disable the sampling profiler. - DisableProfiler, - /// Request to exit from fullscreen mode - ExitFullScreen(TopLevelBrowsingContextId), - /// Media session action. - MediaSessionAction(MediaSessionActionType), -} - -impl fmt::Debug for ConstellationMsg { - fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { - use self::ConstellationMsg::*; - let variant = match *self { - Exit => "Exit", - GetBrowsingContext(..) => "GetBrowsingContext", - GetPipeline(..) => "GetPipeline", - GetFocusTopLevelBrowsingContext(..) => "GetFocusTopLevelBrowsingContext", - IsReadyToSaveImage(..) => "IsReadyToSaveImage", - Keyboard(..) => "Keyboard", - AllowNavigationResponse(..) => "AllowNavigationResponse", - LoadUrl(..) => "LoadUrl", - TraverseHistory(..) => "TraverseHistory", - WindowSize(..) => "WindowSize", - TickAnimation(..) => "TickAnimation", - WebDriverCommand(..) => "WebDriverCommand", - Reload(..) => "Reload", - LogEntry(..) => "LogEntry", - WebVREvents(..) => "WebVREvents", - NewBrowser(..) => "NewBrowser", - CloseBrowser(..) => "CloseBrowser", - SendError(..) => "SendError", - SelectBrowser(..) => "SelectBrowser", - ForwardEvent(..) => "ForwardEvent", - SetCursor(..) => "SetCursor", - EnableProfiler(..) => "EnableProfiler", - DisableProfiler => "DisableProfiler", - ExitFullScreen(..) => "ExitFullScreen", - MediaSessionAction(..) => "MediaSessionAction", - }; - write!(formatter, "ConstellationMsg::{}", variant) - } -} - /// Resources required by workerglobalscopes #[derive(Clone, Debug, Deserialize, Serialize)] pub struct WorkerGlobalScopeInit { diff --git a/components/servo/lib.rs b/components/servo/lib.rs index 2ae1908f8bb..708c1036a8b 100644 --- a/components/servo/lib.rs +++ b/components/servo/lib.rs @@ -71,7 +71,7 @@ use compositing::compositor_thread::{ CompositorProxy, CompositorReceiver, InitialCompositorState, Msg, }; use compositing::windowing::{EmbedderMethods, WindowEvent, WindowMethods}; -use compositing::{CompositingReason, IOCompositor, ShutdownState}; +use compositing::{CompositingReason, ConstellationMsg, IOCompositor, ShutdownState}; #[cfg(all( not(target_os = "windows"), not(target_os = "ios"), @@ -106,9 +106,7 @@ use profile::time as profile_time; use profile_traits::mem; use profile_traits::time; use script::JSEngineSetup; -use script_traits::{ - ConstellationMsg, SWManagerSenders, ScriptToConstellationChan, WindowSizeData, -}; +use script_traits::{SWManagerSenders, ScriptToConstellationChan, WindowSizeData}; use servo_config::opts; use servo_config::{pref, prefs}; use servo_media::player::context::GlContext; diff --git a/components/webdriver_server/Cargo.toml b/components/webdriver_server/Cargo.toml index 3df9701b2bf..e023a2fc377 100644 --- a/components/webdriver_server/Cargo.toml +++ b/components/webdriver_server/Cargo.toml @@ -12,6 +12,7 @@ path = "lib.rs" [dependencies] base64 = "0.10" +compositing = {path = "../compositing"} cookie = "0.11" crossbeam-channel = "0.3" euclid = "0.20" diff --git a/components/webdriver_server/actions.rs b/components/webdriver_server/actions.rs index e04c40d54c8..4fae56b7cee 100644 --- a/components/webdriver_server/actions.rs +++ b/components/webdriver_server/actions.rs @@ -3,10 +3,11 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use crate::Handler; +use compositing::ConstellationMsg; use ipc_channel::ipc; use keyboard_types::webdriver::KeyInputState; use script_traits::webdriver_msg::WebDriverScriptCommand; -use script_traits::{ConstellationMsg, MouseButton, MouseEventType, WebDriverCommandMsg}; +use script_traits::{MouseButton, MouseEventType, WebDriverCommandMsg}; use std::cmp; use std::collections::HashSet; use std::thread; diff --git a/components/webdriver_server/lib.rs b/components/webdriver_server/lib.rs index c6813488df7..6cf3db4bc18 100644 --- a/components/webdriver_server/lib.rs +++ b/components/webdriver_server/lib.rs @@ -21,6 +21,7 @@ mod capabilities; use crate::actions::{InputSourceState, PointerInputState}; use base64; use capabilities::ServoCapabilities; +use compositing::ConstellationMsg; use crossbeam_channel::{after, unbounded, Receiver, Sender}; use euclid::{Rect, Size2D}; use hyper::Method; @@ -34,7 +35,7 @@ use script_traits::webdriver_msg::{LoadStatus, WebDriverCookieError, WebDriverFr use script_traits::webdriver_msg::{ WebDriverJSError, WebDriverJSResult, WebDriverJSValue, WebDriverScriptCommand, }; -use script_traits::{ConstellationMsg, LoadData, LoadOrigin, WebDriverCommandMsg}; +use script_traits::{LoadData, LoadOrigin, WebDriverCommandMsg}; use serde::de::{Deserialize, Deserializer, MapAccess, Visitor}; use serde::ser::{Serialize, Serializer}; use serde_json::{json, Value}; diff --git a/components/webvr/Cargo.toml b/components/webvr/Cargo.toml index 4556fae2f17..02b65782e82 100644 --- a/components/webvr/Cargo.toml +++ b/components/webvr/Cargo.toml @@ -16,6 +16,7 @@ oculusvr = ['rust-webvr/oculusvr'] [dependencies] canvas_traits = {path = "../canvas_traits"} +compositing = {path = "../compositing"} crossbeam-channel = "0.3" euclid = "0.20" ipc-channel = "0.12" @@ -23,7 +24,6 @@ log = "0.4" msg = {path = "../msg"} rust-webvr = {version = "0.16", features = ["mock", "openvr", "vrexternal"]} rust-webvr-api = "0.16" -script_traits = {path = "../script_traits"} servo_config = {path = "../config"} sparkle = "0.1" webvr_traits = {path = "../webvr_traits" } diff --git a/components/webvr/webvr_thread.rs b/components/webvr/webvr_thread.rs index d27e63d6c0b..397fb672733 100644 --- a/components/webvr/webvr_thread.rs +++ b/components/webvr/webvr_thread.rs @@ -3,13 +3,13 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use canvas_traits::webgl; +use compositing::ConstellationMsg; use crossbeam_channel::{unbounded, Receiver, Sender}; use euclid::default::Size2D; use ipc_channel::ipc; use ipc_channel::ipc::{IpcReceiver, IpcSender}; use msg::constellation_msg::PipelineId; use rust_webvr::VRServiceManager; -use script_traits::ConstellationMsg; use servo_config::pref; use sparkle::gl::Gl; use std::collections::hash_map::Entry; |