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

Issue 2506353002: Incrementally build main thread scrolling reasons [spv2] (Closed)

Created:
4 years, 1 month ago by pdr.
Modified:
4 years, 1 month ago
Reviewers:
chrishtr, Xianzhu
CC:
ajuma+watch_chromium.org, blink-reviews, blink-reviews-layout_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, eae+blinkwatch, f(malita), jbroman, jchaffraix+rendering, Justin Novosad, leviw+renderwatch, pdr+graphicswatchlist_chromium.org, pdr+renderingwatchlist_chromium.org, rwlbuis, Stephen Chennney, szager+layoutwatch_chromium.org, zoltan1
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Incrementally build main thread scrolling reasons [spv2] This patch re-implements the scroll property's main thread scrolling reasons so they can be built incrementally. Instead of propagating main thread scrolling reasons up the scroll property tree, we now calculate them when building each scroll node. With this change it is simple to invalidate and rebuild scroll properties when the main thread scrolling reasons change. This patch trades performance for simplicity. FrameView already maintains a set of LayoutObjects with background attachment fixed (a main thread scrolling trigger). For every scroll node we iterate over this set and check if any of the objects are descendants of the scrolling object. In the common case, the set is empty. This patch also cleans up ScrollPaintPropertyNode so it has a const parent pointer like all other paint property nodes. BUG=664672, 645667 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/3797c08066b335c81847266d1f16dafc9b21e886 Cr-Commit-Position: refs/heads/master@{#433367}

Patch Set 1 #

Patch Set 2 : Rebase #

Patch Set 3 : Cleanup comments #

Total comments: 10

Patch Set 4 : Switch to enums for main thread scrollin reasins #

Patch Set 5 : Cleanup setAllAncestorsNeedPaintPropertyUpdate #

Patch Set 6 : Fix test mistake #

Unified diffs Side-by-side diffs Delta from patch set Stats (+174 lines, -192 lines) Patch
M third_party/WebKit/Source/core/frame/FrameView.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/frame/FrameView.cpp View 1 2 3 4 5 3 chunks +23 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutObject.h View 1 2 3 4 5 1 chunk +7 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.h View 2 chunks +1 line, -4 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp View 1 2 3 4 5 11 chunks +35 lines, -46 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilderTest.cpp View 1 2 3 4 5 3 chunks +66 lines, -98 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintPropertyTreePrinter.cpp View 2 chunks +5 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositorTest.cpp View 1 2 3 4 5 3 chunks +3 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/GeometryMapperTest.cpp View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/ScrollPaintPropertyNode.h View 1 2 3 4 chunks +31 lines, -27 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/paint/ScrollPaintPropertyNode.cpp View 1 2 3 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 36 (22 generated)
pdr.
4 years, 1 month ago (2016-11-17 18:34:59 UTC) #13
Xianzhu
https://codereview.chromium.org/2506353002/diff/40001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp (right): https://codereview.chromium.org/2506353002/diff/40001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp#newcode79 third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp:79: void updateFrameViewScroll( Nit not necessarily to be addressed in ...
4 years, 1 month ago (2016-11-17 19:03:04 UTC) #15
pdr.
https://codereview.chromium.org/2506353002/diff/40001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp (right): https://codereview.chromium.org/2506353002/diff/40001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp#newcode79 third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp:79: void updateFrameViewScroll( On 2016/11/17 at 19:03:04, Xianzhu wrote: > ...
4 years, 1 month ago (2016-11-17 21:01:36 UTC) #18
Xianzhu
lgtm https://codereview.chromium.org/2506353002/diff/40001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp (right): https://codereview.chromium.org/2506353002/diff/40001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp#newcode152 third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp:152: frameView.hasBackgroundAttachmentFixedObjects(); On 2016/11/17 21:01:36, pdr. wrote: > On ...
4 years, 1 month ago (2016-11-17 21:25:02 UTC) #19
pdr.
Thanks! @Chris, did you want to take a look too? This is a different solution ...
4 years, 1 month ago (2016-11-17 21:26:50 UTC) #20
pdr.
https://codereview.chromium.org/2506353002/diff/40001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp File third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp (right): https://codereview.chromium.org/2506353002/diff/40001/third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp#newcode79 third_party/WebKit/Source/core/paint/PaintPropertyTreeBuilder.cpp:79: void updateFrameViewScroll( On 2016/11/17 at 21:01:36, pdr. wrote: > ...
4 years, 1 month ago (2016-11-17 22:30:04 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/2506353002/80001
4 years, 1 month ago (2016-11-18 00:28:36 UTC) #23
commit-bot: I haz the power
Try jobs failed on following builders: mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/338308)
4 years, 1 month ago (2016-11-18 02:00:18 UTC) #25
pdr.
On 2016/11/18 at 02:00:18, commit-bot wrote: > Try jobs failed on following builders: > mac_chromium_rel_ng ...
4 years, 1 month ago (2016-11-18 19:44:37 UTC) #26
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/2506353002/100001
4 years, 1 month ago (2016-11-18 19:45:37 UTC) #29
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_rel_ng/builds/318384)
4 years, 1 month ago (2016-11-19 00:22:27 UTC) #31
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/2506353002/100001
4 years, 1 month ago (2016-11-19 00:24:07 UTC) #33
commit-bot: I haz the power
Committed patchset #6 (id:100001)
4 years, 1 month ago (2016-11-19 01:12:53 UTC) #34
commit-bot: I haz the power
4 years, 1 month ago (2016-11-19 01:17:01 UTC) #36
Message was sent while issue was closed.
Patchset 6 (id:??) landed as
https://crrev.com/3797c08066b335c81847266d1f16dafc9b21e886
Cr-Commit-Position: refs/heads/master@{#433367}

Powered by Google App Engine
This is Rietveld 408576698