Skip to content

Commit

Permalink
Allow inserting elements into the style sharing cache even when they …
Browse files Browse the repository at this point in the history
…are affected by id selectors.
  • Loading branch information
bzbarsky committed Jun 2, 2017
1 parent 72f52a7 commit 8b4ad3a
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 8 deletions.
9 changes: 3 additions & 6 deletions components/selectors/matching.rs
Expand Up @@ -21,13 +21,11 @@ bitflags! {
/// This is used to implement efficient sharing.
#[derive(Default)]
pub flags StyleRelations: usize {
/// Whether this element is affected by an ID selector.
const AFFECTED_BY_ID_SELECTOR = 1 << 0,
/// Whether this element is affected by presentational hints. This is
/// computed externally (that is, in Servo).
const AFFECTED_BY_PRESENTATIONAL_HINTS = 1 << 1,
const AFFECTED_BY_PRESENTATIONAL_HINTS = 1 << 0,
/// Whether this element has pseudo-element styles. Computed externally.
const AFFECTED_BY_PSEUDO_ELEMENTS = 1 << 2,
const AFFECTED_BY_PSEUDO_ELEMENTS = 1 << 1,
}
}

Expand Down Expand Up @@ -539,8 +537,7 @@ fn matches_simple_selector<E, F>(
}
// TODO: case-sensitivity depends on the document type and quirks mode
Component::ID(ref id) => {
relation_if!(element.get_id().map_or(false, |attr| attr == *id),
AFFECTED_BY_ID_SELECTOR)
element.get_id().map_or(false, |attr| attr == *id)
}
Component::Class(ref class) => {
element.has_class(class)
Expand Down
3 changes: 1 addition & 2 deletions components/style/sharing/checks.rs
Expand Up @@ -23,8 +23,7 @@ pub fn relations_are_shareable(relations: &StyleRelations) -> bool {
use selectors::matching::*;
// If we start sharing things that are AFFECTED_BY_PSEUDO_ELEMENTS, we need
// to track revalidation selectors on a per-pseudo-element basis.
!relations.intersects(AFFECTED_BY_ID_SELECTOR |
AFFECTED_BY_PSEUDO_ELEMENTS)
!relations.intersects(AFFECTED_BY_PSEUDO_ELEMENTS)
}

/// Whether, given two elements, they have pointer-equal computed values.
Expand Down

0 comments on commit 8b4ad3a

Please sign in to comment.