Make MatchingContext::quirks_mode field private, add read-only accessor.

This commit is contained in:
Simon Sapin 2017-06-13 00:33:28 +02:00
parent 700aaf2bd6
commit 9316c41bf7
2 changed files with 12 additions and 6 deletions

View file

@ -97,8 +97,8 @@ pub struct MatchingContext<'a> {
/// `RelevantLinkStatus` which tracks the status for the _current_ selector
/// only.)
pub relevant_link_found: bool,
/// The quirks mode of the document.
pub quirks_mode: QuirksMode,
quirks_mode: QuirksMode,
}
impl<'a> MatchingContext<'a> {
@ -134,4 +134,10 @@ impl<'a> MatchingContext<'a> {
quirks_mode: quirks_mode,
}
}
/// The quirks mode of the document.
#[inline]
pub fn quirks_mode(&self) -> QuirksMode {
self.quirks_mode
}
}

View file

@ -90,7 +90,7 @@ impl<'a, 'b, Impl> LocalMatchingContext<'a, 'b, Impl>
/// Updates offset of Selector to show new compound selector.
/// To be able to correctly re-synthesize main SelectorIter.
pub fn note_next_sequence(&mut self, selector_iter: &SelectorIter<Impl>) {
if let QuirksMode::Quirks = self.shared.quirks_mode {
if let QuirksMode::Quirks = self.shared.quirks_mode() {
self.offset = self.selector.len() - selector_iter.selector_length();
}
}
@ -98,7 +98,7 @@ impl<'a, 'b, Impl> LocalMatchingContext<'a, 'b, Impl>
/// Returns true if current compound selector matches :active and :hover quirk.
/// https://quirks.spec.whatwg.org/#the-active-and-hover-quirk
pub fn active_hover_quirk_matches(&mut self) -> bool {
if self.shared.quirks_mode != QuirksMode::Quirks ||
if self.shared.quirks_mode() != QuirksMode::Quirks ||
self.within_functional_pseudo_class_argument {
return false;
}
@ -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.quirks_mode().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.quirks_mode().classes_and_ids_case_sensitivity())
}
Component::AttributeInNoNamespaceExists { ref local_name, ref local_name_lower } => {
let is_html = element.is_html_element_in_html_document();