New issue
Advanced search Search tips

Issue 657186 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , All
Pri: 3
Type: Bug



Sign in to add a comment

Explore alternate fix for PaintInvalidationDelayedFull hack in LayoutObjectDrawingRecorder.

Project Member Reported by wkorman@chromium.org, Oct 18 2016

Issue description

https://codereview.chromium.org/2254893005 had to copy the optional CacheSkipper we have in LayoutObjectDrawingRecorder ctor:

  if (layoutObject.fullPaintInvalidationReason() ==
        PaintInvalidationDelayedFull)
      m_cacheSkipper.emplace(context);

which was needed for this test case:

paint/invalidation/animated-gif-background-offscreen.html

And I'm working on a change for  http://crbug.com/647809  which moves from using LayoutObjectDrawingRecorder to DrawingRecorder and so may need similar. I'm not sure yet whether we can create a table-specific animated gif case that's analogous, but I will look into and attempt.

If so, we could consider adding a method to check for this case to DisplayItemClient and moving the skipping into the base DrawingRecorder.

Or, pdr@ said perhaps we can change the callsite/situation that leads to the need for this. Filing bug for tracking and discussion.
 
Owner: ----
Status: Available (was: Assigned)
Unassigning self from bugs that I don't expect to be able to get to soon in case someone else is able to pick them up.
Cc: -wangxianzhu@chromium.org
Owner: wangxianzhu@chromium.org
Status: Assigned (was: Available)
Will try to find a solution.
Project Member

Comment 3 by bugdroid1@chromium.org, Oct 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0ff7688d1d4cb6da35e5989462d1d54488ddabf1

commit 0ff7688d1d4cb6da35e5989462d1d54488ddabf1
Author: Xianzhu Wang <wangxianzhu@chromium.org>
Date: Sat Oct 14 02:37:07 2017

Extract delayed invalidation handling from LayoutObjectDrawingRecorder to callsite

Then we can remove LayoutObjectDrawingRecorder.

Bug:  657186 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ie276999a4383d149f156641d6188b25077b040db
Reviewed-on: https://chromium-review.googlesource.com/717356
Reviewed-by: Walter Korman <wkorman@chromium.org>
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508916}
[modify] https://crrev.com/0ff7688d1d4cb6da35e5989462d1d54488ddabf1/third_party/WebKit/Source/core/paint/BoxPainter.cpp
[modify] https://crrev.com/0ff7688d1d4cb6da35e5989462d1d54488ddabf1/third_party/WebKit/Source/core/paint/ImagePainter.cpp
[modify] https://crrev.com/0ff7688d1d4cb6da35e5989462d1d54488ddabf1/third_party/WebKit/Source/core/paint/LayoutObjectDrawingRecorder.h

Project Member

Comment 4 by bugdroid1@chromium.org, Oct 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e

commit 8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e
Author: Xianzhu Wang <wangxianzhu@chromium.org>
Date: Tue Oct 17 02:01:26 2017

Make PaintPhase an enum class

This allows us to forward declare it from platform code.
We could forward declare it as an enum but that would be more verbose.
It looks better to use enum class name to replace the common prefixes.

This is a preparation of https://chromium-review.googlesource.com/c/chromium/src/+/721602
(Remove LayoutObjectDrawingRecorder).

Bug:  657186 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ie65ff7014c0a7e2e6e3ce5bdb94c60e6d5f6ddfc
Reviewed-on: https://chromium-review.googlesource.com/721920
Reviewed-by: Walter Korman <wkorman@chromium.org>
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509217}
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/BlockFlowPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/BlockPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/BoxClipper.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/BoxModelObjectPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/BoxPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/DetailsMarkerPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/EllipsisBoxPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/EmbeddedContentPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/EmbeddedObjectPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/FieldsetPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/FileUploadControlPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/FrameSetPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/ImagePainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/InlinePainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/LayerClipRecorderTest.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/LayoutObjectDrawingRecorderTest.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/LineBoxListPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/ListMarkerPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/MultiColumnSetPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/ObjectPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/PaintControllerPaintTest.h
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/PaintInfo.h
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/PaintLayerPainterTest.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/PaintPhase.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/PaintPhase.h
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/ReplacedPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/RootInlineBoxPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/SVGContainerPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/SVGForeignObjectPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/SVGImagePainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/SVGInlineFlowBoxPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/SVGInlineTextBoxPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/SVGPaintContext.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/SVGRootInlineBoxPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/SVGRootPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/SVGShapePainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/SVGTextPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/ScrollbarPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/SelectionPaintingUtils.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/TableCellPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/TablePainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/TablePainterTest.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/TableRowPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/TableSectionPainter.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/TextPainterBase.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/TextPainterTest.cpp
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/ng/ng_box_fragment_painter.cc
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/core/paint/ng/ng_text_fragment_painter.cc
[modify] https://crrev.com/8cfdfd2eba5c6e3c8f456bd95362e4d30e111c7e/third_party/WebKit/Source/platform/graphics/paint/DisplayItem.h

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7d0fc3afafd4431469284a4d97bb37f0d10b5998

commit 7d0fc3afafd4431469284a4d97bb37f0d10b5998
Author: Xianzhu Wang <wangxianzhu@chromium.org>
Date: Tue Oct 17 18:34:25 2017

Remove LayoutObjectDrawingRecorder

Now we can always use DrawingRecorder.

Bug:  657186 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I98d6cab01b87cba9c5d68dd72dcb54e0248da994
Reviewed-on: https://chromium-review.googlesource.com/721602
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Walter Korman <wkorman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509435}
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/editing/CaretDisplayItemClient.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/exported/WebPluginContainerImpl.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/exported/WebViewImpl.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/layout/LayoutTextControlSingleLine.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/page/PageOverlayTest.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/page/PageWidgetDelegate.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/BUILD.gn
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/BlockPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/BoxPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/BoxReflectionUtils.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/ClipPathClipper.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/DetailsMarkerPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/EmbeddedContentPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/EmbeddedObjectPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/FieldsetPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/FileUploadControlPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/FramePainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/FrameSetPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/HTMLCanvasPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/ImagePainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/LayerClipRecorderTest.cpp
[delete] https://crrev.com/3813cdc5d461f3f45465f8e63d1dbc9f1364ed4c/third_party/WebKit/Source/core/paint/LayoutObjectDrawingRecorder.h
[delete] https://crrev.com/3813cdc5d461f3f45465f8e63d1dbc9f1364ed4c/third_party/WebKit/Source/core/paint/LayoutObjectDrawingRecorderTest.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/ListMarkerPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/MultiColumnSetPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/ObjectPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/PaintControllerPaintTest.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/PaintControllerPaintTest.h
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/ReplacedPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/SVGFilterPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/SVGImagePainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/SVGInlineTextBoxPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/SVGMaskPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/SVGRootInlineBoxPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/SVGShapePainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/ScrollableAreaPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/TableCellPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/TablePainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/TableRowPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/TableSectionPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/VideoPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/ViewPainter.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMapping.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/core/paint/compositing/PaintLayerCompositor.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/platform/BUILD.gn
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/platform/exported/WebFont.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/platform/graphics/paint/DrawingRecorder.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/platform/graphics/paint/DrawingRecorder.h
[add] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/platform/graphics/paint/DrawingRecorderTest.cpp
[modify] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.cpp
[add] https://crrev.com/7d0fc3afafd4431469284a4d97bb37f0d10b5998/third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.h

Status: Fixed (was: Assigned)

Sign in to add a comment