This patch, necessary for root layer scrolling, causes a few virtual/spv175 test failures: https://chromium-review.googlesource.com/c/chromium/src/+/872256
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/00e33bd2900ce5daefa2c155f4d41734a9cec4fe commit 00e33bd2900ce5daefa2c155f4d41734a9cec4fe Author: Steve Kobes <skobes@chromium.org> Date: Thu Jan 25 01:00:54 2018 Update expectation for a crashing spv175 test. Crash on trybot: https://ci.chromium.org/buildbot/tryserver.chromium.mac/mac_chromium_rel_ng/634970 Bug: 805049 Change-Id: If727e7e6bc7e48dff72a0f8d6ae5791e83502725 Reviewed-on: https://chromium-review.googlesource.com/884208 Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org> Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org> Cr-Commit-Position: refs/heads/master@{#531768} [modify] https://crrev.com/00e33bd2900ce5daefa2c155f4d41734a9cec4fe/third_party/WebKit/LayoutTests/TestExpectations
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/cc5129225357e2298f1b86c895bdd3b67609cc6c commit cc5129225357e2298f1b86c895bdd3b67609cc6c Author: Xianzhu Wang <wangxianzhu@chromium.org> Date: Thu Jan 25 07:19:14 2018 [PE|SPv175+] Invalidate objects with fixed attachment background on scroll Setting descendants MayNeedPaintInvalidation() is not enough for invalidation of objects with fixed attachment background because they can't figure out the requirement during paint invalidation. We must invalidate them explicitly. The test (paint/overflow/fixed-background-scroll-in-frame.html) happened to succeed in SPv1 and fail in SPv175 because LocationInBacking of the target object changed in SPv1 but SPv175 doesn't use that. Bug: 805049 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: I9726715fc0e9ebb30b53ac59b7bad299a273d598 Reviewed-on: https://chromium-review.googlesource.com/884831 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org> Cr-Commit-Position: refs/heads/master@{#531837} [modify] https://crrev.com/cc5129225357e2298f1b86c895bdd3b67609cc6c/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/cc5129225357e2298f1b86c895bdd3b67609cc6c/third_party/WebKit/Source/core/frame/LocalFrameView.cpp [modify] https://crrev.com/cc5129225357e2298f1b86c895bdd3b67609cc6c/third_party/WebKit/Source/core/frame/LocalFrameView.h [modify] https://crrev.com/cc5129225357e2298f1b86c895bdd3b67609cc6c/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/48ddecea041796cb98eeff54fd37f1fca4372d18 commit 48ddecea041796cb98eeff54fd37f1fca4372d18 Author: Xianzhu Wang <wangxianzhu@chromium.org> Date: Fri Jan 26 20:41:17 2018 [SPv175] Check for paint property changes even after a "no change" paint For SPv175 (but not SPv2) a chunk may have paint properties escaping its containing composited layer. A layer may have no painting changed but needs raster invalidation for changed paint properties (caused by ancestors) of such chunks. An example is a fixed-positioned object under a composited layer other than the LayoutView. When the viewport scrolls, nothing will change in in paint artifacts, but the fixed-positioned object's paint chunk will change its chunk_to_layer_transform thus needs raster invalidation. Bug: 805049 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: I72c672657215aa4543783eed9cb2362411939a01 Reviewed-on: https://chromium-review.googlesource.com/885092 Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Cr-Commit-Position: refs/heads/master@{#532057} [modify] https://crrev.com/48ddecea041796cb98eeff54fd37f1fca4372d18/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/48ddecea041796cb98eeff54fd37f1fca4372d18/third_party/WebKit/LayoutTests/virtual/spv175/paint/invalidation/compositing/fixed-pos-inside-composited-intermediate-layer-expected.txt [modify] https://crrev.com/48ddecea041796cb98eeff54fd37f1fca4372d18/third_party/WebKit/LayoutTests/virtual/spv175/paint/invalidation/compositing/fixed-pos-with-abs-pos-child-scroll-expected.txt [modify] https://crrev.com/48ddecea041796cb98eeff54fd37f1fca4372d18/third_party/WebKit/LayoutTests/virtual/spv175/paint/invalidation/compositing/fixed-scroll-in-empty-root-layer-expected.txt [modify] https://crrev.com/48ddecea041796cb98eeff54fd37f1fca4372d18/third_party/WebKit/LayoutTests/virtual/spv175/paint/invalidation/scroll/fixed-img-src-change-after-scroll-expected.txt [modify] https://crrev.com/48ddecea041796cb98eeff54fd37f1fca4372d18/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp [modify] https://crrev.com/48ddecea041796cb98eeff54fd37f1fca4372d18/third_party/WebKit/Source/platform/graphics/compositing/CompositedLayerRasterInvalidator.cpp [modify] https://crrev.com/48ddecea041796cb98eeff54fd37f1fca4372d18/third_party/WebKit/Source/platform/graphics/compositing/CompositedLayerRasterInvalidator.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b74ffcfbbfc7b788d36aba2ee32850650fa2fe64 commit b74ffcfbbfc7b788d36aba2ee32850650fa2fe64 Author: Xianzhu Wang <wangxianzhu@chromium.org> Date: Tue Jan 30 05:27:03 2018 [SPv175+] Set PaintLayer NeedsRepaint when paint properties change We need to repaint the PaintLayers which have changed paint properties to update paint property states for paint chunks. Bug: 805049 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: Ib113ef4ca0971614c9c1a3201c342a1c4862e9ed Reviewed-on: https://chromium-review.googlesource.com/885262 Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org> Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Cr-Commit-Position: refs/heads/master@{#532774} [modify] https://crrev.com/b74ffcfbbfc7b788d36aba2ee32850650fa2fe64/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/b74ffcfbbfc7b788d36aba2ee32850650fa2fe64/third_party/WebKit/LayoutTests/virtual/spv175/paint/invalidation/scroll/fixed-scroll-simple-expected.txt [modify] https://crrev.com/b74ffcfbbfc7b788d36aba2ee32850650fa2fe64/third_party/WebKit/Source/core/paint/ObjectPaintProperties.h [modify] https://crrev.com/b74ffcfbbfc7b788d36aba2ee32850650fa2fe64/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp
Is this bug done?
There is still one failure: crbug.com/805049 [ Mac ] virtual/spv175/compositing/iframes/fixed-position-iframe.html [ Pass Crash ]
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/82387838336fc2d576afa160ac6b790bcb350f0e commit 82387838336fc2d576afa160ac6b790bcb350f0e Author: Xianzhu Wang <wangxianzhu@chromium.org> Date: Tue Feb 06 21:16:59 2018 [SPv175+] Make SimTest work for SPv175/SPv2 Previously SimCompositor collected drawing commands through an implementation of WebDisplayItemList interface (SimDisplayItemList). However, SPv175 and SPv2 don't use WebDisplayItemList's Append* methods, but use cc::DisplayItemList directly. Now collect drawing commands using PaintRecordBuilder. Bug: 805049 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: I29034b55a01e8e73a1b0f3933ec48b52d3e0b7a1 Reviewed-on: https://chromium-review.googlesource.com/900559 Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org> Reviewed-by: vmpstr <vmpstr@chromium.org> Cr-Commit-Position: refs/heads/master@{#534794} [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/BUILD.gn [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/animation/AnimationSimTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/dom/ShadowDOMV0Test.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/exported/WebFrameTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/exported/WebMeaningfulLayoutsTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/frame/DeferredLoadingTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/frame/DocumentLoadingRenderingTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/frame/RotationViewportAnchorTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/html/ImageDocumentTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/html/MediaElementFillingViewportTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/input/EventHandlerTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/input/OverscrollBehaviorTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/input/ScrollSnapTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/input/TouchEventManagerTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/intersection_observer/IntersectionObserverTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/layout/ScrollbarsTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/layout/ng/NGInlineLayoutTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/loader/ProgrammaticScrollTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/page/AutoscrollControllerTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/page/DragControllerTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/page/ViewportTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/page/scrolling/RootScrollerTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/page/scrolling/ScrollIntoViewTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/page/scrolling/ScrollMetricsTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/paint/PaintControllerPaintTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/paint/PaintLayerPainterTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/paint/PrePaintTreeWalkTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/paint/TextSelectionRepaintTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/resize_observer/ResizeObserverTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/scheduler/FrameThrottlingTest.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/testing/sim/SimCanvas.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/testing/sim/SimCanvas.h [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/testing/sim/SimCompositor.cpp [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/core/testing/sim/SimCompositor.h [delete] https://crrev.com/88326687e1b5ecef1f6e9ac90ad371756427fc93/third_party/WebKit/Source/core/testing/sim/SimDisplayItemList.cpp [delete] https://crrev.com/88326687e1b5ecef1f6e9ac90ad371756427fc93/third_party/WebKit/Source/core/testing/sim/SimDisplayItemList.h [modify] https://crrev.com/82387838336fc2d576afa160ac6b790bcb350f0e/third_party/WebKit/Source/platform/testing/PaintTestConfigurations.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6c2a47de914487a6ddce59788f8e2f2f26cc53a4 commit 6c2a47de914487a6ddce59788f8e2f2f26cc53a4 Author: Xianzhu Wang <wangxianzhu@chromium.org> Date: Wed Feb 07 04:18:29 2018 [SPv175] Don't paint GraphicsLayer if the containing frame is throttled The crash happens in the following sequence: 1. A frame is throttled (CanThrottleRendering is true) 2. Without throttling enabled (ShouldThrottleRendering is false), lifecycle is updated to CompositingClean, thus GraphicsLayer for the throttled frame is created. 3. With throttling enabled (ShouldThrottleRendering is true), full lifecycle is updated. We skipped setting the GraphicsLayer's layer state because the containing frame is throttled. 4. During PaintTree, when painting the GraphicsLayer, layer state is unexpectedly null. Now skip painting the GraphicsLayer if the containing frame is throttled. Bug: 805049 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: Iec7ebbc0362b2353513bcd8f44f864307683eb28 Reviewed-on: https://chromium-review.googlesource.com/900262 Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org> Reviewed-by: Chris Harrelson <chrishtr@chromium.org> Cr-Commit-Position: refs/heads/master@{#534912} [modify] https://crrev.com/6c2a47de914487a6ddce59788f8e2f2f26cc53a4/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/6c2a47de914487a6ddce59788f8e2f2f26cc53a4/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMapping.cpp [modify] https://crrev.com/6c2a47de914487a6ddce59788f8e2f2f26cc53a4/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMapping.h [modify] https://crrev.com/6c2a47de914487a6ddce59788f8e2f2f26cc53a4/third_party/WebKit/Source/core/paint/compositing/PaintLayerCompositor.cpp [modify] https://crrev.com/6c2a47de914487a6ddce59788f8e2f2f26cc53a4/third_party/WebKit/Source/core/paint/compositing/PaintLayerCompositor.h [modify] https://crrev.com/6c2a47de914487a6ddce59788f8e2f2f26cc53a4/third_party/WebKit/Source/core/scheduler/FrameThrottlingTest.cpp [modify] https://crrev.com/6c2a47de914487a6ddce59788f8e2f2f26cc53a4/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp [modify] https://crrev.com/6c2a47de914487a6ddce59788f8e2f2f26cc53a4/third_party/WebKit/Source/platform/graphics/GraphicsLayer.h [modify] https://crrev.com/6c2a47de914487a6ddce59788f8e2f2f26cc53a4/third_party/WebKit/Source/platform/graphics/GraphicsLayerClient.h
Comment 1 by bugdroid1@chromium.org
, Jan 25 2018