Update to selectors 0.15

This commit is contained in:
Simon Sapin 2016-11-21 19:11:35 +01:00
parent a89ba50180
commit 82b13d50e3
21 changed files with 215 additions and 146 deletions

View file

@ -16,7 +16,7 @@ euclid = "0.10.1"
owning_ref = "0.2.2"
parking_lot = "0.3"
rustc-serialize = "0.3"
selectors = "0.14"
selectors = "0.15"
html5ever-atoms = "0.1"
servo_atoms = {path = "../../../components/atoms"}
style = {path = "../../../components/style"}

View file

@ -3,14 +3,18 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use cssparser::{Parser, ToCss};
use selectors::parser::{Selector, ParserContext, parse_selector_list};
use style::selector_parser::TheSelectorImpl;
use selectors::parser::SelectorList;
use style::selector_parser::{TheSelectorImpl, SelectorParser};
use style::stylesheets::{Origin, Namespaces};
fn parse(input: &mut Parser) -> Result<Selector<TheSelectorImpl>, ()> {
let mut context = ParserContext::new();
context.in_user_agent_stylesheet = true;
context.namespace_prefixes.insert("svg".into(), ns!(svg));
parse_selector_list(&context, input).map(|mut vec| vec.pop().unwrap())
fn parse(input: &mut Parser) -> Result<SelectorList<TheSelectorImpl>, ()> {
let mut ns = Namespaces::default();
ns.prefixes.insert("svg".into(), ns!(svg));
let parser = SelectorParser {
stylesheet_origin: Origin::UserAgent,
namespaces: &ns,
};
SelectorList::parse(&parser, input)
}
#[test]

View file

@ -2,7 +2,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
use cssparser::{self, Parser, SourcePosition};
use cssparser::{self, Parser as CssParser, SourcePosition};
use html5ever_atoms::{Namespace as NsAtom};
use media_queries::CSSErrorReporterTest;
use parking_lot::RwLock;
@ -282,7 +282,7 @@ impl CSSInvalidErrorReporterTest {
}
impl ParseErrorReporter for CSSInvalidErrorReporterTest {
fn report_error(&self, input: &mut Parser, position: SourcePosition, message: &str) {
fn report_error(&self, input: &mut CssParser, position: SourcePosition, message: &str) {
let location = input.source_location(position);
let errors = self.errors.clone();

View file

@ -5,11 +5,12 @@
use cssparser::Parser;
use html5ever_atoms::LocalName;
use parking_lot::RwLock;
use selectors::parser::{LocalName as LocalNameSelector, ParserContext, parse_selector_list};
use selectors::parser::LocalName as LocalNameSelector;
use servo_atoms::Atom;
use std::sync::Arc;
use style::properties::{PropertyDeclarationBlock, PropertyDeclaration, DeclaredValue};
use style::properties::{longhands, Importance};
use style::selector_parser::SelectorParser;
use style::stylesheets::StyleRule;
use style::stylist::{Rule, SelectorMap};
use style::thread_state;
@ -18,9 +19,7 @@ use style::thread_state;
/// Each sublist of the result contains the Rules for one StyleRule.
fn get_mock_rules(css_selectors: &[&str]) -> Vec<Vec<Rule>> {
css_selectors.iter().enumerate().map(|(i, selectors)| {
let context = ParserContext::new();
let selectors =
parse_selector_list(&context, &mut Parser::new(*selectors)).unwrap();
let selectors = SelectorParser::parse_author_origin_no_namespace(selectors).unwrap().0;
let rule = Arc::new(RwLock::new(StyleRule {
selectors: selectors,

View file

@ -21,7 +21,7 @@ libc = "0.2"
log = {version = "0.3.5", features = ["release_max_level_info"]}
num_cpus = "1.1.0"
parking_lot = "0.3"
selectors = "0.14"
selectors = "0.15"
servo_url = {path = "../../../components/url"}
style_traits = {path = "../../../components/style_traits"}
geckoservo = {path = "../../../ports/geckolib"}