Check child_change instead of change for explicit inherit.
Additionally, re-ordered checks in ComputedStyle::ComputeDifference()
and removed the full ComputedStyle comparison which did extra
comparisons of inherited data.
Bug: 958393
Change-Id: Ib798a688cc27719417326d6b3a6e75ce3595fa50
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1594575
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#657180}
diff --git a/css/css-transitions/inherit-height-transition.html b/css/css-transitions/inherit-height-transition.html
new file mode 100644
index 0000000..e411da3
--- /dev/null
+++ b/css/css-transitions/inherit-height-transition.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-transitions/#starting">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ div { height: inherit; }
+ #outer { height: 50px; }
+ #outer.collapsed {
+ height: 0px;
+ transition: height 0.01s;
+ }
+</style>
+<div id="outer">
+ <div>
+ <div id="inner">You should only see a flash of red.</div>
+ </div>
+</div>
+<script>
+ promise_test(t => {
+ outer.offsetTop;
+ outer.className = "collapsed";
+ return (new Promise((resolve) => outer.addEventListener("transitionend", resolve))).then(() => {
+ assert_equals(getComputedStyle(inner).height, "0px");
+ });
+ }, "Transitioned height, explicitly inherited down two DOM levels, should inherit correctly");
+</script>