Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(171)

Issue 2657863004: Move scroll paint property nodes to be owned by the transform tree (Closed)

Created:
3 years, 11 months ago by pdr.
Modified:
3 years, 10 months ago
Reviewers:
chrishtr, trchen, wkorman
CC:
ajuma+watch_chromium.org, darktears, blink-reviews, blink-reviews-animation_chromium.org, blink-reviews-paint_chromium.org, blink-reviews-platform-graphics_chromium.org, Rik, chromium-reviews, danakj+watch_chromium.org, dshwang, drott+blinkwatch_chromium.org, krit, Eric Willigers, f(malita), fs, gyuyoung2, jbroman, Justin Novosad, kinuko+watch, kouhei+svg_chromium.org, pdr+graphicswatchlist_chromium.org, pdr+svgwatchlist_chromium.org, rjwright, rwlbuis, Stephen Chennney, shans
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Move scroll paint property nodes to be owned by the transform tree This patch moves the ownership of scroll paint property tree nodes to their associated scroll translation nodes. This has two benefits: 1) The paint property nodes directly stored on LayoutObject's are only related to geometry so special-cases are not needed to exclude non-geometry property nodes in PaintArtifactCompositor. 2) There is a memory savings because scroll nodes are effectively rare data in the transform tree. A TODO has been added to make this more explicit. The major changes in this patch are: * m_scroll has been removed from ObjectPaintProperties, as ownership is now on the transform tree. * m_scroll has been removed from FrameView, as ownership is now on the transform tree. * PaintLayer::sticksToViewport required some involved refactoring because the cached scroll node is no longer available. This fixes a squashing bug where PaintArtifactCompositor would stop merging paint chunks when their scroll nodes differed. This is tested in: PaintArtifactCompositorTestWithPropertyTrees:NestedScrollNodes. This patch also passes 30 new layout tests with spv2 enabled. BUG=683774 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2657863004 Cr-Commit-Position: refs/heads/master@{#447079} Committed: https://chromium.googlesource.com/chromium/src/+/3eee970eb6757c6ea3997e0722d7bab727b9c11c

Patch Set 1 #

Total comments: 13

Patch Set 2 : Rebase, address reviewer comments #

Patch Set 3 : Update test expectations #

Total comments: 2

Patch Set 4 : Rebase & remove parens #

Unified diffs Side-by-side diffs Delta from patch set Stats (+390 lines, -436 lines) Patch
M third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2 View 1 2 3 7 chunks +2 lines, -33 lines 0 comments Download
M third_party/WebKit/Source/core/animation/CompositorAnimationsTest.cpp View 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/frame/FrameView.h View 1 2 chunks +0 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/core/frame/FrameView.cpp View 1 2 3 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/paint/BlockPainter.cpp View 1 1 chunk +3 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/paint/FindPropertiesNeedingUpdate.h View 5 chunks +0 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/core/paint/FramePainter.cpp View 1 chunk +0 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/paint/ObjectPaintProperties.h View 7 chunks +22 lines, -33 lines 0 comments Download
M third_party/WebKit/Source/core/paint/ObjectPaintProperties.cpp View 1 chunk +0 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintControllerPaintTest.cpp View 1 1 chunk +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/PaintInvalidator.cpp View 1 2 chunks +9 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.cpp View 1 1 chunk +33 lines, -14 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp View 1 11 chunks +45 lines, -65 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp View 1 6 chunks +21 lines, -12 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreePrinter.cpp View 4 chunks +13 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreePrinterTest.cpp View 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeUpdateTests.cpp View 7 chunks +28 lines, -14 lines 0 comments Download
M third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp View 2 chunks +6 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp View 1 2 3 3 chunks +10 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp View 1 2 3 22 chunks +66 lines, -87 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/GeometryMapperTest.cpp View 2 chunks +3 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PaintChunkProperties.h View 2 chunks +2 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PaintChunker.cpp View 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.h View 4 chunks +6 lines, -22 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PropertyTreeState.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/PropertyTreeStateTest.cpp View 8 chunks +22 lines, -31 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/SkPictureBuilder.cpp View 1 chunk +3 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/TransformPaintPropertyNode.h View 1 2 3 5 chunks +63 lines, -21 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/TransformPaintPropertyNode.cpp View 1 2 chunks +9 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/platform/testing/PaintPrinters.cpp View 1 chunk +0 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/platform/testing/PaintPropertyTestHelpers.h View 2 chunks +3 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/platform/testing/TestPaintArtifact.h View 1 chunk +3 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/platform/testing/TestPaintArtifact.cpp View 1 chunk +5 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/web/tests/WebPluginContainerTest.cpp View 1 chunk +3 lines, -3 lines 0 comments Download

Messages

