Auto merge of #16981 - emilio:backdrop, r=heycam

Bug 1366427: Make backdrop not inherit from the parent element. r=heycam

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/16981)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-05-23 02:25:07 -05:00 committed by GitHub
commit 17069f4876
3 changed files with 17 additions and 4 deletions

View file

@ -49,6 +49,15 @@ impl PseudoElement {
PseudoElementCascadeType::Lazy
}
/// Whether the pseudo-element should inherit from the default computed
/// values instead of from the parent element.
///
/// This is not the common thing, but there are some pseudos (namely:
/// ::backdrop), that shouldn't inherit from the parent element.
pub fn inherits_from_default_values(&self) -> bool {
!matches!(*self, PseudoElement::Backdrop)
}
/// Gets the canonical index of this eagerly-cascaded pseudo-element.
#[inline]
pub fn eager_index(&self) -> usize {

View file

@ -628,7 +628,7 @@ impl Stylist {
guards: &StylesheetGuards,
element: &E,
pseudo: &PseudoElement,
parent: &Arc<ComputedValues>,
parent_style: &ComputedValues,
font_metrics: &FontMetricsProvider)
-> Option<ComputedStyle>
where E: TElement,
@ -647,8 +647,8 @@ impl Stylist {
properties::cascade(&self.device,
&rule_node,
guards,
Some(&**parent),
Some(&**parent),
Some(parent_style),
Some(parent_style),
None,
&RustLogReporter,
font_metrics,

View file

@ -1203,7 +1203,11 @@ fn get_pseudo_style(guard: &SharedRwLockReadGuard,
PseudoElementCascadeType::Precomputed => unreachable!("No anonymous boxes"),
PseudoElementCascadeType::Lazy => {
let d = doc_data.borrow_mut();
let base = styles.primary.values();
let base = if pseudo.inherits_from_default_values() {
d.default_computed_values()
} else {
styles.primary.values()
};
let guards = StylesheetGuards::same(guard);
let metrics = get_metrics_provider_for_product();
d.stylist.lazily_compute_pseudo_element_style(&guards,