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
This commit is contained in:
Mason Freed 2019-04-18 11:55:01 +00:00 коммит произвёл James Graham
Родитель b6d472c07e
Коммит 843c9f7387
2 изменённых файлов: 63 добавлений и 0 удалений

Просмотреть файл

@ -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;
}

Просмотреть файл

@ -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>