From 000e2de57a7b458900778e4528025482f88a269d Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Wed, 15 Jun 2016 14:05:05 +0100 Subject: [PATCH] Move HTMLCanvasData to script_layout_interface. --- components/layout/fragment.rs | 2 +- components/layout/wrapper.rs | 4 ++-- components/script/dom/htmlcanvaselement.rs | 7 +------ components/script/dom/node.rs | 4 ++-- components/script/layout_interface.rs | 1 - components/script_layout_interface/Cargo.toml | 2 ++ components/script_layout_interface/lib.rs | 10 ++++++++++ components/servo/Cargo.lock | 2 ++ ports/cef/Cargo.lock | 2 ++ 9 files changed, 22 insertions(+), 12 deletions(-) diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs index 9aa7cf43338..42fab6a7b8c 100644 --- a/components/layout/fragment.rs +++ b/components/layout/fragment.rs @@ -29,7 +29,7 @@ use net_traits::image::base::{Image, ImageMetadata}; use net_traits::image_cache_thread::{ImageOrMetadataAvailable, UsePlaceholder}; use range::*; use rustc_serialize::{Encodable, Encoder}; -use script::layout_interface::HTMLCanvasData; +use script_layout_interface::HTMLCanvasData; use script_layout_interface::restyle_damage::{RECONSTRUCT_FLOW, RestyleDamage}; use std::borrow::ToOwned; use std::cmp::{max, min}; diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs index d8a61bb2a27..f96020e287e 100644 --- a/components/layout/wrapper.rs +++ b/components/layout/wrapper.rs @@ -40,12 +40,12 @@ use opaque_node::OpaqueNodeMethods; use range::Range; use script::layout_interface::{CAN_BE_FRAGMENTED, HAS_CHANGED, HAS_DIRTY_DESCENDANTS, IS_DIRTY}; use script::layout_interface::{CharacterDataTypeId, Document, Element, ElementTypeId}; -use script::layout_interface::{HTMLCanvasData, HTMLElementTypeId, LayoutCharacterDataHelpers}; +use script::layout_interface::{HTMLElementTypeId, LayoutCharacterDataHelpers}; use script::layout_interface::{LayoutDocumentHelpers, LayoutElementHelpers, LayoutJS}; use script::layout_interface::{LayoutNodeHelpers, Node, NodeTypeId}; use script::layout_interface::{RawLayoutElementHelpers, Text, TrustedNodeAddress}; -use script_layout_interface::LayoutNodeType; use script_layout_interface::restyle_damage::RestyleDamage; +use script_layout_interface::{HTMLCanvasData, LayoutNodeType}; use script_layout_interface::{OpaqueStyleAndLayoutData, PartialStyleAndLayoutData}; use selectors::matching::{DeclarationBlock, ElementFlags}; use selectors::parser::{AttrSelector, NamespaceConstraint}; diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs index 95073d49cd3..add54917e6d 100644 --- a/components/script/dom/htmlcanvaselement.rs +++ b/components/script/dom/htmlcanvaselement.rs @@ -30,6 +30,7 @@ use ipc_channel::ipc::{self, IpcSender}; use js::jsapi::{HandleValue, JSContext}; use offscreen_gl_context::GLContextAttributes; use rustc_serialize::base64::{STANDARD, ToBase64}; +use script_layout_interface::HTMLCanvasData; use std::iter::repeat; use string_cache::Atom; use style::attr::AttrValue; @@ -92,12 +93,6 @@ impl HTMLCanvasElement { } } -pub struct HTMLCanvasData { - pub ipc_renderer: Option>, - pub width: u32, - pub height: u32, -} - pub trait LayoutHTMLCanvasElementHelpers { fn data(&self) -> HTMLCanvasData; } diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index b803f41766c..f73abf1bd17 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -37,7 +37,7 @@ use dom::documenttype::DocumentType; use dom::element::{Element, ElementCreator}; use dom::eventtarget::EventTarget; use dom::htmlbodyelement::HTMLBodyElement; -use dom::htmlcanvaselement::{LayoutHTMLCanvasElementHelpers, HTMLCanvasData}; +use dom::htmlcanvaselement::LayoutHTMLCanvasElementHelpers; use dom::htmlcollection::HTMLCollection; use dom::htmlelement::HTMLElement; use dom::htmliframeelement::{HTMLIFrameElement, HTMLIFrameElementLayoutMethods}; @@ -61,7 +61,7 @@ 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::OpaqueStyleAndLayoutData; +use script_layout_interface::{HTMLCanvasData, OpaqueStyleAndLayoutData}; use script_layout_interface::{LayoutNodeType, LayoutElementType}; use script_traits::UntrustedNodeAddress; use selectors::matching::matches; diff --git a/components/script/layout_interface.rs b/components/script/layout_interface.rs index ae68cc0ec55..a7018507828 100644 --- a/components/script/layout_interface.rs +++ b/components/script/layout_interface.rs @@ -33,7 +33,6 @@ pub use dom::bindings::js::LayoutJS; pub use dom::characterdata::LayoutCharacterDataHelpers; pub use dom::document::{Document, LayoutDocumentHelpers}; pub use dom::element::{Element, LayoutElementHelpers, RawLayoutElementHelpers}; -pub use dom::htmlcanvaselement::HTMLCanvasData; pub use dom::htmlobjectelement::is_image_data; pub use dom::node::{CAN_BE_FRAGMENTED, HAS_CHANGED, HAS_DIRTY_DESCENDANTS, IS_DIRTY}; pub use dom::node::LayoutNodeHelpers; diff --git a/components/script_layout_interface/Cargo.toml b/components/script_layout_interface/Cargo.toml index cbc36fa02c4..32ff5c4dd2a 100644 --- a/components/script_layout_interface/Cargo.toml +++ b/components/script_layout_interface/Cargo.toml @@ -10,7 +10,9 @@ path = "lib.rs" [dependencies] bitflags = "0.7" +canvas_traits = {path = "../canvas_traits"} heapsize = "0.3.0" heapsize_plugin = "0.1.2" +ipc-channel = {git = "https://github.com/servo/ipc-channel"} plugins = {path = "../plugins"} style = {path = "../style"} diff --git a/components/script_layout_interface/lib.rs b/components/script_layout_interface/lib.rs index 0b3e1bce3e6..e7fa1e3ae6c 100644 --- a/components/script_layout_interface/lib.rs +++ b/components/script_layout_interface/lib.rs @@ -17,13 +17,17 @@ #[allow(unused_extern_crates)] #[macro_use] extern crate bitflags; +extern crate canvas_traits; extern crate core; extern crate heapsize; +extern crate ipc_channel; extern crate style; pub mod restyle_damage; +use canvas_traits::CanvasMsg; use core::nonzero::NonZero; +use ipc_channel::ipc::IpcSender; use restyle_damage::RestyleDamage; use std::cell::RefCell; use style::servo::PrivateStyleData; @@ -69,3 +73,9 @@ pub enum LayoutElementType { HTMLTableSectionElement, HTMLTextAreaElement, } + +pub struct HTMLCanvasData { + pub ipc_renderer: Option>, + pub width: u32, + pub height: u32, +} diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock index 5636de1687b..12e003e0177 100644 --- a/components/servo/Cargo.lock +++ b/components/servo/Cargo.lock @@ -1931,8 +1931,10 @@ name = "script_layout_interface" version = "0.0.1" dependencies = [ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "canvas_traits 0.0.1", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "ipc-channel 0.2.3 (git+https://github.com/servo/ipc-channel)", "plugins 0.0.1", "style 0.0.1", ] diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock index 8467c3bd56d..60c7a11a4a6 100644 --- a/ports/cef/Cargo.lock +++ b/ports/cef/Cargo.lock @@ -1789,8 +1789,10 @@ name = "script_layout_interface" version = "0.0.1" dependencies = [ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "canvas_traits 0.0.1", "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_plugin 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "ipc-channel 0.2.3 (git+https://github.com/servo/ipc-channel)", "plugins 0.0.1", "style 0.0.1", ]