Total messages: 28 (17 generated)
pdr.
3 years, 11 months ago (2017-01-26 17:34:57 UTC) #3
pdr.
https://codereview.chromium.org/2657863004/diff/1/third_party/WebKit/Source/core/paint/PaintLayer.cpp File third_party/WebKit/Source/core/paint/PaintLayer.cpp (right): https://codereview.chromium.org/2657863004/diff/1/third_party/WebKit/Source/core/paint/PaintLayer.cpp#newcode351 third_party/WebKit/Source/core/paint/PaintLayer.cpp:351: nearestScrollNode(layoutObject() This part of the change is not entirely ...
3 years, 11 months ago (2017-01-26 20:04:54 UTC) #5
wkorman
lgtm https://codereview.chromium.org/2657863004/diff/1/third_party/WebKit/Source/core/paint/PaintLayer.cpp File third_party/WebKit/Source/core/paint/PaintLayer.cpp (right): https://codereview.chromium.org/2657863004/diff/1/third_party/WebKit/Source/core/paint/PaintLayer.cpp#newcode351 third_party/WebKit/Source/core/paint/PaintLayer.cpp:351: nearestScrollNode(layoutObject() Do existing tests cover this logic sufficiently ...
3 years, 11 months ago (2017-01-26 21:01:10 UTC) #6
chrishtr
https://codereview.chromium.org/2657863004/diff/1/third_party/WebKit/Source/core/paint/FramePainter.cpp File third_party/WebKit/Source/core/paint/FramePainter.cpp (left): https://codereview.chromium.org/2657863004/diff/1/third_party/WebKit/Source/core/paint/FramePainter.cpp#oldcode109 third_party/WebKit/Source/core/paint/FramePainter.cpp:109: properties.propertyTreeState.setScroll(scrollBarScroll); Did this functionality get replaced? https://codereview.chromium.org/2657863004/diff/1/third_party/WebKit/Source/core/paint/PaintControllerPaintTest.cpp File third_party/WebKit/Source/core/paint/PaintControllerPaintTest.cpp ...
3 years, 11 months ago (2017-01-26 21:22:59 UTC) #7
pdr.
https://codereview.chromium.org/2657863004/diff/1/third_party/WebKit/Source/core/paint/FramePainter.cpp File third_party/WebKit/Source/core/paint/FramePainter.cpp (left): https://codereview.chromium.org/2657863004/diff/1/third_party/WebKit/Source/core/paint/FramePainter.cpp#oldcode109 third_party/WebKit/Source/core/paint/FramePainter.cpp:109: properties.propertyTreeState.setScroll(scrollBarScroll); On 2017/01/26 at 21:22:58, chrishtr wrote: > Did ...
3 years, 10 months ago (2017-01-27 20:09:33 UTC) #8
pdr.
PTAL
3 years, 10 months ago (2017-01-30 17:34:38 UTC) #16
wkorman
lgtm https://codereview.chromium.org/2657863004/diff/40001/third_party/WebKit/Source/platform/graphics/paint/TransformPaintPropertyNode.h File third_party/WebKit/Source/platform/graphics/paint/TransformPaintPropertyNode.h (right): https://codereview.chromium.org/2657863004/diff/40001/third_party/WebKit/Source/platform/graphics/paint/TransformPaintPropertyNode.h#newcode70 third_party/WebKit/Source/platform/graphics/paint/TransformPaintPropertyNode.h:70: (ScrollPaintPropertyNode::create( Looks like one too many parens around ...
3 years, 10 months ago (2017-01-30 19:18:56 UTC) #17
pdr.
https://codereview.chromium.org/2657863004/diff/40001/third_party/WebKit/Source/platform/graphics/paint/TransformPaintPropertyNode.h File third_party/WebKit/Source/platform/graphics/paint/TransformPaintPropertyNode.h (right): https://codereview.chromium.org/2657863004/diff/40001/third_party/WebKit/Source/platform/graphics/paint/TransformPaintPropertyNode.h#newcode70 third_party/WebKit/Source/platform/graphics/paint/TransformPaintPropertyNode.h:70: (ScrollPaintPropertyNode::create( On 2017/01/30 at 19:18:56, wkorman wrote: > Looks ...
3 years, 10 months ago (2017-01-30 19:33:26 UTC) #18
chrishtr
lgtm
3 years, 10 months ago (2017-01-30 19:59:17 UTC) #21
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2657863004/60001
3 years, 10 months ago (2017-01-30 19:59:54 UTC) #25
commit-bot: I haz the power
3 years, 10 months ago (2017-01-30 21:51:32 UTC) #28
Message was sent while issue was closed.
Committed patchset #4 (id:60001) as
https://chromium.googlesource.com/chromium/src/+/3eee970eb6757c6ea3997e0722d7...

Powered by Google App Engine
This is Rietveld 408576698