diff options
author | Emilio Cobos Álvarez <ecoal95@gmail.com> | 2016-02-08 02:53:22 +0100 |
---|---|---|
committer | Emilio Cobos Álvarez <ecoal95@gmail.com> | 2016-02-13 16:05:14 +0100 |
commit | dd503dfacb46c63702e4a4b49b85ca30df62a8df (patch) | |
tree | 81021ae722350d30583c718cff1aab22fe456db5 /components/layout/traversal.rs | |
parent | a164176876bb6abccf729eb5d6334e3c22230103 (diff) | |
download | servo-dd503dfacb46c63702e4a4b49b85ca30df62a8df.tar.gz servo-dd503dfacb46c63702e4a4b49b85ca30df62a8df.zip |
Refactor style to be completely backend-independent
This commit refactors the style crate to be completely independent of
the actual implementation and pseudo-elements supported.
This also adds a gecko backend which introduces parsing for the
anonymous box pseudo-elements[1], although there's still no way of
querying them.
https://mxr.mozilla.org/mozilla-central/source/layout/style/nsCSSAnonBoxList.h
Diffstat (limited to 'components/layout/traversal.rs')
-rw-r--r-- | components/layout/traversal.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/components/layout/traversal.rs b/components/layout/traversal.rs index 69e85c39303..d5febecc483 100644 --- a/components/layout/traversal.rs +++ b/components/layout/traversal.rs @@ -16,6 +16,7 @@ use incremental::{BUBBLE_ISIZES, REFLOW, REFLOW_OUT_OF_FLOW, REPAINT, RestyleDam use std::mem; use style::context::{StyleContext, ReflowGoal}; use style::matching::MatchMethods; +use style::selector_impl::ServoSelectorImpl; use style::traversal::{DomTraversalContext, STYLE_BLOOM}; use style::traversal::{put_thread_local_bloom_filter, recalc_style_at}; use util::opts; @@ -27,7 +28,8 @@ pub struct RecalcStyleAndConstructFlows<'lc> { root: OpaqueNode, } -impl<'lc, 'ln, N: LayoutNode<'ln>> DomTraversalContext<'ln, N> for RecalcStyleAndConstructFlows<'lc> { +impl<'lc, 'ln, N: LayoutNode<'ln>> DomTraversalContext<'ln, N> for RecalcStyleAndConstructFlows<'lc> + where N::ConcreteElement: ::selectors::Element<Impl=ServoSelectorImpl> { type SharedContext = SharedLayoutContext; #[allow(unsafe_code)] fn new<'a>(shared: &'a Self::SharedContext, root: OpaqueNode) -> Self { |