Bug 1381420 - A crash test that has an element is not restyled but has reconstruct frame damage during flushing throttled animations. r=emilio
authorHiroyuki Ikezoe <hikezoe@mozilla.com>
Wed, 26 Jul 2017 11:50:12 +0900
changeset 419679 45b3b129202988f0fee1edefed1afc22306f6e25
parent 419678 93ebfe8552e33094f9942271faa74ec8981ad7f3
child 419680 1234b6349697c4f10e93e5f08b474c2b50b72551
push id7566
push usermtabara@mozilla.com
push dateWed, 02 Aug 2017 08:25:16 +0000
treeherdermozilla-beta@86913f512c3c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersemilio
bugs1381420
milestone56.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1381420 - A crash test that has an element is not restyled but has reconstruct frame damage during flushing throttled animations. r=emilio The details element, which is a sibling of an animating element, is checked whether the element needs to be processed in a post traversal for throttled animation flush because the parent element has animation-only dirty bit (i.e. the parent element is a common ancestor of the animating element and the details element). Also at the moment of the check the details element has reconstruct frame damage because 'open' attribute is changed. Thus in the check the details element was not restyled but had reconstruct frame damage. MozReview-Commit-ID: FvsyZlUjhFi
layout/style/crashtests/1381420-1.html
layout/style/crashtests/crashtests.list
new file mode 100644
--- /dev/null
+++ b/layout/style/crashtests/1381420-1.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<title></title>
+<style>
+@keyframes anim {
+  from { transform: scale(1); }
+  to { transform: rotate(0deg); }
+}
+#target {
+  animation: anim 3s infinite;
+  background-color: blue;
+  width: 100px;
+  height: 100px;
+}
+</style>
+<div>
+<div id="target"></div>
+<details id="details" open>
+  <summary>Summary</summary>
+  <p>detail description</p>
+</details>
+</div>
+<script>
+window.addEventListener('load', () => {
+  requestAnimationFrame(() => {
+    details.open = false;
+    SpecialPowers.getDOMWindowUtils(window)
+                 .sendMouseEvent("mousemove", 100, 100, 1,
+                                 0, 1, 0);
+    requestAnimationFrame(() => {
+      document.documentElement.classList.remove("reftest-wait");
+    });
+  });
+});
+</script>
--- a/layout/style/crashtests/crashtests.list
+++ b/layout/style/crashtests/crashtests.list
@@ -177,15 +177,16 @@ load content-only-on-link-before.html
 load content-only-on-visited-before.html
 load 1375812-1.html
 load 1377053-1.html
 load 1377256-1.html
 load 1378064-1.html
 load 1378814.html
 load 1380800.html
 load link-transition-before.html
+load 1381420-1.html
 load 1381682.html
 load 1382672.html
 load 1382710.html
 pref(dom.animations-api.core.enabled,true) load 1383589-1.html
 load 1383001.html
 load 1383001-2.html
 load 1383319.html