Introduce SelectorInner and use it for top-level matching.

MozReview-Commit-ID: DxG6USsPIkh
This commit is contained in:
Bobby Holley 2017-04-15 15:03:46 -07:00
parent 11745fb983
commit 9524c5cb57
9 changed files with 138 additions and 109 deletions

View file

@ -84,7 +84,7 @@ fn test_parse_stylesheet() {
CssRule::Style(Arc::new(stylesheet.shared_lock.wrap(StyleRule {
selectors: SelectorList(vec![
Selector {
complex_selector: Arc::new(ComplexSelector {
inner: SelectorInner::new(Arc::new(ComplexSelector {
compound_selector: vec![
SimpleSelector::Namespace(Namespace {
prefix: None,
@ -104,7 +104,7 @@ fn test_parse_stylesheet() {
}, "hidden".to_owned(), CaseSensitivity::CaseInsensitive)
],
next: None,
}),
})),
pseudo_element: None,
specificity: (0 << 20) + (1 << 10) + (1 << 0),
},
@ -120,7 +120,7 @@ fn test_parse_stylesheet() {
CssRule::Style(Arc::new(stylesheet.shared_lock.wrap(StyleRule {
selectors: SelectorList(vec![
Selector {
complex_selector: Arc::new(ComplexSelector {
inner: SelectorInner::new(Arc::new(ComplexSelector {
compound_selector: vec![
SimpleSelector::Namespace(Namespace {
prefix: None,
@ -132,12 +132,12 @@ fn test_parse_stylesheet() {
}),
],
next: None,
}),
})),
pseudo_element: None,
specificity: (0 << 20) + (0 << 10) + (1 << 0),
},
Selector {
complex_selector: Arc::new(ComplexSelector {
inner: SelectorInner::new(Arc::new(ComplexSelector {
compound_selector: vec![
SimpleSelector::Namespace(Namespace {
prefix: None,
@ -149,7 +149,7 @@ fn test_parse_stylesheet() {
}),
],
next: None,
}),
})),
pseudo_element: None,
specificity: (0 << 20) + (0 << 10) + (1 << 0),
},
@ -162,7 +162,7 @@ fn test_parse_stylesheet() {
CssRule::Style(Arc::new(stylesheet.shared_lock.wrap(StyleRule {
selectors: SelectorList(vec![
Selector {
complex_selector: Arc::new(ComplexSelector {
inner: SelectorInner::new(Arc::new(ComplexSelector {
compound_selector: vec![
SimpleSelector::Namespace(Namespace {
prefix: None,
@ -180,7 +180,7 @@ fn test_parse_stylesheet() {
],
next: None,
}), Combinator::Child)),
}),
})),
pseudo_element: None,
specificity: (1 << 20) + (1 << 10) + (0 << 0),
},

View file

@ -35,7 +35,7 @@ fn get_mock_rules(css_selectors: &[&str]) -> (Vec<Vec<Rule>>, SharedRwLock) {
let rule = locked.read_with(&guard);
rule.selectors.0.iter().map(|s| {
Rule {
selector: s.complex_selector.clone(),
selector: s.inner.clone(),
style_rule: locked.clone(),
specificity: s.specificity,
source_order: i,