Bug 1539515 [wpt PR 16065] - Fix the lack of damage tracking for root layer position changes in BGPT., a=testonly
authorMason Freed <masonfreed@chromium.org>
Thu, 18 Apr 2019 11:55:01 +0000
changeset 529910 fcf064bf8c860c287ca4d7371941f301e524ac42
parent 529909 3f1ede9a78c37d212a809f04951ac1ae5c43c3f4
child 529911 d280b802b1d6d341a97996c6eed8bf4bb6ff46ca
push id11265
push userffxbld-merge
push dateMon, 13 May 2019 10:53:39 +0000
treeherdermozilla-beta@77e0fe8dbdd3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1539515, 16065, 939282, 1533176, 644099
milestone68.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 1539515 [wpt PR 16065] - Fix the lack of damage tracking for root layer position changes in BGPT., a=testonly Automatic update from web-platform-tests Fix the lack of damage tracking for root layer position changes in BGPT. Previous to this CL, if the position of a layer changed, and that layer was the root layer targeting a render surface, the old location of the surface was not damaged in the *parent* render surface. With BGPT disabled, this was masked by transform_changed being set at [1], which triggered the conditional at [2] and caused the old location to be damaged. With BGPT enabled, transform_changed is never set. The new logic here detects LayerPropertyChangedNotFromPropertyTrees() for a root layer, and triggers the conditional at [2]. [1] https://cs.chromium.org/chromium/src/cc/layers/layer.cc?rcl=4b6a562c7bde8700fe66eda5d3f65b3e48750ef2&l=758 [2] https://cs.chromium.org/chromium/src/cc/trees/damage_tracker.cc?rcl=8c9c36220d67ee9ea6a4d830b7020cceb52e5aeb&l=449 Bug: 939282 Change-Id: I946c1d85baf7096ef6199efc811cafe55798d930 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1533176 Commit-Queue: Mason Freed <masonfreed@chromium.org> Commit-Queue: enne <enne@chromium.org> Reviewed-by: enne <enne@chromium.org> Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Auto-Submit: Mason Freed <masonfreed@chromium.org> Cr-Commit-Position: refs/heads/master@{#644099} -- wpt-commits: 8e207ff305b5c7daad5b930a450f7ac053b1171a wpt-pr: 16065
testing/web-platform/tests/lifecycle/set-composited-layer-position-ref.html
testing/web-platform/tests/lifecycle/set-composited-layer-position.html
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/lifecycle/set-composited-layer-position-ref.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+
+<meta charset="utf-8">
+<title>Setting composited layer position paints properly</title>
+<link rel="author" title="Mason Freed" href="masonfreed@chromium.org">
+
+
+
+<div id="box"></div>
+<style>
+div {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 200px;
+  height: 200px;
+  background: green;
+}
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/lifecycle/set-composited-layer-position.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<meta charset="utf-8">
+<title>Setting composited layer position paints properly</title>
+<link rel="author" title="Mason Freed" href="masonfreed@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/cssom-view-1/">
+<link rel="match"  href="set-composited-layer-position-ref.html">
+
+<div id="box"></div>
+<div id="tomove"></div>
+<style>
+div {
+  position: absolute;
+  top: 0;
+  left: 0;
+  will-change: transform;
+  width: 200px;
+  height: 200px;
+}
+#box {
+  background: red;
+}
+#tomove {
+  background: green;
+  top: 200px;
+  left: 200px;
+  filter: invert(0);
+}
+</style>
+<script>
+  window.onload = function() {
+    requestAnimationFrame(function() {
+      requestAnimationFrame(function() {
+        tomove = document.getElementById("tomove");
+        tomove.style.top = 0;
+        tomove.style.left = 0;
+        document.documentElement.classList.remove("reftest-wait");
+      });
+    });
+  }
+</script>
+</html>
+
+
+