diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-03-25 03:27:33 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2016-03-25 03:27:33 +0530 |
commit | 605842f193aedc1151ab38a99c49f693c76e5cf3 (patch) | |
tree | 1390698f84106f785cd82ecbbfda0bb53e725a77 /components/layout | |
parent | 7f944afee88bb2ab13de4f37118af14d40328f7f (diff) | |
parent | e82aa66245935f0aaac61e667a38dce9b5662f42 (diff) | |
download | servo-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')
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; |