aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2016-03-25 03:27:33 +0530
committerbors-servo <lbergstrom+bors@mozilla.com>2016-03-25 03:27:33 +0530
commit605842f193aedc1151ab38a99c49f693c76e5cf3 (patch)
tree1390698f84106f785cd82ecbbfda0bb53e725a77 /components/layout
parent7f944afee88bb2ab13de4f37118af14d40328f7f (diff)
parente82aa66245935f0aaac61e667a38dce9b5662f42 (diff)
downloadservo-605842f193aedc1151ab38a99c49f693c76e5cf3.tar.gz
servo-605842f193aedc1151ab38a99c49f693c76e5cf3.zip
Auto merge of #10155 - bholley:generalize_style_structs, r=SimonSapin
Generalize the style structs This allows geckolib to pass gecko style structs and have the style system write to them directly, provided we implement all the traits. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10155) <!-- Reviewable:end -->
Diffstat (limited to 'components/layout')
-rw-r--r--components/layout/block.rs2
-rw-r--r--components/layout/construct.rs2
-rw-r--r--components/layout/context.rs7
-rw-r--r--components/layout/display_list_builder.rs2
-rw-r--r--components/layout/flex.rs2
-rw-r--r--components/layout/flow.rs2
-rw-r--r--components/layout/fragment.rs2
-rw-r--r--components/layout/generated_content.rs2
-rw-r--r--components/layout/incremental.rs3
-rw-r--r--components/layout/inline.rs2
-rw-r--r--components/layout/layout_thread.rs1
-rw-r--r--components/layout/list_item.rs2
-rw-r--r--components/layout/model.rs2
-rw-r--r--components/layout/multicol.rs2
-rw-r--r--components/layout/query.rs1
-rw-r--r--components/layout/table.rs2
-rw-r--r--components/layout/table_caption.rs2
-rw-r--r--components/layout/table_cell.rs2
-rw-r--r--components/layout/table_colgroup.rs2
-rw-r--r--components/layout/table_row.rs2
-rw-r--r--components/layout/table_rowgroup.rs2
-rw-r--r--components/layout/table_wrapper.rs2
-rw-r--r--components/layout/text.rs2
-rw-r--r--components/layout/wrapper.rs3
24 files changed, 29 insertions, 24 deletions
diff --git a/components/layout/block.rs b/components/layout/block.rs
index 19bb6e71ce2..06f41861425 100644
--- a/components/layout/block.rs
+++ b/components/layout/block.rs
@@ -60,7 +60,7 @@ use style::computed_values::{border_collapse, box_sizing, display, float, overfl
use style::computed_values::{position, text_align, transform_style};
use style::context::StyleContext;
use style::logical_geometry::{LogicalPoint, LogicalRect, LogicalSize, WritingMode};
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
use style::values::computed::{LengthOrNone, LengthOrPercentageOrNone};
use style::values::computed::{LengthOrPercentage, LengthOrPercentageOrAuto};
use util::geometry::MAX_RECT;
diff --git a/components/layout/construct.rs b/components/layout/construct.rs
index 25988b7eb11..aedbeaf04f6 100644
--- a/components/layout/construct.rs
+++ b/components/layout/construct.rs
@@ -45,7 +45,7 @@ use std::sync::atomic::Ordering;
use style::computed_values::content::ContentItem;
use style::computed_values::{caption_side, display, empty_cells, float, list_style_position};
use style::computed_values::{position};
-use style::properties::{self, ComputedValues};
+use style::properties::{self, ComputedValues, TComputedValues};
use table::TableFlow;
use table_caption::TableCaptionFlow;
use table_cell::TableCellFlow;
diff --git a/components/layout/context.rs b/components/layout/context.rs
index 2775e6e791c..7b6fa3e4691 100644
--- a/components/layout/context.rs
+++ b/components/layout/context.rs
@@ -26,13 +26,14 @@ use std::rc::Rc;
use std::sync::{Arc, Mutex, RwLock};
use style::context::{LocalStyleContext, StyleContext};
use style::matching::{ApplicableDeclarationsCache, StyleSharingCandidateCache};
+use style::properties::ComputedValues;
use style::selector_impl::ServoSelectorImpl;
use style::servo::SharedStyleContext;
use url::Url;
use util::opts;
struct LocalLayoutContext {
- style_context: LocalStyleContext,
+ style_context: LocalStyleContext<ComputedValues>,
font_context: RefCell<FontContext>,
}
@@ -107,12 +108,12 @@ pub struct LayoutContext<'a> {
cached_local_layout_context: Rc<LocalLayoutContext>,
}
-impl<'a> StyleContext<'a, ServoSelectorImpl> for LayoutContext<'a> {
+impl<'a> StyleContext<'a, ServoSelectorImpl, ComputedValues> for LayoutContext<'a> {
fn shared_context(&self) -> &'a SharedStyleContext {
&self.shared.style_context
}
- fn local_context(&self) -> &LocalStyleContext {
+ fn local_context(&self) -> &LocalStyleContext<ComputedValues> {
&self.cached_local_layout_context.style_context
}
}
diff --git a/components/layout/display_list_builder.rs b/components/layout/display_list_builder.rs
index 4d62d221a5e..d20186cf0f9 100644
--- a/components/layout/display_list_builder.rs
+++ b/components/layout/display_list_builder.rs
@@ -51,7 +51,7 @@ use style::computed_values::{border_style, image_rendering, overflow_x, position
use style::computed_values::{transform, transform_style, visibility};
use style::logical_geometry::{LogicalPoint, LogicalRect, LogicalSize, WritingMode};
use style::properties::style_structs::Border;
-use style::properties::{self, ComputedValues};
+use style::properties::{self, ComputedValues, TComputedValues};
use style::values::RGBA;
use style::values::computed;
use style::values::computed::{LengthOrNone, LengthOrPercentage, LengthOrPercentageOrAuto, LinearGradient};
diff --git a/components/layout/flex.rs b/components/layout/flex.rs
index b53bb697c49..dbc01b58178 100644
--- a/components/layout/flex.rs
+++ b/components/layout/flex.rs
@@ -28,8 +28,8 @@ use std::cmp::max;
use std::sync::Arc;
use style::computed_values::{flex_direction, float};
use style::logical_geometry::LogicalSize;
-use style::properties::ComputedValues;
use style::properties::style_structs;
+use style::properties::{ComputedValues, TComputedValues};
use style::values::computed::LengthOrPercentageOrAuto;
// A mode describes which logical axis a flex axis is parallel with.
diff --git a/components/layout/flow.rs b/components/layout/flow.rs
index b61540dfb3b..dc434ce03f2 100644
--- a/components/layout/flow.rs
+++ b/components/layout/flow.rs
@@ -50,7 +50,7 @@ use std::{fmt, mem, raw};
use style::computed_values::{clear, display, empty_cells, float, position, overflow_x, text_align};
use style::dom::TRestyleDamage;
use style::logical_geometry::{LogicalRect, LogicalSize, WritingMode};
-use style::properties::{self, ComputedValues};
+use style::properties::{self, ComputedValues, TComputedValues};
use style::values::computed::LengthOrPercentageOrAuto;
use table::{ColumnComputedInlineSize, ColumnIntrinsicInlineSize, TableFlow};
use table_caption::TableCaptionFlow;
diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs
index 8c1c54fd282..227b492b038 100644
--- a/components/layout/fragment.rs
+++ b/components/layout/fragment.rs
@@ -41,7 +41,7 @@ use style::computed_values::{overflow_x, position, text_decoration, transform_st
use style::computed_values::{white_space, word_break, z_index};
use style::dom::TRestyleDamage;
use style::logical_geometry::{LogicalMargin, LogicalRect, LogicalSize, WritingMode};
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
use style::values::computed::{LengthOrPercentage, LengthOrPercentageOrAuto};
use style::values::computed::{LengthOrPercentageOrNone};
use text;
diff --git a/components/layout/generated_content.rs b/components/layout/generated_content.rs
index b0284c62d7e..7af9c4349d2 100644
--- a/components/layout/generated_content.rs
+++ b/components/layout/generated_content.rs
@@ -20,7 +20,7 @@ use std::sync::Arc;
use style::computed_values::content::ContentItem;
use style::computed_values::{display, list_style_type};
use style::dom::TRestyleDamage;
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
use text::TextRunScanner;
use wrapper::PseudoElementType;
diff --git a/components/layout/incremental.rs b/components/layout/incremental.rs
index d909192c0d3..8daf3cdd14f 100644
--- a/components/layout/incremental.rs
+++ b/components/layout/incremental.rs
@@ -7,7 +7,7 @@ use std::fmt;
use std::sync::Arc;
use style::computed_values::float;
use style::dom::TRestyleDamage;
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
bitflags! {
#[doc = "Individual layout actions that may be necessary after restyling."]
@@ -53,6 +53,7 @@ bitflags! {
}
impl TRestyleDamage for RestyleDamage {
+ type ConcreteComputedValues = ComputedValues;
fn compute(old: Option<&Arc<ComputedValues>>, new: &ComputedValues) -> RestyleDamage { compute_damage(old, new) }
/// Returns a bitmask that represents a flow that needs to be rebuilt and reflowed.
diff --git a/components/layout/inline.rs b/components/layout/inline.rs
index 8784728d808..175295c6f09 100644
--- a/components/layout/inline.rs
+++ b/components/layout/inline.rs
@@ -30,7 +30,7 @@ use std::{fmt, isize, mem};
use style::computed_values::{display, overflow_x, position, text_align, text_justify};
use style::computed_values::{text_overflow, vertical_align, white_space};
use style::logical_geometry::{LogicalRect, LogicalSize, WritingMode};
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
use style::values::computed::LengthOrPercentage;
use text;
use unicode_bidi;
diff --git a/components/layout/layout_thread.rs b/components/layout/layout_thread.rs
index cbad465b4f8..646defb49e4 100644
--- a/components/layout/layout_thread.rs
+++ b/components/layout/layout_thread.rs
@@ -72,6 +72,7 @@ use style::error_reporting::ParseErrorReporter;
use style::logical_geometry::LogicalPoint;
use style::media_queries::{Device, MediaType};
use style::parallel::WorkQueueData;
+use style::properties::TComputedValues;
use style::selector_impl::ServoSelectorImpl;
use style::selector_matching::USER_OR_USER_AGENT_STYLESHEETS;
use style::servo::{SharedStyleContext, Stylesheet, Stylist};
diff --git a/components/layout/list_item.rs b/components/layout/list_item.rs
index 6c8817ec1da..e64faa96758 100644
--- a/components/layout/list_item.rs
+++ b/components/layout/list_item.rs
@@ -23,7 +23,7 @@ use inline::InlineMetrics;
use std::sync::Arc;
use style::computed_values::{list_style_type, position};
use style::logical_geometry::LogicalSize;
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
use text;
/// A block with the CSS `display` property equal to `list-item`.
diff --git a/components/layout/model.rs b/components/layout/model.rs
index 057bb46fa52..6312bf3d30b 100644
--- a/components/layout/model.rs
+++ b/components/layout/model.rs
@@ -13,7 +13,7 @@ use std::cmp::{max, min};
use std::fmt;
use style::computed_values::transform::ComputedMatrix;
use style::logical_geometry::LogicalMargin;
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
use style::values::computed::{BorderRadiusSize, LengthOrPercentageOrAuto};
use style::values::computed::{LengthOrPercentage, LengthOrPercentageOrNone};
diff --git a/components/layout/multicol.rs b/components/layout/multicol.rs
index 4b7ac7d8814..b7e89fecf6c 100644
--- a/components/layout/multicol.rs
+++ b/components/layout/multicol.rs
@@ -21,7 +21,7 @@ use std::fmt;
use std::sync::Arc;
use style::context::StyleContext;
use style::logical_geometry::LogicalSize;
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
use style::values::computed::{LengthOrPercentageOrAuto, LengthOrPercentageOrNone};
use util::print_tree::PrintTree;
diff --git a/components/layout/query.rs b/components/layout/query.rs
index 9d1b9ed1db3..e05564f1aca 100644
--- a/components/layout/query.rs
+++ b/components/layout/query.rs
@@ -27,6 +27,7 @@ use std::sync::{Arc, Mutex};
use string_cache::Atom;
use style::computed_values;
use style::logical_geometry::{WritingMode, BlockFlowDirection, InlineBaseDirection};
+use style::properties::TComputedValues;
use style::properties::longhands::{display, position};
use style::properties::style_structs;
use style::selector_impl::PseudoElement;
diff --git a/components/layout/table.rs b/components/layout/table.rs
index 0c8d8865a8d..bd6b6bee6ed 100644
--- a/components/layout/table.rs
+++ b/components/layout/table.rs
@@ -25,7 +25,7 @@ use std::fmt;
use std::sync::Arc;
use style::computed_values::{border_collapse, border_spacing, table_layout};
use style::logical_geometry::LogicalSize;
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
use style::values::CSSFloat;
use style::values::computed::LengthOrPercentageOrAuto;
use table_row::{TableRowFlow};
diff --git a/components/layout/table_caption.rs b/components/layout/table_caption.rs
index e1706fc53cd..20ca8d8a8dc 100644
--- a/components/layout/table_caption.rs
+++ b/components/layout/table_caption.rs
@@ -17,7 +17,7 @@ use gfx::display_list::{StackingContext, StackingContextId};
use std::fmt;
use std::sync::Arc;
use style::logical_geometry::LogicalSize;
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
use util::print_tree::PrintTree;
/// A table formatting context.
diff --git a/components/layout/table_cell.rs b/components/layout/table_cell.rs
index ea16a5b5a59..508d201f6fd 100644
--- a/components/layout/table_cell.rs
+++ b/components/layout/table_cell.rs
@@ -21,7 +21,7 @@ use std::fmt;
use std::sync::Arc;
use style::computed_values::{border_collapse, border_top_style};
use style::logical_geometry::{LogicalMargin, LogicalRect, LogicalSize, WritingMode};
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
use table::InternalTable;
use table_row::{CollapsedBorder, CollapsedBorderProvenance};
use util::print_tree::PrintTree;
diff --git a/components/layout/table_colgroup.rs b/components/layout/table_colgroup.rs
index 32d2c693131..762e3526cf6 100644
--- a/components/layout/table_colgroup.rs
+++ b/components/layout/table_colgroup.rs
@@ -18,7 +18,7 @@ use std::cmp::max;
use std::fmt;
use std::sync::Arc;
use style::logical_geometry::LogicalSize;
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
use style::values::computed::LengthOrPercentageOrAuto;
/// A table formatting context.
diff --git a/components/layout/table_row.rs b/components/layout/table_row.rs
index 45e8bca12ec..64a2e71beed 100644
--- a/components/layout/table_row.rs
+++ b/components/layout/table_row.rs
@@ -25,7 +25,7 @@ use std::iter::{Enumerate, IntoIterator, Peekable};
use std::sync::Arc;
use style::computed_values::{border_collapse, border_spacing, border_top_style};
use style::logical_geometry::{LogicalSize, PhysicalSide, WritingMode};
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
use style::values::computed::LengthOrPercentageOrAuto;
use table::{ColumnComputedInlineSize, ColumnIntrinsicInlineSize, InternalTable, VecExt};
use table_cell::{CollapsedBordersForCell, TableCellFlow};
diff --git a/components/layout/table_rowgroup.rs b/components/layout/table_rowgroup.rs
index 44da4878119..a43d6f6ebbc 100644
--- a/components/layout/table_rowgroup.rs
+++ b/components/layout/table_rowgroup.rs
@@ -21,7 +21,7 @@ use std::iter::{IntoIterator, Iterator, Peekable};
use std::sync::Arc;
use style::computed_values::{border_collapse, border_spacing};
use style::logical_geometry::{LogicalSize, WritingMode};
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
use table::{ColumnComputedInlineSize, ColumnIntrinsicInlineSize, InternalTable, TableLikeFlow};
use table_row;
use util::print_tree::PrintTree;
diff --git a/components/layout/table_wrapper.rs b/components/layout/table_wrapper.rs
index a8e16812efd..e543f981127 100644
--- a/components/layout/table_wrapper.rs
+++ b/components/layout/table_wrapper.rs
@@ -31,7 +31,7 @@ use std::ops::Add;
use std::sync::Arc;
use style::computed_values::{border_collapse, table_layout};
use style::logical_geometry::LogicalSize;
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
use style::values::CSSFloat;
use style::values::computed::LengthOrPercentageOrAuto;
use table::{ColumnComputedInlineSize, ColumnIntrinsicInlineSize};
diff --git a/components/layout/text.rs b/components/layout/text.rs
index 2a9e99d18d3..0969bc4e43e 100644
--- a/components/layout/text.rs
+++ b/components/layout/text.rs
@@ -23,8 +23,8 @@ use std::sync::Arc;
use style::computed_values::{line_height, text_orientation, text_rendering, text_transform};
use style::computed_values::{white_space};
use style::logical_geometry::{LogicalSize, WritingMode};
-use style::properties::ComputedValues;
use style::properties::style_structs::Font as FontStyle;
+use style::properties::{ComputedValues, TComputedValues};
use unicode_bidi::{is_rtl, process_text};
use unicode_script::{get_script, Script};
use util::linked_list::split_off_head;
diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs
index 30ca65f6e39..094bc40a4a0 100644
--- a/components/layout/wrapper.rs
+++ b/components/layout/wrapper.rs
@@ -66,7 +66,7 @@ use style::computed_values::content::ContentItem;
use style::computed_values::{content, display};
use style::dom::{TDocument, TElement, TNode, UnsafeNode};
use style::element_state::*;
-use style::properties::ComputedValues;
+use style::properties::{ComputedValues, TComputedValues};
use style::properties::{PropertyDeclaration, PropertyDeclarationBlock};
use style::restyle_hints::ElementSnapshot;
use style::selector_impl::{NonTSPseudoClass, PseudoElement, ServoSelectorImpl};
@@ -131,6 +131,7 @@ impl<'ln> ServoLayoutNode<'ln> {
}
impl<'ln> TNode for ServoLayoutNode<'ln> {
+ type ConcreteComputedValues = ComputedValues;
type ConcreteElement = ServoLayoutElement<'ln>;
type ConcreteDocument = ServoLayoutDocument<'ln>;
type ConcreteRestyleDamage = RestyleDamage;