mirror of
https://github.com/servo/servo.git
synced 2025-08-07 14:35:33 +01:00
Use string-cache's Namespace type
This commit is contained in:
parent
6429750b33
commit
d50114c41d
27 changed files with 126 additions and 183 deletions
|
@ -4,8 +4,9 @@
|
|||
|
||||
use cssparser::ast::*;
|
||||
use std::collections::hashmap::HashMap;
|
||||
use servo_util::namespace::Namespace;
|
||||
use servo_util::namespace;
|
||||
use errors::log_css_error;
|
||||
use string_cache::Namespace;
|
||||
|
||||
pub struct NamespaceMap {
|
||||
pub default: Option<Namespace>,
|
||||
|
@ -40,7 +41,7 @@ pub fn parse_namespace_rule(rule: AtRule, namespaces: &mut NamespaceMap) {
|
|||
},
|
||||
URL(value) | QuotedString(value) => {
|
||||
if ns.is_some() { syntax_error!() }
|
||||
ns = Some(Namespace::from_str(Some(value)));
|
||||
ns = Some(namespace::from_domstring(Some(value)));
|
||||
break
|
||||
},
|
||||
_ => syntax_error!(),
|
||||
|
|
|
@ -6,8 +6,7 @@
|
|||
//! style.
|
||||
|
||||
use selectors::AttrSelector;
|
||||
use servo_util::namespace::Namespace;
|
||||
use string_cache::Atom;
|
||||
use string_cache::{Atom, Namespace};
|
||||
|
||||
|
||||
pub trait TNode<'a, E: TElement<'a>> : Clone {
|
||||
|
|
|
@ -10,7 +10,6 @@ use sync::Arc;
|
|||
use url::Url;
|
||||
|
||||
use servo_util::bloom::BloomFilter;
|
||||
use servo_util::namespace;
|
||||
use servo_util::smallvec::VecLike;
|
||||
use servo_util::sort;
|
||||
use string_cache::Atom;
|
||||
|
@ -107,7 +106,7 @@ impl SelectorMap {
|
|||
None => {}
|
||||
}
|
||||
|
||||
match element.get_attr(&namespace::Null, "class") {
|
||||
match element.get_attr(&ns!(""), "class") {
|
||||
Some(ref class_attr) => {
|
||||
// FIXME: Store classes pre-split as atoms to make the loop below faster.
|
||||
for class in class_attr.split(SELECTOR_WHITESPACE) {
|
||||
|
|
|
@ -9,9 +9,7 @@ use sync::Arc;
|
|||
use cssparser::ast::*;
|
||||
use cssparser::{tokenize, parse_nth};
|
||||
|
||||
use servo_util::namespace::Namespace;
|
||||
use servo_util::namespace;
|
||||
use string_cache::Atom;
|
||||
use string_cache::{Atom, Namespace};
|
||||
|
||||
use namespaces::NamespaceMap;
|
||||
|
||||
|
@ -414,7 +412,7 @@ fn parse_qualified_name<I: Iterator<ComponentValue>>(
|
|||
explicit_namespace(iter, SpecificNamespace(namespace))
|
||||
},
|
||||
_ if in_attr_selector => Ok(Some(
|
||||
(SpecificNamespace(namespace::Null), Some(value)))),
|
||||
(SpecificNamespace(ns!("")), Some(value)))),
|
||||
_ => default_namespace(Some(value)),
|
||||
}
|
||||
},
|
||||
|
@ -428,7 +426,7 @@ fn parse_qualified_name<I: Iterator<ComponentValue>>(
|
|||
},
|
||||
}
|
||||
},
|
||||
Some(&Delim('|')) => explicit_namespace(iter, SpecificNamespace(namespace::Null)),
|
||||
Some(&Delim('|')) => explicit_namespace(iter, SpecificNamespace(ns!(""))),
|
||||
_ => Ok(None),
|
||||
}
|
||||
}
|
||||
|
@ -575,7 +573,6 @@ fn skip_whitespace<I: Iterator<ComponentValue>>(iter: &mut Iter<I>) -> bool {
|
|||
mod tests {
|
||||
use sync::Arc;
|
||||
use cssparser;
|
||||
use servo_util::namespace;
|
||||
use namespaces::NamespaceMap;
|
||||
use super::*;
|
||||
|
||||
|
@ -654,7 +651,7 @@ mod tests {
|
|||
simple_selectors: vec!(AttrExists(AttrSelector {
|
||||
name: Atom::from_slice("Foo"),
|
||||
lower_name: Atom::from_slice("foo"),
|
||||
namespace: SpecificNamespace(namespace::Null),
|
||||
namespace: SpecificNamespace(ns!("")),
|
||||
})),
|
||||
next: None,
|
||||
}),
|
||||
|
@ -663,13 +660,13 @@ mod tests {
|
|||
})))
|
||||
// Default namespace does not apply to attribute selectors
|
||||
// https://github.com/mozilla/servo/pull/1652
|
||||
namespaces.default = Some(namespace::MathML);
|
||||
namespaces.default = Some(ns!(MathML));
|
||||
assert!(parse_ns("[Foo]", &namespaces) == Ok(vec!(Selector {
|
||||
compound_selectors: Arc::new(CompoundSelector {
|
||||
simple_selectors: vec!(AttrExists(AttrSelector {
|
||||
name: Atom::from_slice("Foo"),
|
||||
lower_name: Atom::from_slice("foo"),
|
||||
namespace: SpecificNamespace(namespace::Null),
|
||||
namespace: SpecificNamespace(ns!("")),
|
||||
})),
|
||||
next: None,
|
||||
}),
|
||||
|
@ -680,7 +677,7 @@ mod tests {
|
|||
assert!(parse_ns("e", &namespaces) == Ok(vec!(Selector {
|
||||
compound_selectors: Arc::new(CompoundSelector {
|
||||
simple_selectors: vec!(
|
||||
NamespaceSelector(namespace::MathML),
|
||||
NamespaceSelector(ns!(MathML)),
|
||||
LocalNameSelector(LocalName {
|
||||
name: Atom::from_slice("e"),
|
||||
lower_name: Atom::from_slice("e") }),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue