mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Support pseudo-element properly in HasAuthorSpecifiedRules.
This commit is contained in:
parent
be5839fae6
commit
0c40ae70ed
3 changed files with 28 additions and 19 deletions
|
@ -7,6 +7,8 @@
|
|||
//! The rule tree.
|
||||
|
||||
use applicable_declarations::ApplicableDeclarationList;
|
||||
#[cfg(feature = "gecko")]
|
||||
use gecko::selector_parser::PseudoElement;
|
||||
#[cfg(feature = "servo")]
|
||||
use heapsize::HeapSizeOf;
|
||||
#[cfg(feature = "gecko")]
|
||||
|
@ -1077,6 +1079,7 @@ impl StrongRuleNode {
|
|||
#[cfg(feature = "gecko")]
|
||||
pub fn has_author_specified_rules<E>(&self,
|
||||
mut element: E,
|
||||
mut pseudo: Option<PseudoElement>,
|
||||
guards: &StylesheetGuards,
|
||||
rule_type_mask: u32,
|
||||
author_colors_allowed: bool)
|
||||
|
@ -1291,14 +1294,20 @@ impl StrongRuleNode {
|
|||
if !have_explicit_ua_inherit { break }
|
||||
|
||||
// Continue to the parent element and search for the inherited properties.
|
||||
element = match element.inheritance_parent() {
|
||||
Some(parent) => parent,
|
||||
None => break
|
||||
};
|
||||
if let Some(pseudo) = pseudo.take() {
|
||||
if pseudo.inherits_from_default_values() {
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
element = match element.inheritance_parent() {
|
||||
Some(parent) => parent,
|
||||
None => break
|
||||
};
|
||||
|
||||
let parent_data = element.mutate_data().unwrap();
|
||||
let parent_rule_node = parent_data.styles.primary().rules().clone();
|
||||
element_rule_node = Cow::Owned(parent_rule_node);
|
||||
let parent_data = element.mutate_data().unwrap();
|
||||
let parent_rule_node = parent_data.styles.primary().rules().clone();
|
||||
element_rule_node = Cow::Owned(parent_rule_node);
|
||||
}
|
||||
|
||||
properties = inherited_properties;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue