New issue
Advanced search Search tips

Issue 805049 link

Starred by 0 users

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocking:
issue 771643



Sign in to add a comment

spv175 layout test failures after change to fixed position invalidation after scroll

Project Member Reported by szager@chromium.org, Jan 23 2018

Issue description

This patch, necessary for root layer scrolling, causes a few virtual/spv175 test failures:

https://chromium-review.googlesource.com/c/chromium/src/+/872256


 
Project Member

Comment 1 by bugdroid1@chromium.org, Jan 25 2018

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

Cc: -wangxianzhu@chromium.org
Owner: wangxianzhu@chromium.org
Status: Assigned (was: Untriaged)
Project Member

Comment 3 by bugdroid1@chromium.org, Jan 25 2018

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

Project Member

Comment 4 by bugdroid1@chromium.org, Jan 26 2018

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

Project Member

Comment 5 by bugdroid1@chromium.org, Jan 30 2018

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 ]

Project Member

Comment 8 by bugdroid1@chromium.org, Feb 6 2018

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

Project Member

Comment 9 by bugdroid1@chromium.org, Feb 7 2018

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

Status: Fixed (was: Assigned)

Sign in to add a comment