mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
ID and class selectors are ASCII case-insensitive in quirks mode.
https://bugzilla.mozilla.org/show_bug.cgi?id=1363778
This commit is contained in:
parent
524fcac191
commit
5bccf98aa4
22 changed files with 313 additions and 191 deletions
|
@ -11,12 +11,14 @@ use dom::bindings::str::DOMString;
|
|||
use dom::bindings::trace::JSTraceable;
|
||||
use dom::bindings::xmlname::namespace_from_domstring;
|
||||
use dom::element::Element;
|
||||
use dom::node::Node;
|
||||
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 {
|
||||
|
@ -199,7 +201,12 @@ impl HTMLCollection {
|
|||
}
|
||||
impl CollectionFilter for ClassNameFilter {
|
||||
fn filter(&self, elem: &Element, _root: &Node) -> bool {
|
||||
self.classes.iter().all(|class| elem.has_class(class))
|
||||
let case_sensitivity = match document_from_node(elem).quirks_mode() {
|
||||
QuirksMode::NoQuirks |
|
||||
QuirksMode::LimitedQuirks => CaseSensitivity::CaseSensitive,
|
||||
QuirksMode::Quirks => CaseSensitivity::AsciiCaseInsensitive,
|
||||
};
|
||||
self.classes.iter().all(|class| elem.has_class(class, case_sensitivity))
|
||||
}
|
||||
}
|
||||
let filter = ClassNameFilter {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue