diff options
author | Ms2ger <Ms2ger@gmail.com> | 2016-06-16 12:28:43 +0100 |
---|---|---|
committer | Ms2ger <Ms2ger@gmail.com> | 2016-06-20 19:08:12 +0200 |
commit | 9e2e0ff98c7c42b6bfb24f0846dc0c82e36e7d2c (patch) | |
tree | aa32e333a8bc0c11895213251a226d5b818a4541 | |
parent | 2c50318ee7c05ab926e27d225a3409c8da86c991 (diff) | |
download | servo-9e2e0ff98c7c42b6bfb24f0846dc0c82e36e7d2c.tar.gz servo-9e2e0ff98c7c42b6bfb24f0846dc0c82e36e7d2c.zip |
Move the remainder of layout_interface into script_layout_interface.
-rw-r--r-- | components/layout/layout_thread.rs | 2 | ||||
-rw-r--r-- | components/script/dom/document.rs | 2 | ||||
-rw-r--r-- | components/script/dom/htmliframeelement.rs | 2 | ||||
-rw-r--r-- | components/script/dom/htmllinkelement.rs | 2 | ||||
-rw-r--r-- | components/script/dom/htmlstyleelement.rs | 2 | ||||
-rw-r--r-- | components/script/dom/node.rs | 2 | ||||
-rw-r--r-- | components/script/dom/window.rs | 2 | ||||
-rw-r--r-- | components/script/lib.rs | 1 | ||||
-rw-r--r-- | components/script/script_thread.rs | 22 | ||||
-rw-r--r-- | components/script_layout_interface/Cargo.toml | 3 | ||||
-rw-r--r-- | components/script_layout_interface/lib.rs | 4 | ||||
-rw-r--r-- | components/script_layout_interface/message.rs (renamed from components/script/layout_interface.rs) | 8 | ||||
-rw-r--r-- | components/servo/Cargo.lock | 4 | ||||
-rw-r--r-- | components/servo/Cargo.toml | 1 | ||||
-rw-r--r-- | components/servo/lib.rs | 5 | ||||
-rw-r--r-- | ports/cef/Cargo.lock | 4 |
16 files changed, 39 insertions, 27 deletions
diff --git a/components/layout/layout_thread.rs b/components/layout/layout_thread.rs index 15b756a42e4..22f9f0c802f 100644 --- a/components/layout/layout_thread.rs +++ b/components/layout/layout_thread.rs @@ -46,9 +46,9 @@ use query::process_offset_parent_query; use query::{LayoutRPCImpl, process_content_box_request, process_content_boxes_request}; use query::{process_node_geometry_request, process_node_layer_id_request, process_node_scroll_area_request}; use query::{process_node_overflow_request, process_resolved_style_request, process_margin_style_query}; -use script::layout_interface::{Msg, NewLayoutThreadInfo, Reflow, ReflowQueryType, ScriptReflow}; use script::layout_wrapper::ServoLayoutNode; use script::reporter::CSSErrorReporter; +use script_layout_interface::message::{Msg, NewLayoutThreadInfo, Reflow, ReflowQueryType, ScriptReflow}; use script_layout_interface::restyle_damage::{REPAINT, STORE_OVERFLOW, REFLOW_OUT_OF_FLOW, REFLOW}; use script_layout_interface::rpc::{LayoutRPC, MarginStyleResponse, NodeOverflowResponse, OffsetParentResponse}; use script_layout_interface::wrapper_traits::LayoutNode; diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 4dfb484a301..a69537d3c1c 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -92,7 +92,6 @@ use html5ever::tree_builder::{LimitedQuirks, NoQuirks, Quirks, QuirksMode}; use ipc_channel::ipc::{self, IpcSender}; use js::jsapi::JS_GetRuntime; use js::jsapi::{JSContext, JSObject, JSRuntime}; -use layout_interface::{Msg, ReflowQueryType}; use msg::constellation_msg::{ALT, CONTROL, SHIFT, SUPER}; use msg::constellation_msg::{Key, KeyModifiers, KeyState}; use msg::constellation_msg::{PipelineId, ReferrerPolicy, SubpageId}; @@ -103,6 +102,7 @@ use net_traits::{AsyncResponseTarget, PendingAsyncLoad, IpcSend}; use num_traits::ToPrimitive; use origin::Origin; use parse::{ParserRoot, ParserRef, MutNullableParserField}; +use script_layout_interface::message::{Msg, ReflowQueryType}; use script_thread::{MainThreadScriptMsg, Runnable}; use script_traits::UntrustedNodeAddress; use script_traits::{AnimationState, MouseButton, MouseEventType, MozBrowserEvent}; diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index 86146b8e915..22e67d162d9 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -38,9 +38,9 @@ use dom::window::{ReflowReason, Window}; use ipc_channel::ipc; use js::jsapi::{JSAutoCompartment, RootedValue, JSContext, MutableHandleValue}; use js::jsval::{UndefinedValue, NullValue}; -use layout_interface::ReflowQueryType; use msg::constellation_msg::{FrameType, LoadData, NavigationDirection, PipelineId, SubpageId}; use net_traits::response::HttpsState; +use script_layout_interface::message::ReflowQueryType; use script_traits::IFrameSandboxState::{IFrameSandboxed, IFrameUnsandboxed}; use script_traits::{IFrameLoadInfo, MozBrowserEvent, ScriptMsg as ConstellationMsg}; use std::cell::Cell; diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index 79b6ed32f0b..ab2c2a99887 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -25,9 +25,9 @@ use hyper::header::ContentType; use hyper::mime::{Mime, TopLevel, SubLevel}; use ipc_channel::ipc; use ipc_channel::router::ROUTER; -use layout_interface::Msg; use net_traits::{AsyncResponseListener, AsyncResponseTarget, Metadata, NetworkError}; use network_listener::{NetworkListener, PreInvoke}; +use script_layout_interface::message::Msg; use script_traits::{MozBrowserEvent, ScriptMsg as ConstellationMsg}; use std::ascii::AsciiExt; use std::borrow::ToOwned; diff --git a/components/script/dom/htmlstyleelement.rs b/components/script/dom/htmlstyleelement.rs index c972cb77bb5..47409402855 100644 --- a/components/script/dom/htmlstyleelement.rs +++ b/components/script/dom/htmlstyleelement.rs @@ -14,7 +14,7 @@ use dom::element::Element; use dom::htmlelement::HTMLElement; use dom::node::{ChildrenMutation, Node, document_from_node, window_from_node}; use dom::virtualmethods::VirtualMethods; -use layout_interface::Msg; +use script_layout_interface::message::Msg; use std::sync::Arc; use string_cache::Atom; use style::media_queries::parse_media_query_list; diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index fdb9deed87b..53a3f355b9d 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -56,11 +56,11 @@ use euclid::size::Size2D; use heapsize::{HeapSizeOf, heap_size_of}; use html5ever::tree_builder::QuirksMode; use js::jsapi::{JSContext, JSObject, JSRuntime}; -use layout_interface::Msg; use libc::{self, c_void, uintptr_t}; use msg::constellation_msg::PipelineId; use parse::html::parse_html_fragment; use ref_slice::ref_slice; +use script_layout_interface::message::Msg; use script_layout_interface::{HTMLCanvasData, OpaqueStyleAndLayoutData}; use script_layout_interface::{LayoutNodeType, LayoutElementType, TrustedNodeAddress}; use script_traits::UntrustedNodeAddress; diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 6dc43f8b925..eab2e31c907 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -42,7 +42,6 @@ use js::jsapi::{Evaluate2, HandleObject, HandleValue, JSAutoCompartment, JSConte use js::jsapi::{JS_GetRuntime, JS_GC, MutableHandleValue, SetWindowProxy}; use js::rust::CompileOptionsWrapper; use js::rust::Runtime; -use layout_interface::{Msg, Reflow, ReflowQueryType, ScriptReflow}; use libc; use msg::constellation_msg::{FrameType, LoadData, PanicMsg, PipelineId, SubpageId}; use msg::constellation_msg::{WindowSizeData, WindowSizeType}; @@ -59,6 +58,7 @@ use profile_traits::time::{ProfilerChan, TimerMetadataReflowType, profile}; use reporter::CSSErrorReporter; use rustc_serialize::base64::{FromBase64, STANDARD, ToBase64}; use script_layout_interface::TrustedNodeAddress; +use script_layout_interface::message::{Msg, Reflow, ReflowQueryType, ScriptReflow}; use script_layout_interface::rpc::{ContentBoxResponse, ContentBoxesResponse, LayoutRPC}; use script_layout_interface::rpc::{MarginStyleResponse, ResolvedStyleResponse}; use script_runtime::{ScriptChan, ScriptPort}; diff --git a/components/script/lib.rs b/components/script/lib.rs index c191c203889..33467a5dd34 100644 --- a/components/script/lib.rs +++ b/components/script/lib.rs @@ -94,7 +94,6 @@ mod devtools; pub mod document_loader; #[macro_use] pub mod dom; -pub mod layout_interface; pub mod layout_wrapper; mod mem; mod network_listener; diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs index 3459e5ddcfa..8418071e908 100644 --- a/components/script/script_thread.rs +++ b/components/script/script_thread.rs @@ -61,7 +61,6 @@ use js::jsapi::{JSAutoCompartment, JSContext, JS_SetWrapObjectCallbacks}; use js::jsapi::{JSTracer, SetWindowProxyClass}; use js::jsval::UndefinedValue; use js::rust::Runtime; -use layout_interface::{self, NewLayoutThreadInfo, ReflowQueryType}; use mem::heap_size_of_self_and_children; use msg::constellation_msg::{FrameType, LoadData, PanicMsg, PipelineId, PipelineNamespace}; use msg::constellation_msg::{SubpageId, WindowSizeData, WindowSizeType}; @@ -77,6 +76,7 @@ use parse::html::{ParseContext, parse_html}; use parse::xml::{self, parse_xml}; use profile_traits::mem::{self, OpaqueSender, Report, ReportKind, ReportsChan}; use profile_traits::time::{self, ProfilerCategory, profile}; +use script_layout_interface::message::{self, NewLayoutThreadInfo, ReflowQueryType}; use script_runtime::{CommonScriptMsg, ScriptChan, ScriptThreadEventCategory}; use script_runtime::{ScriptPort, StackRootTLS, new_rt_and_cx, get_reports}; use script_traits::CompositorEvent::{KeyEvent, MouseButtonEvent, MouseMoveEvent, ResizeEvent}; @@ -135,7 +135,7 @@ struct InProgressLoad { /// The current window size associated with this pipeline. window_size: Option<WindowSizeData>, /// Channel to the layout thread associated with this pipeline. - layout_chan: Sender<layout_interface::Msg>, + layout_chan: Sender<message::Msg>, /// The current viewport clipping rectangle applying to this pipeline, if any. clip_rect: Option<Rect<f32>>, /// Window is frozen (navigated away while loading for example). @@ -150,7 +150,7 @@ impl InProgressLoad { /// Create a new InProgressLoad object. fn new(id: PipelineId, parent_info: Option<(PipelineId, SubpageId, FrameType)>, - layout_chan: Sender<layout_interface::Msg>, + layout_chan: Sender<message::Msg>, window_size: Option<WindowSizeData>, url: Url) -> InProgressLoad { InProgressLoad { @@ -438,11 +438,11 @@ impl<'a> Drop for ScriptMemoryFailsafe<'a> { } impl ScriptThreadFactory for ScriptThread { - type Message = layout_interface::Msg; + type Message = message::Msg; fn create(state: InitialScriptState, load_data: LoadData) - -> (Sender<layout_interface::Msg>, Receiver<layout_interface::Msg>) { + -> (Sender<message::Msg>, Receiver<message::Msg>) { let panic_chan = state.panic_chan.clone(); let (script_chan, script_port) = channel(); @@ -1184,7 +1184,7 @@ impl ScriptThread { // Tell layout to actually spawn the thread. parent_window.layout_chan() - .send(layout_interface::Msg::CreateLayoutThread(layout_creation_info)) + .send(message::Msg::CreateLayoutThread(layout_creation_info)) .unwrap(); // Kick off the fetch for the new resource. @@ -1462,10 +1462,10 @@ impl ScriptThread { // processed this message. let (response_chan, response_port) = channel(); let chan = &load.layout_chan; - if chan.send(layout_interface::Msg::PrepareToExit(response_chan)).is_ok() { + if chan.send(message::Msg::PrepareToExit(response_chan)).is_ok() { debug!("shutting down layout for page {:?}", id); response_port.recv().unwrap(); - chan.send(layout_interface::Msg::ExitNow).ok(); + chan.send(message::Msg::ExitNow).ok(); } let has_pending_loads = self.incomplete_loads.borrow().len() > 0; @@ -1523,7 +1523,7 @@ impl ScriptThread { { // send the final url to the layout thread. incomplete.layout_chan - .send(layout_interface::Msg::SetFinalUrl(final_url.clone())) + .send(message::Msg::SetFinalUrl(final_url.clone())) .unwrap(); // update the pipeline url @@ -2126,7 +2126,7 @@ fn shut_down_layout(context_tree: &BrowsingContext) { let (response_chan, response_port) = channel(); let window = context.active_window(); let chan = window.layout_chan().clone(); - if chan.send(layout_interface::Msg::PrepareToExit(response_chan)).is_ok() { + if chan.send(message::Msg::PrepareToExit(response_chan)).is_ok() { channels.push(chan); response_port.recv().unwrap(); } @@ -2143,7 +2143,7 @@ fn shut_down_layout(context_tree: &BrowsingContext) { // Destroy the layout thread. If there were node leaks, layout will now crash safely. for chan in channels { - chan.send(layout_interface::Msg::ExitNow).ok(); + chan.send(message::Msg::ExitNow).ok(); } } diff --git a/components/script_layout_interface/Cargo.toml b/components/script_layout_interface/Cargo.toml index a4ace11ae26..226df50f386 100644 --- a/components/script_layout_interface/Cargo.toml +++ b/components/script_layout_interface/Cargo.toml @@ -19,6 +19,8 @@ heapsize_plugin = "0.1.2" ipc-channel = {git = "https://github.com/servo/ipc-channel"} libc = "0.2" msg = {path = "../msg"} +net_traits = {path = "../net_traits"} +profile_traits = {path = "../profile_traits"} plugins = {path = "../plugins"} range = {path = "../range"} script_traits = {path = "../script_traits"} @@ -26,3 +28,4 @@ selectors = {version = "0.6", features = ["heap_size"]} string_cache = {version = "0.2.20", features = ["heap_size"]} style = {path = "../style"} url = {version = "1.0.0", features = ["heap_size"]} +util = {path = "../util"} diff --git a/components/script_layout_interface/lib.rs b/components/script_layout_interface/lib.rs index 33d6696b782..929730f3909 100644 --- a/components/script_layout_interface/lib.rs +++ b/components/script_layout_interface/lib.rs @@ -26,6 +26,8 @@ extern crate heapsize; extern crate ipc_channel; extern crate libc; extern crate msg; +extern crate net_traits; +extern crate profile_traits; extern crate range; extern crate script_traits; extern crate selectors; @@ -33,7 +35,9 @@ extern crate selectors; extern crate string_cache; extern crate style; extern crate url; +extern crate util; +pub mod message; pub mod restyle_damage; pub mod rpc; pub mod wrapper_traits; diff --git a/components/script/layout_interface.rs b/components/script_layout_interface/message.rs index 350c8150109..e3c8a14e4c3 100644 --- a/components/script/layout_interface.rs +++ b/components/script_layout_interface/message.rs @@ -2,10 +2,6 @@ * 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/. */ -//! The high-level interface from script to layout. Using this abstract -//! interface helps reduce coupling between these two components, and enables -//! the DOM to be placed in a separate crate from layout. - use app_units::Au; use euclid::point::Point2D; use euclid::rect::Rect; @@ -14,8 +10,7 @@ use ipc_channel::ipc::{IpcReceiver, IpcSender}; use msg::constellation_msg::{PanicMsg, PipelineId, WindowSizeData}; use net_traits::image_cache_thread::ImageCacheThread; use profile_traits::mem::ReportsChan; -use script_layout_interface::rpc::LayoutRPC; -use script_layout_interface::{OpaqueStyleAndLayoutData, TrustedNodeAddress}; +use rpc::LayoutRPC; use script_traits::{ConstellationControlMsg, LayoutControlMsg}; use script_traits::{LayoutMsg as ConstellationMsg, StackingContextScrollState}; use std::sync::Arc; @@ -26,6 +21,7 @@ use style::selector_impl::PseudoElement; use style::servo::Stylesheet; use url::Url; use util::ipc::OptionalOpaqueIpcSender; +use {OpaqueStyleAndLayoutData, TrustedNodeAddress}; /// Asynchronous messages that script can send to layout. pub enum Msg { diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock index 172aac35d99..a495d668266 100644 --- a/components/servo/Cargo.lock +++ b/components/servo/Cargo.lock @@ -33,6 +33,7 @@ dependencies = [ "profile_tests 0.0.1", "profile_traits 0.0.1", "script 0.0.1", + "script_layout_interface 0.0.1", "script_tests 0.0.1", "script_traits 0.0.1", "style 0.0.1", @@ -1941,13 +1942,16 @@ dependencies = [ "ipc-channel 0.2.3 (git+https://github.com/servo/ipc-channel)", "libc 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", + "net_traits 0.0.1", "plugins 0.0.1", + "profile_traits 0.0.1", "range 0.0.1", "script_traits 0.0.1", "selectors 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "style 0.0.1", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "util 0.0.1", ] [[package]] diff --git a/components/servo/Cargo.toml b/components/servo/Cargo.toml index b7956a6b198..dc1dc080e73 100644 --- a/components/servo/Cargo.toml +++ b/components/servo/Cargo.toml @@ -43,6 +43,7 @@ compiletest_helper = {path = "../../tests/compiletest/helper"} plugin_compiletest = {path = "../../tests/compiletest/plugin"} [dependencies] +script_layout_interface = {path = "../script_layout_interface"} webrender_traits = {git = "https://github.com/servo/webrender_traits"} webrender = {git = "https://github.com/servo/webrender"} compositing = {path = "../compositing"} diff --git a/components/servo/lib.rs b/components/servo/lib.rs index 363cd3bec4f..5f98a1894b6 100644 --- a/components/servo/lib.rs +++ b/components/servo/lib.rs @@ -39,6 +39,7 @@ pub extern crate profile; pub extern crate profile_traits; pub extern crate script; pub extern crate script_traits; +pub extern crate script_layout_interface; pub extern crate style; pub extern crate url; pub extern crate util; @@ -229,7 +230,7 @@ fn create_constellation(opts: opts::Opts, webrender_api_sender: webrender_api_sender, }; let constellation_chan = - Constellation::<script::layout_interface::Msg, + Constellation::<script_layout_interface::message::Msg, layout::layout_thread::LayoutThread, script::script_thread::ScriptThread>::start(initial_state); @@ -263,7 +264,7 @@ pub fn run_content_process(token: String) { script::init(); - unprivileged_content.start_all::<script::layout_interface::Msg, + unprivileged_content.start_all::<script_layout_interface::message::Msg, layout::layout_thread::LayoutThread, script::script_thread::ScriptThread>(true); } diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock index 1f9b568c7ef..62d2223caf4 100644 --- a/ports/cef/Cargo.lock +++ b/ports/cef/Cargo.lock @@ -1799,13 +1799,16 @@ dependencies = [ "ipc-channel 0.2.3 (git+https://github.com/servo/ipc-channel)", "libc 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", + "net_traits 0.0.1", "plugins 0.0.1", + "profile_traits 0.0.1", "range 0.0.1", "script_traits 0.0.1", "selectors 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "style 0.0.1", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "util 0.0.1", ] [[package]] @@ -1915,6 +1918,7 @@ dependencies = [ "profile 0.0.1", "profile_traits 0.0.1", "script 0.0.1", + "script_layout_interface 0.0.1", "script_traits 0.0.1", "style 0.0.1", "url 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", |