mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Classes/IDs case-sensitivity: get quirks mode from matching context.
This commit is contained in:
parent
5bccf98aa4
commit
c5c1c1b350
7 changed files with 16 additions and 55 deletions
|
@ -345,8 +345,6 @@ impl RawLayoutElementHelpers for Element {
|
|||
}
|
||||
|
||||
pub trait LayoutElementHelpers {
|
||||
#[allow(unsafe_code)]
|
||||
unsafe fn in_quirks_mode_document_for_layout(&self) -> bool;
|
||||
#[allow(unsafe_code)]
|
||||
unsafe fn has_class_for_layout(&self, name: &Atom, case_sensitivity: CaseSensitivity) -> bool;
|
||||
#[allow(unsafe_code)]
|
||||
|
@ -374,12 +372,6 @@ pub trait LayoutElementHelpers {
|
|||
}
|
||||
|
||||
impl LayoutElementHelpers for LayoutJS<Element> {
|
||||
#[allow(unsafe_code)]
|
||||
#[inline]
|
||||
unsafe fn in_quirks_mode_document_for_layout(&self) -> bool {
|
||||
self.upcast::<Node>().owner_doc_for_layout().quirks_mode() == QuirksMode::Quirks
|
||||
}
|
||||
|
||||
#[allow(unsafe_code)]
|
||||
#[inline]
|
||||
unsafe fn has_class_for_layout(&self, name: &Atom, case_sensitivity: CaseSensitivity) -> bool {
|
||||
|
@ -2514,10 +2506,6 @@ impl<'a> ::selectors::Element for Root<Element> {
|
|||
Element::has_class(&**self, name, case_sensitivity)
|
||||
}
|
||||
|
||||
fn in_quirks_mode_document(&self) -> bool {
|
||||
document_from_node(&**self).quirks_mode() == QuirksMode::Quirks
|
||||
}
|
||||
|
||||
fn is_html_element_in_html_document(&self) -> bool {
|
||||
self.html_element_in_html_document()
|
||||
}
|
||||
|
|
|
@ -15,10 +15,8 @@ use dom::node::{Node, document_from_node};
|
|||
use dom::window::Window;
|
||||
use dom_struct::dom_struct;
|
||||
use html5ever::{LocalName, QualName};
|
||||
use selectors::attr::CaseSensitivity;
|
||||
use servo_atoms::Atom;
|
||||
use std::cell::Cell;
|
||||
use style::context::QuirksMode;
|
||||
use style::str::split_html_space_chars;
|
||||
|
||||
pub trait CollectionFilter : JSTraceable {
|
||||
|
@ -201,11 +199,9 @@ impl HTMLCollection {
|
|||
}
|
||||
impl CollectionFilter for ClassNameFilter {
|
||||
fn filter(&self, elem: &Element, _root: &Node) -> bool {
|
||||
let case_sensitivity = match document_from_node(elem).quirks_mode() {
|
||||
QuirksMode::NoQuirks |
|
||||
QuirksMode::LimitedQuirks => CaseSensitivity::CaseSensitive,
|
||||
QuirksMode::Quirks => CaseSensitivity::AsciiCaseInsensitive,
|
||||
};
|
||||
let case_sensitivity = document_from_node(elem)
|
||||
.quirks_mode()
|
||||
.classes_and_ids_case_sensitivity();
|
||||
self.classes.iter().all(|class| elem.has_class(class, case_sensitivity))
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue