forked from mirrors/gecko-dev
Bug 1757017 - Make keyframes for pseudo-elements inherit from the right style. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D140045
This commit is contained in:
parent
fc251d248b
commit
3c5d0d725e
3 changed files with 81 additions and 2 deletions
|
|
@ -5893,7 +5893,12 @@ pub extern "C" fn Servo_GetComputedKeyframeValues(
|
|||
let metrics = get_metrics_provider_for_product();
|
||||
|
||||
let element = GeckoElement(element);
|
||||
let parent_element = element.inheritance_parent();
|
||||
let pseudo = PseudoElement::from_pseudo_type(pseudo_type);
|
||||
let parent_element = if pseudo.is_none() {
|
||||
element.inheritance_parent()
|
||||
} else {
|
||||
Some(element)
|
||||
};
|
||||
let parent_data = parent_element.as_ref().and_then(|e| e.borrow_data());
|
||||
let parent_style = parent_data
|
||||
.as_ref()
|
||||
|
|
@ -5910,7 +5915,6 @@ pub extern "C" fn Servo_GetComputedKeyframeValues(
|
|||
&mut conditions,
|
||||
);
|
||||
|
||||
let pseudo = PseudoElement::from_pseudo_type(pseudo_type);
|
||||
let restriction = pseudo.and_then(|p| p.property_restriction());
|
||||
|
||||
let global_style_data = &*GLOBAL_STYLE_DATA;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,26 @@
|
|||
<!doctype html>
|
||||
<title>CSS Test Reference</title>
|
||||
<style>
|
||||
body {
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.container {
|
||||
font-size: 5px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.container::after {
|
||||
content: "";
|
||||
display: block;
|
||||
border: 2px solid blue;
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
font-size: 1em;
|
||||
}
|
||||
</style>
|
||||
<div class="container"></div>
|
||||
<div class="container"></div>
|
||||
<div class="container"></div>
|
||||
<div class="container"></div>
|
||||
<div class="container"></div>
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
<!doctype html>
|
||||
<title>@keyframes + pseudo-element inherits from the right style.</title>
|
||||
<link rel="author" href="https://mozilla.org" title="Mozilla">
|
||||
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1757017">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-animations/#property-index">
|
||||
<link rel="match" href="inheritance-pseudo-element-ref.html">
|
||||
<style>
|
||||
body {
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.container {
|
||||
font-size: 5px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.container::after {
|
||||
content: "";
|
||||
display: block;
|
||||
border: 2px solid blue;
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
}
|
||||
|
||||
@keyframes kf-fs5px { from, to { font-size: 5px; } }
|
||||
.fs5px::after {
|
||||
animation: kf-fs5px 1s infinite;
|
||||
}
|
||||
|
||||
@keyframes kf-fs1em { from, to { font-size: 1em; } }
|
||||
.fs1em::after {
|
||||
animation: kf-fs1em 1s infinite;
|
||||
}
|
||||
|
||||
@keyframes kf-fs100p { from, to { font-size: 100%; } }
|
||||
.fs100p::after {
|
||||
animation: kf-fs100p 1s infinite;
|
||||
}
|
||||
|
||||
@keyframes kf-fsinherit { from, to { font-size: inherit; } }
|
||||
.fsinherit::after {
|
||||
animation: kf-fsinherit 1s infinite;
|
||||
}
|
||||
</style>
|
||||
<div class="container"></div>
|
||||
<div class="container fs5px"></div>
|
||||
<div class="container fs1em"></div>
|
||||
<div class="container fs100p"></div>
|
||||
<div class="container fsinherit"></div>
|
||||
Loading…
Reference in a new issue