mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
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:
commit
17069f4876
3 changed files with 17 additions and 4 deletions
|
@ -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 {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue