mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
This reverts commit 8e15389cae
.
This commit is contained in:
parent
8e15389cae
commit
d6ae8dc112
152 changed files with 4622 additions and 5862 deletions
|
@ -11,7 +11,7 @@ use crate::invalidation::element::invalidator::{DescendantInvalidationLists, Inv
|
|||
use crate::invalidation::element::invalidator::{Invalidation, InvalidationProcessor};
|
||||
use crate::invalidation::element::state_and_attributes;
|
||||
use crate::stylist::CascadeData;
|
||||
use selectors::matching::{MatchingContext, MatchingMode, QuirksMode, VisitedHandlingMode, NeedsSelectorFlags};
|
||||
use selectors::matching::{MatchingContext, MatchingMode, QuirksMode, VisitedHandlingMode};
|
||||
|
||||
/// A struct holding the members necessary to invalidate document state
|
||||
/// selectors.
|
||||
|
@ -47,7 +47,6 @@ impl<'a, E: TElement, I> DocumentStateInvalidationProcessor<'a, E, I> {
|
|||
None,
|
||||
VisitedHandlingMode::AllLinksVisitedAndUnvisited,
|
||||
quirks_mode,
|
||||
NeedsSelectorFlags::No,
|
||||
);
|
||||
|
||||
matching_context.extra_data = InvalidationMatchingData {
|
||||
|
|
|
@ -166,11 +166,15 @@ where
|
|||
{
|
||||
type Impl = SelectorImpl;
|
||||
|
||||
fn match_non_ts_pseudo_class(
|
||||
fn match_non_ts_pseudo_class<F>(
|
||||
&self,
|
||||
pseudo_class: &NonTSPseudoClass,
|
||||
context: &mut MatchingContext<Self::Impl>,
|
||||
) -> bool {
|
||||
_setter: &mut F,
|
||||
) -> bool
|
||||
where
|
||||
F: FnMut(&Self, ElementSelectorFlags),
|
||||
{
|
||||
// Some pseudo-classes need special handling to evaluate them against
|
||||
// the snapshot.
|
||||
match *pseudo_class {
|
||||
|
@ -228,20 +232,16 @@ where
|
|||
if flag.is_empty() {
|
||||
return self
|
||||
.element
|
||||
.match_non_ts_pseudo_class(pseudo_class, context);
|
||||
.match_non_ts_pseudo_class(pseudo_class, context, &mut |_, _| {});
|
||||
}
|
||||
match self.snapshot().and_then(|s| s.state()) {
|
||||
Some(snapshot_state) => snapshot_state.intersects(flag),
|
||||
None => self
|
||||
.element
|
||||
.match_non_ts_pseudo_class(pseudo_class, context),
|
||||
.match_non_ts_pseudo_class(pseudo_class, context, &mut |_, _| {}),
|
||||
}
|
||||
}
|
||||
|
||||
fn set_selector_flags(&self, _flags: ElementSelectorFlags) {
|
||||
debug_assert!(false, "Shouldn't need selector flags for invalidation");
|
||||
}
|
||||
|
||||
fn match_pseudo_element(
|
||||
&self,
|
||||
pseudo_element: &PseudoElement,
|
||||
|
|
|
@ -67,8 +67,6 @@ pub struct Dependency {
|
|||
pub parent: Option<Box<Dependency>>,
|
||||
}
|
||||
|
||||
size_of_test!(Dependency, 24);
|
||||
|
||||
/// The kind of elements down the tree this dependency may affect.
|
||||
#[derive(Debug, Eq, PartialEq)]
|
||||
pub enum DependencyInvalidationKind {
|
||||
|
|
|
@ -19,7 +19,8 @@ use crate::selector_parser::Snapshot;
|
|||
use crate::stylesheets::origin::OriginSet;
|
||||
use crate::{Atom, WeakAtom};
|
||||
use selectors::attr::CaseSensitivity;
|
||||
use selectors::matching::{matches_selector, MatchingContext, MatchingMode, VisitedHandlingMode, NeedsSelectorFlags};
|
||||
use selectors::matching::matches_selector;
|
||||
use selectors::matching::{MatchingContext, MatchingMode, VisitedHandlingMode};
|
||||
use selectors::NthIndexCache;
|
||||
use smallvec::SmallVec;
|
||||
|
||||
|
@ -66,7 +67,6 @@ impl<'a, 'b: 'a, E: TElement + 'b> StateAndAttrInvalidationProcessor<'a, 'b, E>
|
|||
Some(nth_index_cache),
|
||||
VisitedHandlingMode::AllLinksVisitedAndUnvisited,
|
||||
shared_context.quirks_mode(),
|
||||
NeedsSelectorFlags::No,
|
||||
);
|
||||
|
||||
Self {
|
||||
|
@ -84,7 +84,7 @@ pub fn check_dependency<E, W>(
|
|||
dependency: &Dependency,
|
||||
element: &E,
|
||||
wrapper: &W,
|
||||
context: &mut MatchingContext<'_, E::Impl>,
|
||||
mut context: &mut MatchingContext<'_, E::Impl>,
|
||||
) -> bool
|
||||
where
|
||||
E: TElement,
|
||||
|
@ -95,7 +95,8 @@ where
|
|||
dependency.selector_offset,
|
||||
None,
|
||||
element,
|
||||
context,
|
||||
&mut context,
|
||||
&mut |_, _| {},
|
||||
);
|
||||
|
||||
let matched_then = matches_selector(
|
||||
|
@ -103,7 +104,8 @@ where
|
|||
dependency.selector_offset,
|
||||
None,
|
||||
wrapper,
|
||||
context,
|
||||
&mut context,
|
||||
&mut |_, _| {},
|
||||
);
|
||||
|
||||
matched_then != matches_now
|
||||
|
|
|
@ -556,7 +556,6 @@ impl StylesheetInvalidationSet {
|
|||
FontFace(..) |
|
||||
Keyframes(..) |
|
||||
ScrollTimeline(..) |
|
||||
Container(..) |
|
||||
Style(..) => {
|
||||
if is_generic_change {
|
||||
// TODO(emilio): We need to do this for selector / keyframe
|
||||
|
@ -611,7 +610,7 @@ impl StylesheetInvalidationSet {
|
|||
}
|
||||
},
|
||||
Document(..) | Namespace(..) | Import(..) | Media(..) | Supports(..) |
|
||||
Container(..) | LayerStatement(..) | LayerBlock(..) => {
|
||||
LayerStatement(..) | LayerBlock(..) => {
|
||||
// Do nothing, relevant nested rules are visited as part of the
|
||||
// iteration.
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue