diff options
author | Emilio Cobos Álvarez <emilio@crisal.io> | 2017-12-08 04:48:03 +0100 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2017-12-08 05:35:12 +0100 |
commit | 3119db724aa1ba257b919799e3783e2a047bf28f (patch) | |
tree | d0f96edc14c67b5e577e0ae37398c3f06910f79e /components/layout_thread/dom_wrapper.rs | |
parent | e4bb3a102e4965e7867de03d39aee83d36598e4f (diff) | |
download | servo-3119db724aa1ba257b919799e3783e2a047bf28f.tar.gz servo-3119db724aa1ba257b919799e3783e2a047bf28f.zip |
selectors: Simplify :visited by only using the "is inside link" information.
Right now we go through a lot of hoops to see if we ever see a relevant link.
However, that information is not needed: if the element is a link, we'll always
need to compute its visited style because its its own relevant link.
If the element inherits from a link, we need to also compute the visited style
anyway.
So the "has a relevant link been found" is pretty useless when we know what are
we inheriting from.
The branches at the beginning of matches_complex_selector_internal were
affecting performance, and there are no good reasons to keep them.
I've verified that this passes all the visited tests in mozilla central, and
that the test-cases too-flaky to be landed still pass.
Diffstat (limited to 'components/layout_thread/dom_wrapper.rs')
-rw-r--r-- | components/layout_thread/dom_wrapper.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/components/layout_thread/dom_wrapper.rs b/components/layout_thread/dom_wrapper.rs index ebf7d12cbae..82a9678d7da 100644 --- a/components/layout_thread/dom_wrapper.rs +++ b/components/layout_thread/dom_wrapper.rs @@ -49,7 +49,7 @@ use script_layout_interface::{OpaqueStyleAndLayoutData, StyleData}; use script_layout_interface::wrapper_traits::{DangerousThreadSafeLayoutNode, GetLayoutData, LayoutNode}; use script_layout_interface::wrapper_traits::{PseudoElementType, ThreadSafeLayoutElement, ThreadSafeLayoutNode}; use selectors::attr::{AttrSelectorOperation, NamespaceConstraint, CaseSensitivity}; -use selectors::matching::{ElementSelectorFlags, MatchingContext, QuirksMode, RelevantLinkStatus}; +use selectors::matching::{ElementSelectorFlags, MatchingContext, QuirksMode}; use selectors::matching::VisitedHandlingMode; use selectors::sink::Push; use servo_arc::{Arc, ArcBorrow}; @@ -718,7 +718,7 @@ impl<'le> ::selectors::Element for ServoLayoutElement<'le> { &self, pseudo_class: &NonTSPseudoClass, _: &mut MatchingContext<Self::Impl>, - _: &RelevantLinkStatus, + _: VisitedHandlingMode, _: &mut F, ) -> bool where @@ -1233,7 +1233,7 @@ impl<'le> ::selectors::Element for ServoThreadSafeLayoutElement<'le> { &self, _: &NonTSPseudoClass, _: &mut MatchingContext<Self::Impl>, - _: &RelevantLinkStatus, + _: VisitedHandlingMode, _: &mut F, ) -> bool where |