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

Issue 206283003: Avoid tree walks when computing RenderLayer::scrollParent (Closed)

Created:
6 years, 9 months ago by Ian Vollick
Modified:
6 years, 9 months ago
Reviewers:
abarth-chromium
CC:
blink-reviews, bemjb+rendering_chromium.org, dsinclair, zoltan1, eae+blinkwatch, leviw+renderwatch, abarth-chromium, blink-layers+watch_chromium.org, jchaffraix+rendering, pdr., hartmanng
Visibility:
Public.

Description

Avoid tree walks when computing RenderLayer::scrollParent This CL uses some memoization to avoid unnecessary tree walking when computing scroll parent. Why memoization and not just passing down the values? Because sad. It turns out that we recur on the stacking tree (we have to - squashing demands processing stuff in paint order), but we walk up the render tree asking questions. Different tree topologies; we could very easily visit a RenderLayer before its great great grandparent. No functionality change -- covered by existing tests. BUG=None Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=169741

Patch Set 1 : . #

Patch Set 2 : . #

Total comments: 9

Patch Set 3 : . #

Total comments: 4

Patch Set 4 : . #

Total comments: 6

Patch Set 5 : . #

Patch Set 6 : Fix build errors. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+125 lines, -8 lines) Patch
M Source/core/rendering/RenderLayer.h View 1 2 3 4 5 5 chunks +31 lines, -2 lines 0 comments Download
M Source/core/rendering/RenderLayer.cpp View 1 2 3 4 6 chunks +83 lines, -6 lines 0 comments Download
M Source/core/rendering/compositing/RenderLayerCompositor.cpp View 1 2 2 chunks +11 lines, -0 lines 0 comments Download

Messages

Total messages: 23 (0 generated)
Ian Vollick
6 years, 9 months ago (2014-03-20 18:26:37 UTC) #1
Ian Vollick
https://codereview.chromium.org/206283003/diff/80001/Source/core/rendering/RenderLayer.cpp File Source/core/rendering/RenderLayer.cpp (right): https://codereview.chromium.org/206283003/diff/80001/Source/core/rendering/RenderLayer.cpp#newcode1138 Source/core/rendering/RenderLayer.cpp:1138: ASSERT(isInCompositingUpdate()); Changed the assert to enforce access only during ...
6 years, 9 months ago (2014-03-20 19:26:47 UTC) #2
abarth-chromium
https://codereview.chromium.org/206283003/diff/80001/Source/core/rendering/RenderLayer.cpp File Source/core/rendering/RenderLayer.cpp (right): https://codereview.chromium.org/206283003/diff/80001/Source/core/rendering/RenderLayer.cpp#newcode1150 Source/core/rendering/RenderLayer.cpp:1150: const_cast<RenderLayer*>(this)->m_ancestorDependentPropertyCache = adoptPtr(new AncestorDependentPropertyCache()); The pattern we usually use ...
6 years, 9 months ago (2014-03-20 20:04:53 UTC) #3
Ian Vollick
Thanks for the quick reviews! Other than the changes I've made in response to your ...
6 years, 9 months ago (2014-03-20 21:32:21 UTC) #4
abarth-chromium
https://codereview.chromium.org/206283003/diff/100001/Source/core/rendering/RenderLayer.cpp File Source/core/rendering/RenderLayer.cpp (right): https://codereview.chromium.org/206283003/diff/100001/Source/core/rendering/RenderLayer.cpp#newcode1145 Source/core/rendering/RenderLayer.cpp:1145: m_ancestorDependentPropertyCache = adoptPtr(new AncestorDependentPropertyCache()); Should we just return if ...
6 years, 9 months ago (2014-03-20 21:36:45 UTC) #5
Ian Vollick
https://codereview.chromium.org/206283003/diff/100001/Source/core/rendering/RenderLayer.cpp File Source/core/rendering/RenderLayer.cpp (right): https://codereview.chromium.org/206283003/diff/100001/Source/core/rendering/RenderLayer.cpp#newcode1145 Source/core/rendering/RenderLayer.cpp:1145: m_ancestorDependentPropertyCache = adoptPtr(new AncestorDependentPropertyCache()); On 2014/03/20 21:36:45, abarth wrote: ...
6 years, 9 months ago (2014-03-20 21:57:00 UTC) #6
abarth-chromium
lgtm https://codereview.chromium.org/206283003/diff/120001/Source/core/rendering/RenderLayer.cpp File Source/core/rendering/RenderLayer.cpp (right): https://codereview.chromium.org/206283003/diff/120001/Source/core/rendering/RenderLayer.cpp#newcode1177 Source/core/rendering/RenderLayer.cpp:1177: m_ancestorDependentPropertyCache->ancestorCompositedScrollingLayerDirty = false; I probably would have made ...
6 years, 9 months ago (2014-03-20 22:49:14 UTC) #7
Ian Vollick
https://codereview.chromium.org/206283003/diff/120001/Source/core/rendering/RenderLayer.cpp File Source/core/rendering/RenderLayer.cpp (right): https://codereview.chromium.org/206283003/diff/120001/Source/core/rendering/RenderLayer.cpp#newcode1177 Source/core/rendering/RenderLayer.cpp:1177: m_ancestorDependentPropertyCache->ancestorCompositedScrollingLayerDirty = false; On 2014/03/20 22:49:15, abarth wrote: > ...
6 years, 9 months ago (2014-03-21 00:01:11 UTC) #8
Ian Vollick
The CQ bit was checked by vollick@chromium.org
6 years, 9 months ago (2014-03-21 00:01:16 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/vollick@chromium.org/206283003/160001
6 years, 9 months ago (2014-03-21 00:01:22 UTC) #10
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-21 00:11:54 UTC) #11
commit-bot: I haz the power
Try jobs failed on following builders: tryserver.blink on linux_blink_rel
6 years, 9 months ago (2014-03-21 00:11:54 UTC) #12
Ian Vollick
The CQ bit was checked by vollick@chromium.org
6 years, 9 months ago (2014-03-21 10:11:09 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/vollick@chromium.org/206283003/180001
6 years, 9 months ago (2014-03-21 10:11:11 UTC) #14
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-21 10:12:11 UTC) #15
commit-bot: I haz the power
Try jobs failed on following builders: tryserver.blink on mac_blink_compile_dbg
6 years, 9 months ago (2014-03-21 10:12:12 UTC) #16
Ian Vollick
The CQ bit was checked by vollick@chromium.org
6 years, 9 months ago (2014-03-21 12:19:20 UTC) #17
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/vollick@chromium.org/206283003/180001
6 years, 9 months ago (2014-03-21 12:19:23 UTC) #18
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-21 13:18:53 UTC) #19
commit-bot: I haz the power
Try jobs failed on following builders: tryserver.blink on linux_blink_dbg
6 years, 9 months ago (2014-03-21 13:18:54 UTC) #20
Ian Vollick
The CQ bit was checked by vollick@chromium.org
6 years, 9 months ago (2014-03-21 13:21:00 UTC) #21
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/vollick@chromium.org/206283003/180001
6 years, 9 months ago (2014-03-21 13:21:02 UTC) #22
commit-bot: I haz the power
6 years, 9 months ago (2014-03-21 14:19:43 UTC) #23
Message was sent while issue was closed.
Change committed as 169741

Powered by Google App Engine
This is Rietveld 408576698