Skip to content

Commit

Permalink
Pre-compute classes and IDs case-sensitivity
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonSapin committed Jun 12, 2017
1 parent 9316c41 commit b827139
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
9 changes: 9 additions & 0 deletions components/selectors/context.rs
Expand Up @@ -99,6 +99,7 @@ pub struct MatchingContext<'a> {
pub relevant_link_found: bool,

quirks_mode: QuirksMode,
classes_and_ids_case_sensitivity: CaseSensitivity,
}

impl<'a> MatchingContext<'a> {
Expand All @@ -115,6 +116,7 @@ impl<'a> MatchingContext<'a> {
visited_handling: VisitedHandlingMode::AllLinksUnvisited,
relevant_link_found: false,
quirks_mode: quirks_mode,
classes_and_ids_case_sensitivity: quirks_mode.classes_and_ids_case_sensitivity(),
}
}

Expand All @@ -132,6 +134,7 @@ impl<'a> MatchingContext<'a> {
visited_handling: visited_handling,
relevant_link_found: false,
quirks_mode: quirks_mode,
classes_and_ids_case_sensitivity: quirks_mode.classes_and_ids_case_sensitivity(),
}
}

Expand All @@ -140,4 +143,10 @@ impl<'a> MatchingContext<'a> {
pub fn quirks_mode(&self) -> QuirksMode {
self.quirks_mode
}

/// The case-sensitivity for class and ID selectors
#[inline]
pub fn classes_and_ids_case_sensitivity(&self) -> CaseSensitivity {
self.classes_and_ids_case_sensitivity
}
}
4 changes: 2 additions & 2 deletions components/selectors/matching.rs
Expand Up @@ -549,10 +549,10 @@ fn matches_simple_selector<E, F>(
element.get_namespace() == ns.borrow()
}
Component::ID(ref id) => {
element.has_id(id, context.shared.quirks_mode().classes_and_ids_case_sensitivity())
element.has_id(id, context.shared.classes_and_ids_case_sensitivity())
}
Component::Class(ref class) => {
element.has_class(class, context.shared.quirks_mode().classes_and_ids_case_sensitivity())
element.has_class(class, context.shared.classes_and_ids_case_sensitivity())
}
Component::AttributeInNoNamespaceExists { ref local_name, ref local_name_lower } => {
let is_html = element.is_html_element_in_html_document();
Expand Down

0 comments on commit b827139

Please sign in to comment.