aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/layout/block.rs6
-rw-r--r--components/layout/construct.rs21
-rw-r--r--components/layout/context.rs2
-rw-r--r--components/layout/css/matching.rs8
-rw-r--r--components/layout/data.rs (renamed from components/layout/util.rs)82
-rw-r--r--components/layout/display_list_builder.rs22
-rw-r--r--components/layout/floats.rs8
-rw-r--r--components/layout/flow.rs4
-rw-r--r--components/layout/fragment.rs12
-rw-r--r--components/layout/inline.rs8
-rw-r--r--components/layout/layout_task.rs26
-rw-r--r--components/layout/lib.rs5
-rw-r--r--components/layout/list_item.rs6
-rw-r--r--components/layout/model.rs4
-rw-r--r--components/layout/opaque_node.rs63
-rw-r--r--components/layout/parallel.rs10
-rw-r--r--components/layout/sequential.rs4
-rw-r--r--components/layout/table.rs4
-rw-r--r--components/layout/table_caption.rs4
-rw-r--r--components/layout/table_cell.rs4
-rw-r--r--components/layout/table_colgroup.rs2
-rw-r--r--components/layout/table_row.rs4
-rw-r--r--components/layout/table_rowgroup.rs4
-rw-r--r--components/layout/table_wrapper.rs2
-rw-r--r--components/layout/text.rs10
-rw-r--r--components/layout/traversal.rs4
-rw-r--r--components/layout/wrapper.rs6
-rw-r--r--tests/ref/basic.list6
28 files changed, 176 insertions, 165 deletions
diff --git a/components/layout/block.rs b/components/layout/block.rs
index fadba8af411..81edba159b7 100644
--- a/components/layout/block.rs
+++ b/components/layout/block.rs
@@ -53,9 +53,9 @@ use gfx::display_list::{ClippingRegion, DisplayList};
use rustc_serialize::{Encoder, Encodable};
use msg::compositor_msg::LayerId;
use msg::constellation_msg::ConstellationChan;
-use servo_util::geometry::{Au, MAX_AU};
-use servo_util::logical_geometry::{LogicalPoint, LogicalRect, LogicalSize};
-use servo_util::opts;
+use util::geometry::{Au, MAX_AU};
+use util::logical_geometry::{LogicalPoint, LogicalRect, LogicalSize};
+use util::opts;
use std::cmp::{max, min};
use std::fmt;
use style::computed_values::{overflow_x, overflow_y, position, box_sizing, display, float};
diff --git a/components/layout/construct.rs b/components/layout/construct.rs
index c7e56426adc..b8dd5a8415e 100644
--- a/components/layout/construct.rs
+++ b/components/layout/construct.rs
@@ -13,35 +13,36 @@
#![deny(unsafe_blocks)]
-use css::node_style::StyledNode;
use block::BlockFlow;
use context::LayoutContext;
+use css::node_style::StyledNode;
use floats::FloatKind;
-use flow::{Flow, ImmutableFlowUtils, MutableOwnedFlowUtils};
use flow::{Descendants, AbsDescendants};
+use flow::{Flow, ImmutableFlowUtils, MutableOwnedFlowUtils};
use flow::{IS_ABSOLUTELY_POSITIONED};
use flow;
use flow_ref::FlowRef;
-use fragment::{Fragment, IframeFragmentInfo};
-use fragment::ImageFragmentInfo;
use fragment::CanvasFragmentInfo;
+use fragment::ImageFragmentInfo;
use fragment::InlineAbsoluteHypotheticalFragmentInfo;
-use fragment::{InlineBlockFragmentInfo, SpecificFragmentInfo};
use fragment::TableColumnFragmentInfo;
use fragment::UnscannedTextFragmentInfo;
+use fragment::{Fragment, IframeFragmentInfo};
+use fragment::{InlineBlockFragmentInfo, SpecificFragmentInfo};
use incremental::{RECONSTRUCT_FLOW, RestyleDamage};
use inline::InlineFlow;
+use data::{HAS_NEWLY_CONSTRUCTED_FLOW, LayoutDataAccess, LayoutDataWrapper};
use list_item::{self, ListItemFlow};
+use opaque_node::OpaqueNodeMethods;
use parallel;
-use table_wrapper::TableWrapperFlow;
use table::TableFlow;
use table_caption::TableCaptionFlow;
+use table_cell::TableCellFlow;
use table_colgroup::TableColGroupFlow;
-use table_rowgroup::TableRowGroupFlow;
use table_row::TableRowFlow;
-use table_cell::TableCellFlow;
+use table_rowgroup::TableRowGroupFlow;
+use table_wrapper::TableWrapperFlow;
use text::TextRunScanner;
-use util::{HAS_NEWLY_CONSTRUCTED_FLOW, LayoutDataAccess, OpaqueNodeMethods, LayoutDataWrapper};
use wrapper::{PostorderNodeMutTraversal, PseudoElementType, TLayoutNode, ThreadSafeLayoutNode};
use gfx::display_list::OpaqueNode;
@@ -49,7 +50,7 @@ use script::dom::element::ElementTypeId;
use script::dom::htmlelement::HTMLElementTypeId;
use script::dom::htmlobjectelement::is_image_data;
use script::dom::node::NodeTypeId;
-use servo_util::opts;
+use util::opts;
use std::borrow::ToOwned;
use std::collections::DList;
use std::mem;
diff --git a/components/layout/context.rs b/components/layout/context.rs
index edf5c5177b2..00d9f2139b1 100644
--- a/components/layout/context.rs
+++ b/components/layout/context.rs
@@ -16,7 +16,7 @@ use script::layout_interface::LayoutChan;
use script_traits::UntrustedNodeAddress;
use msg::constellation_msg::ConstellationChan;
use net::local_image_cache::LocalImageCache;
-use servo_util::geometry::Au;
+use util::geometry::Au;
use std::boxed;
use std::cell::Cell;
use std::ptr;
diff --git a/components/layout/css/matching.rs b/components/layout/css/matching.rs
index d76ee7ac5f8..f688be2cda5 100644
--- a/components/layout/css/matching.rs
+++ b/components/layout/css/matching.rs
@@ -9,14 +9,14 @@
use context::SharedLayoutContext;
use css::node_style::StyledNode;
use incremental::{self, RestyleDamage};
-use util::{LayoutDataAccess, LayoutDataWrapper};
+use data::{LayoutDataAccess, LayoutDataWrapper};
use wrapper::{LayoutElement, LayoutNode, TLayoutNode};
use script::dom::node::NodeTypeId;
use selectors::bloom::BloomFilter;
-use servo_util::cache::{LRUCache, SimpleHashCache};
-use servo_util::smallvec::{SmallVec, SmallVec16};
-use servo_util::arc_ptr_eq;
+use util::cache::{LRUCache, SimpleHashCache};
+use util::smallvec::{SmallVec, SmallVec16};
+use util::arc_ptr_eq;
use std::borrow::ToOwned;
use std::mem;
use std::hash::{Hash, Hasher, Writer};
diff --git a/components/layout/util.rs b/components/layout/data.rs
index 5b3bccd5b07..da24d662485 100644
--- a/components/layout/util.rs
+++ b/components/layout/data.rs
@@ -6,23 +6,15 @@
use construct::{ConstructionItem, ConstructionResult};
use incremental::RestyleDamage;
-use parallel::DomParallelInfo;
-use wrapper::{LayoutNode, TLayoutNode, ThreadSafeLayoutNode};
-
-use azure::azure_hl::Color;
-use gfx::display_list::OpaqueNode;
-use gfx;
-use libc::{c_void, uintptr_t};
use msg::constellation_msg::ConstellationChan;
-use script::dom::bindings::js::LayoutJS;
-use script::dom::node::{Node, SharedLayoutData};
-use script::layout_interface::{LayoutChan, TrustedNodeAddress};
-use script_traits::UntrustedNodeAddress;
-use std::mem;
+use parallel::DomParallelInfo;
+use script::dom::node::SharedLayoutData;
+use script::layout_interface::LayoutChan;
use std::cell::{Ref, RefMut};
-use style::properties::ComputedValues;
-use style;
+use std::mem;
use std::sync::Arc;
+use style::properties::ComputedValues;
+use wrapper::{LayoutNode, TLayoutNode};
/// Data that layout associates with a node.
pub struct PrivateLayoutData {
@@ -141,65 +133,3 @@ impl<'ln> LayoutDataAccess for LayoutNode<'ln> {
}
}
}
-
-pub trait OpaqueNodeMethods {
- /// Converts a DOM node (layout view) to an `OpaqueNode`.
- fn from_layout_node(node: &LayoutNode) -> Self;
-
- /// Converts a thread-safe DOM node (layout view) to an `OpaqueNode`.
- fn from_thread_safe_layout_node(node: &ThreadSafeLayoutNode) -> Self;
-
- /// Converts a DOM node (script view) to an `OpaqueNode`.
- fn from_script_node(node: TrustedNodeAddress) -> Self;
-
- /// Converts a DOM node to an `OpaqueNode'.
- fn from_jsmanaged(node: &LayoutJS<Node>) -> Self;
-
- /// Converts this node to an `UntrustedNodeAddress`. An `UntrustedNodeAddress` is just the type
- /// of node that script expects to receive in a hit test.
- fn to_untrusted_node_address(&self) -> UntrustedNodeAddress;
-}
-
-impl OpaqueNodeMethods for OpaqueNode {
- fn from_layout_node(node: &LayoutNode) -> OpaqueNode {
- unsafe {
- OpaqueNodeMethods::from_jsmanaged(node.get_jsmanaged())
- }
- }
-
- fn from_thread_safe_layout_node(node: &ThreadSafeLayoutNode) -> OpaqueNode {
- unsafe {
- OpaqueNodeMethods::from_jsmanaged(node.get_jsmanaged())
- }
- }
-
- fn from_script_node(node: TrustedNodeAddress) -> OpaqueNode {
- unsafe {
- OpaqueNodeMethods::from_jsmanaged(&LayoutJS::from_trusted_node_address(node))
- }
- }
-
- fn from_jsmanaged(node: &LayoutJS<Node>) -> OpaqueNode {
- unsafe {
- let ptr: uintptr_t = node.get_jsobject() as uintptr_t;
- OpaqueNode(ptr)
- }
- }
-
- fn to_untrusted_node_address(&self) -> UntrustedNodeAddress {
- let OpaqueNode(addr) = *self;
- UntrustedNodeAddress(addr as *const c_void)
- }
-}
-
-/// Allows a CSS color to be converted into a graphics color.
-pub trait ToGfxColor {
- /// Converts a CSS color to a graphics color.
- fn to_gfx_color(&self) -> Color;
-}
-
-impl ToGfxColor for style::values::RGBA {
- fn to_gfx_color(&self) -> Color {
- gfx::color::rgba(self.red, self.green, self.blue, self.alpha)
- }
-}
diff --git a/components/layout/display_list_builder.rs b/components/layout/display_list_builder.rs
index e61e8728eb6..c9e82e7eb8e 100644
--- a/components/layout/display_list_builder.rs
+++ b/components/layout/display_list_builder.rs
@@ -10,6 +10,7 @@
#![deny(unsafe_blocks)]
+use azure::azure_hl::Color;
use block::BlockFlow;
use canvas::canvas_paint_task::CanvasMsg::SendPixelContents;
use context::LayoutContext;
@@ -19,7 +20,7 @@ use fragment::{ScannedTextFragmentInfo, SpecificFragmentInfo};
use inline::InlineFlow;
use list_item::ListItemFlow;
use model::{self, MaybeAuto};
-use util::{OpaqueNodeMethods, ToGfxColor};
+use opaque_node::OpaqueNodeMethods;
use geom::{Point2D, Rect, Size2D, SideOffsets2D};
use gfx::color;
@@ -36,10 +37,10 @@ use msg::compositor_msg::ScrollPolicy;
use msg::constellation_msg::Msg as ConstellationMsg;
use msg::constellation_msg::ConstellationChan;
use net::image::holder::ImageHolder;
-use servo_util::cursor::Cursor;
-use servo_util::geometry::{self, Au, ZERO_POINT, to_px, to_frac_px};
-use servo_util::logical_geometry::{LogicalPoint, LogicalRect, LogicalSize};
-use servo_util::opts;
+use util::cursor::Cursor;
+use util::geometry::{self, Au, ZERO_POINT, to_px, to_frac_px};
+use util::logical_geometry::{LogicalPoint, LogicalRect, LogicalSize};
+use util::opts;
use std::cmp;
use std::default::Default;
use std::iter::repeat;
@@ -1572,3 +1573,14 @@ fn shadow_bounds(content_rect: &Rect<Au>, blur_radius: Au, spread_radius: Au) ->
content_rect.inflate(inflation, inflation)
}
+/// Allows a CSS color to be converted into a graphics color.
+pub trait ToGfxColor {
+ /// Converts a CSS color to a graphics color.
+ fn to_gfx_color(&self) -> Color;
+}
+
+impl ToGfxColor for RGBA {
+ fn to_gfx_color(&self) -> Color {
+ color::rgba(self.red, self.green, self.blue, self.alpha)
+ }
+}
diff --git a/components/layout/floats.rs b/components/layout/floats.rs
index 7fb155800f9..9c83322c1c7 100644
--- a/components/layout/floats.rs
+++ b/components/layout/floats.rs
@@ -2,10 +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 servo_util::geometry::Au;
-use servo_util::logical_geometry::WritingMode;
-use servo_util::logical_geometry::{LogicalPoint, LogicalRect, LogicalSize};
-use servo_util::persistent_list::PersistentList;
+use util::geometry::Au;
+use util::logical_geometry::WritingMode;
+use util::logical_geometry::{LogicalPoint, LogicalRect, LogicalSize};
+use util::persistent_list::PersistentList;
use std::cmp::{max, min};
use std::i32;
use std::fmt;
diff --git a/components/layout/flow.rs b/components/layout/flow.rs
index ec618e03847..90cdc8a8030 100644
--- a/components/layout/flow.rs
+++ b/components/layout/flow.rs
@@ -51,8 +51,8 @@ use gfx::display_list::ClippingRegion;
use rustc_serialize::{Encoder, Encodable};
use msg::constellation_msg::ConstellationChan;
use msg::compositor_msg::LayerId;
-use servo_util::geometry::{Au, ZERO_RECT};
-use servo_util::logical_geometry::{LogicalRect, LogicalSize, WritingMode};
+use util::geometry::{Au, ZERO_RECT};
+use util::logical_geometry::{LogicalRect, LogicalSize, WritingMode};
use std::mem;
use std::fmt;
use std::iter::Zip;
diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs
index 3fba0974bdf..4d66a76b582 100644
--- a/components/layout/fragment.rs
+++ b/components/layout/fragment.rs
@@ -20,7 +20,7 @@ use layout_debug;
use model::{IntrinsicISizes, IntrinsicISizesContribution, MaybeAuto, specified};
use model;
use text;
-use util::OpaqueNodeMethods;
+use opaque_node::OpaqueNodeMethods;
use wrapper::{TLayoutNode, ThreadSafeLayoutNode};
use geom::num::Zero;
@@ -33,11 +33,11 @@ use rustc_serialize::{Encodable, Encoder};
use msg::constellation_msg::{ConstellationChan, Msg, PipelineId, SubpageId};
use net::image::holder::ImageHolder;
use net::local_image_cache::LocalImageCache;
-use servo_util::geometry::{self, Au, ZERO_POINT};
-use servo_util::logical_geometry::{LogicalRect, LogicalSize, LogicalMargin};
-use servo_util::range::*;
-use servo_util::smallvec::SmallVec;
-use servo_util::str::is_whitespace;
+use util::geometry::{self, Au, ZERO_POINT};
+use util::logical_geometry::{LogicalRect, LogicalSize, LogicalMargin};
+use util::range::*;
+use util::smallvec::SmallVec;
+use util::str::is_whitespace;
use std::borrow::ToOwned;
use std::cmp::{max, min};
use std::collections::DList;
diff --git a/components/layout/inline.rs b/components/layout/inline.rs
index 0a4b575c3c4..a1bc2af0ae2 100644
--- a/components/layout/inline.rs
+++ b/components/layout/inline.rs
@@ -24,10 +24,10 @@ use geom::{Point2D, Rect};
use gfx::font::FontMetrics;
use gfx::font_context::FontContext;
use gfx::text::glyph::CharIndex;
-use servo_util::arc_ptr_eq;
-use servo_util::geometry::{Au, ZERO_RECT};
-use servo_util::logical_geometry::{LogicalRect, LogicalSize, WritingMode};
-use servo_util::range::{Range, RangeIndex};
+use util::arc_ptr_eq;
+use util::geometry::{Au, ZERO_RECT};
+use util::logical_geometry::{LogicalRect, LogicalSize, WritingMode};
+use util::range::{Range, RangeIndex};
use std::cmp::max;
use std::fmt;
use std::mem;
diff --git a/components/layout/layout_task.rs b/components/layout/layout_task.rs
index dedc682af4c..793bc083723 100644
--- a/components/layout/layout_task.rs
+++ b/components/layout/layout_task.rs
@@ -7,17 +7,19 @@
#![allow(unsafe_blocks)]
-use css::node_style::StyledNode;
use construct::ConstructionResult;
use context::{SharedLayoutContext, SharedLayoutContextWrapper};
+use css::node_style::StyledNode;
+use display_list_builder::ToGfxColor;
use flow::{self, Flow, ImmutableFlowUtils, MutableFlowUtils, MutableOwnedFlowUtils};
use flow_ref::FlowRef;
use fragment::{Fragment, FragmentBorderBoxIterator};
use incremental::{LayoutDamageComputation, REFLOW, REFLOW_ENTIRE_DOCUMENT, REPAINT};
+use data::{LayoutDataAccess, LayoutDataWrapper};
use layout_debug;
+use opaque_node::OpaqueNodeMethods;
use parallel::{self, UnsafeFlow};
use sequential;
-use util::{LayoutDataAccess, LayoutDataWrapper, OpaqueNodeMethods, ToGfxColor};
use wrapper::{LayoutNode, TLayoutNode, ThreadSafeLayoutNode};
use encoding::EncodingRef;
@@ -51,16 +53,16 @@ use msg::constellation_msg::{ConstellationChan, Failure, PipelineExitType, Pipel
use net::image_cache_task::{ImageCacheTask, ImageResponseMsg};
use net::local_image_cache::{ImageResponder, LocalImageCache};
use net::resource_task::{ResourceTask, load_bytes_iter};
-use servo_util::cursor::Cursor;
-use servo_util::geometry::Au;
-use servo_util::logical_geometry::LogicalPoint;
-use servo_util::opts;
-use servo_util::smallvec::{SmallVec, SmallVec1, VecLike};
-use servo_util::task::spawn_named_with_send_on_failure;
-use servo_util::task_state;
-use servo_util::time::{TimeProfilerCategory, ProfilerMetadata, TimeProfilerChan};
-use servo_util::time::{TimerMetadataFrameType, TimerMetadataReflowType, profile};
-use servo_util::workqueue::WorkQueue;
+use util::cursor::Cursor;
+use util::geometry::Au;
+use util::logical_geometry::LogicalPoint;
+use util::opts;
+use util::smallvec::{SmallVec, SmallVec1, VecLike};
+use util::task::spawn_named_with_send_on_failure;
+use util::task_state;
+use util::time::{TimeProfilerCategory, ProfilerMetadata, TimeProfilerChan};
+use util::time::{TimerMetadataFrameType, TimerMetadataReflowType, profile};
+use util::workqueue::WorkQueue;
use std::borrow::ToOwned;
use std::cell::Cell;
use std::ops::{Deref, DerefMut};
diff --git a/components/layout/lib.rs b/components/layout/lib.rs
index 837945eff81..6eb177f6f94 100644
--- a/components/layout/lib.rs
+++ b/components/layout/lib.rs
@@ -43,7 +43,7 @@ extern crate net;
extern crate msg;
extern crate selectors;
#[macro_use]
-extern crate "util" as servo_util;
+extern crate util;
#[no_link] #[macro_use] #[plugin]
extern crate string_cache_macros;
@@ -60,6 +60,7 @@ pub mod layout_debug;
pub mod block;
pub mod construct;
pub mod context;
+pub mod data;
pub mod display_list_builder;
pub mod floats;
pub mod flow;
@@ -70,6 +71,7 @@ pub mod layout_task;
pub mod inline;
pub mod list_item;
pub mod model;
+pub mod opaque_node;
pub mod parallel;
pub mod sequential;
pub mod table_wrapper;
@@ -81,7 +83,6 @@ pub mod table_row;
pub mod table_cell;
pub mod text;
pub mod traversal;
-pub mod util;
pub mod incremental;
pub mod wrapper;
diff --git a/components/layout/list_item.rs b/components/layout/list_item.rs
index eedb2d3b6b6..84c713af944 100644
--- a/components/layout/list_item.rs
+++ b/components/layout/list_item.rs
@@ -18,9 +18,9 @@ use wrapper::ThreadSafeLayoutNode;
use geom::{Point2D, Rect};
use gfx::display_list::DisplayList;
-use servo_util::geometry::Au;
-use servo_util::logical_geometry::LogicalRect;
-use servo_util::opts;
+use util::geometry::Au;
+use util::logical_geometry::LogicalRect;
+use util::opts;
use style::properties::ComputedValues;
use style::computed_values::list_style_type;
use std::sync::Arc;
diff --git a/components/layout/model.rs b/components/layout/model.rs
index d62a8390351..4f617629f42 100644
--- a/components/layout/model.rs
+++ b/components/layout/model.rs
@@ -11,8 +11,8 @@ use fragment::Fragment;
use geom::SideOffsets2D;
use style::values::computed::{LengthOrPercentageOrAuto, LengthOrPercentageOrNone, LengthOrPercentage};
use style::properties::ComputedValues;
-use servo_util::geometry::Au;
-use servo_util::logical_geometry::LogicalMargin;
+use util::geometry::Au;
+use util::logical_geometry::LogicalMargin;
use std::cmp::{max, min};
use std::fmt;
diff --git a/components/layout/opaque_node.rs b/components/layout/opaque_node.rs
new file mode 100644
index 00000000000..e40538251de
--- /dev/null
+++ b/components/layout/opaque_node.rs
@@ -0,0 +1,63 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * 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/. */
+
+#![allow(unsafe_blocks)]
+
+use gfx::display_list::OpaqueNode;
+use libc::{c_void, uintptr_t};
+use script::dom::bindings::js::LayoutJS;
+use script::dom::node::Node;
+use script::layout_interface::{TrustedNodeAddress};
+use script_traits::UntrustedNodeAddress;
+use wrapper::{LayoutNode, TLayoutNode, ThreadSafeLayoutNode};
+
+pub trait OpaqueNodeMethods {
+ /// Converts a DOM node (layout view) to an `OpaqueNode`.
+ fn from_layout_node(node: &LayoutNode) -> Self;
+
+ /// Converts a thread-safe DOM node (layout view) to an `OpaqueNode`.
+ fn from_thread_safe_layout_node(node: &ThreadSafeLayoutNode) -> Self;
+
+ /// Converts a DOM node (script view) to an `OpaqueNode`.
+ fn from_script_node(node: TrustedNodeAddress) -> Self;
+
+ /// Converts a DOM node to an `OpaqueNode'.
+ fn from_jsmanaged(node: &LayoutJS<Node>) -> Self;
+
+ /// Converts this node to an `UntrustedNodeAddress`. An `UntrustedNodeAddress` is just the type
+ /// of node that script expects to receive in a hit test.
+ fn to_untrusted_node_address(&self) -> UntrustedNodeAddress;
+}
+
+impl OpaqueNodeMethods for OpaqueNode {
+ fn from_layout_node(node: &LayoutNode) -> OpaqueNode {
+ unsafe {
+ OpaqueNodeMethods::from_jsmanaged(node.get_jsmanaged())
+ }
+ }
+
+ fn from_thread_safe_layout_node(node: &ThreadSafeLayoutNode) -> OpaqueNode {
+ unsafe {
+ OpaqueNodeMethods::from_jsmanaged(node.get_jsmanaged())
+ }
+ }
+
+ fn from_script_node(node: TrustedNodeAddress) -> OpaqueNode {
+ unsafe {
+ OpaqueNodeMethods::from_jsmanaged(&LayoutJS::from_trusted_node_address(node))
+ }
+ }
+
+ fn from_jsmanaged(node: &LayoutJS<Node>) -> OpaqueNode {
+ unsafe {
+ let ptr: uintptr_t = node.get_jsobject() as uintptr_t;
+ OpaqueNode(ptr)
+ }
+ }
+
+ fn to_untrusted_node_address(&self) -> UntrustedNodeAddress {
+ let OpaqueNode(addr) = *self;
+ UntrustedNodeAddress(addr as *const c_void)
+ }
+}
diff --git a/components/layout/parallel.rs b/components/layout/parallel.rs
index acc6b6fff9d..ee2ca416cd1 100644
--- a/components/layout/parallel.rs
+++ b/components/layout/parallel.rs
@@ -12,17 +12,17 @@ use context::{LayoutContext, SharedLayoutContextWrapper, SharedLayoutContext};
use flow::{Flow, MutableFlowUtils, PreorderFlowTraversal, PostorderFlowTraversal};
use flow;
use flow_ref::FlowRef;
-use traversal::{RecalcStyleForNode, ConstructFlows};
+use data::{LayoutDataAccess, LayoutDataWrapper};
use traversal::{BubbleISizes, AssignISizes, AssignBSizesAndStoreOverflow};
use traversal::{ComputeAbsolutePositions, BuildDisplayList};
-use util::{LayoutDataAccess, LayoutDataWrapper};
+use traversal::{RecalcStyleForNode, ConstructFlows};
use wrapper::{layout_node_to_unsafe_layout_node, layout_node_from_unsafe_layout_node, LayoutNode};
use wrapper::{PostorderNodeMutTraversal, UnsafeLayoutNode};
use wrapper::{PreorderDomTraversal, PostorderDomTraversal};
-use servo_util::opts;
-use servo_util::time::{TimeProfilerCategory, ProfilerMetadata, TimeProfilerChan, profile};
-use servo_util::workqueue::{WorkQueue, WorkUnit, WorkerProxy};
+use util::opts;
+use util::time::{TimeProfilerCategory, ProfilerMetadata, TimeProfilerChan, profile};
+use util::workqueue::{WorkQueue, WorkUnit, WorkerProxy};
use std::mem;
use std::ptr;
use std::sync::atomic::{AtomicInt, Ordering};
diff --git a/components/layout/sequential.rs b/components/layout/sequential.rs
index ff2bd948c51..7007fdfa427 100644
--- a/components/layout/sequential.rs
+++ b/components/layout/sequential.rs
@@ -17,8 +17,8 @@ use wrapper::{PostorderNodeMutTraversal};
use wrapper::{PreorderDomTraversal, PostorderDomTraversal};
use geom::point::Point2D;
-use servo_util::geometry::{Au, ZERO_POINT};
-use servo_util::opts;
+use util::geometry::{Au, ZERO_POINT};
+use util::opts;
pub fn traverse_dom_preorder(root: LayoutNode,
shared_layout_context: &SharedLayoutContext) {
diff --git a/components/layout/table.rs b/components/layout/table.rs
index 270143a21da..9679938b2e7 100644
--- a/components/layout/table.rs
+++ b/components/layout/table.rs
@@ -21,8 +21,8 @@ use table_wrapper::TableLayout;
use wrapper::ThreadSafeLayoutNode;
use geom::{Point2D, Rect};
-use servo_util::geometry::Au;
-use servo_util::logical_geometry::LogicalRect;
+use util::geometry::Au;
+use util::logical_geometry::LogicalRect;
use std::cmp::max;
use std::fmt;
use style::properties::ComputedValues;
diff --git a/components/layout/table_caption.rs b/components/layout/table_caption.rs
index 43eaacf9384..ceb6bf7e3aa 100644
--- a/components/layout/table_caption.rs
+++ b/components/layout/table_caption.rs
@@ -14,8 +14,8 @@ use fragment::FragmentBorderBoxIterator;
use wrapper::ThreadSafeLayoutNode;
use geom::{Point2D, Rect};
-use servo_util::geometry::Au;
-use servo_util::logical_geometry::LogicalRect;
+use util::geometry::Au;
+use util::logical_geometry::LogicalRect;
use std::fmt;
use style::properties::ComputedValues;
use std::sync::Arc;
diff --git a/components/layout/table_cell.rs b/components/layout/table_cell.rs
index 670dcf7b344..f018e72c2c3 100644
--- a/components/layout/table_cell.rs
+++ b/components/layout/table_cell.rs
@@ -16,8 +16,8 @@ use table::InternalTable;
use wrapper::ThreadSafeLayoutNode;
use geom::{Point2D, Rect};
-use servo_util::geometry::Au;
-use servo_util::logical_geometry::LogicalRect;
+use util::geometry::Au;
+use util::logical_geometry::LogicalRect;
use std::fmt;
use style::properties::ComputedValues;
use style::legacy::UnsignedIntegerAttribute;
diff --git a/components/layout/table_colgroup.rs b/components/layout/table_colgroup.rs
index 6d19a0c5778..f0ad4cff9ca 100644
--- a/components/layout/table_colgroup.rs
+++ b/components/layout/table_colgroup.rs
@@ -14,7 +14,7 @@ use layout_debug;
use wrapper::ThreadSafeLayoutNode;
use geom::{Point2D, Rect};
-use servo_util::geometry::{Au, ZERO_RECT};
+use util::geometry::{Au, ZERO_RECT};
use std::cmp::max;
use std::fmt;
use style::values::computed::LengthOrPercentageOrAuto;
diff --git a/components/layout/table_row.rs b/components/layout/table_row.rs
index d712d7e4945..3f07e401afb 100644
--- a/components/layout/table_row.rs
+++ b/components/layout/table_row.rs
@@ -19,8 +19,8 @@ use model::MaybeAuto;
use wrapper::ThreadSafeLayoutNode;
use geom::{Point2D, Rect};
-use servo_util::geometry::Au;
-use servo_util::logical_geometry::LogicalRect;
+use util::geometry::Au;
+use util::logical_geometry::LogicalRect;
use std::cmp::max;
use std::fmt;
use style::properties::ComputedValues;
diff --git a/components/layout/table_rowgroup.rs b/components/layout/table_rowgroup.rs
index 9728fde36a8..1596e1bfab0 100644
--- a/components/layout/table_rowgroup.rs
+++ b/components/layout/table_rowgroup.rs
@@ -16,8 +16,8 @@ use table::{ColumnComputedInlineSize, ColumnIntrinsicInlineSize, InternalTable};
use wrapper::ThreadSafeLayoutNode;
use geom::{Point2D, Rect};
-use servo_util::geometry::Au;
-use servo_util::logical_geometry::LogicalRect;
+use util::geometry::Au;
+use util::logical_geometry::LogicalRect;
use std::fmt;
use style::properties::ComputedValues;
use std::sync::Arc;
diff --git a/components/layout/table_wrapper.rs b/components/layout/table_wrapper.rs
index e849150bede..0d2b6267806 100644
--- a/components/layout/table_wrapper.rs
+++ b/components/layout/table_wrapper.rs
@@ -24,7 +24,7 @@ use table::{ColumnComputedInlineSize, ColumnIntrinsicInlineSize};
use wrapper::ThreadSafeLayoutNode;
use geom::{Point2D, Rect};
-use servo_util::geometry::Au;
+use util::geometry::Au;
use std::cmp::{max, min};
use std::fmt;
use std::ops::Add;
diff --git a/components/layout/text.rs b/components/layout/text.rs
index 697b2301738..4c5a2a6436d 100644
--- a/components/layout/text.rs
+++ b/components/layout/text.rs
@@ -15,11 +15,11 @@ use gfx::font_context::FontContext;
use gfx::text::glyph::CharIndex;
use gfx::text::text_run::TextRun;
use gfx::text::util::{self, CompressionMode};
-use servo_util::dlist;
-use servo_util::geometry::Au;
-use servo_util::logical_geometry::{LogicalSize, WritingMode};
-use servo_util::range::Range;
-use servo_util::smallvec::{SmallVec, SmallVec1};
+use util::dlist;
+use util::geometry::Au;
+use util::logical_geometry::{LogicalSize, WritingMode};
+use util::range::Range;
+use util::smallvec::{SmallVec, SmallVec1};
use std::collections::DList;
use std::mem;
use style::computed_values::{line_height, text_orientation, text_rendering, text_transform};
diff --git a/components/layout/traversal.rs b/components/layout/traversal.rs
index 5e5138a4fae..a31f6c9d3b6 100644
--- a/components/layout/traversal.rs
+++ b/components/layout/traversal.rs
@@ -19,8 +19,8 @@ use wrapper::{PostorderNodeMutTraversal, ThreadSafeLayoutNode, UnsafeLayoutNode}
use wrapper::{PreorderDomTraversal, PostorderDomTraversal};
use selectors::bloom::BloomFilter;
-use servo_util::opts;
-use servo_util::tid::tid;
+use util::opts;
+use util::tid::tid;
use style::node::TNode;
use std::cell::RefCell;
diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs
index 54f341d1d09..74b3d20ca1c 100644
--- a/components/layout/wrapper.rs
+++ b/components/layout/wrapper.rs
@@ -36,8 +36,8 @@ use canvas::canvas_paint_task::CanvasMsg;
use context::SharedLayoutContext;
use css::node_style::StyledNode;
use incremental::RestyleDamage;
-use util::{LayoutDataAccess, LayoutDataFlags, LayoutDataWrapper, OpaqueNodeMethods};
-use util::{PrivateLayoutData};
+use data::{LayoutDataAccess, LayoutDataFlags, LayoutDataWrapper, PrivateLayoutData};
+use opaque_node::OpaqueNodeMethods;
use cssparser::RGBA;
use gfx::display_list::OpaqueNode;
@@ -60,7 +60,7 @@ use script::dom::node::{HAS_CHANGED, IS_DIRTY, HAS_DIRTY_SIBLINGS, HAS_DIRTY_DES
use script::dom::text::Text;
use script::layout_interface::LayoutChan;
use msg::constellation_msg::{PipelineId, SubpageId};
-use servo_util::str::{LengthOrPercentageOrAuto, is_whitespace};
+use util::str::{LengthOrPercentageOrAuto, is_whitespace};
use std::borrow::ToOwned;
use std::cell::{Ref, RefMut};
use std::marker::ContravariantLifetime;
diff --git a/tests/ref/basic.list b/tests/ref/basic.list
index 8dc421956a4..13e258eb3db 100644
--- a/tests/ref/basic.list
+++ b/tests/ref/basic.list
@@ -139,8 +139,10 @@ fragment=top != ../html/acid2.html acid2_ref.html
== iframe/overflow.html iframe/overflow_ref.html
== iframe/positioning_margin.html iframe/positioning_margin_ref.html
== iframe/hide_and_show.html iframe/hide_and_show_ref.html
-== iframe/hide_layers1.html iframe/hide_layers_ref.html
-== iframe/hide_layers2.html iframe/hide_layers_ref.html
+
+# gw: race condition here caused by pipelines never painting when removed from document
+#== iframe/hide_layers1.html iframe/hide_layers_ref.html
+#== iframe/hide_layers2.html iframe/hide_layers_ref.html
== floated_generated_content_a.html floated_generated_content_b.html
== inline_block_margin_a.html inline_block_margin_ref.html