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

Issue 927773002: Keep track of multiple layout roots (Closed)

Created:
5 years, 10 months ago by leviw_travelin_and_unemployed
Modified:
5 years, 9 months ago
CC:
blink-reviews
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Keep track of multiple layout roots Prior to this patch, we'd only keep track of one subtree layout root, and always dirty layout up the tree to the shared common ancestor when another was added. This can result in a lot of extra tree walking in certain cases. This patch instead keeps a HashSet of subtree layout roots, clearing them only when layout occurs, a full layout is scheduled, or the roots themselves are cleared. BUG=454255 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=191035

Patch Set 1 #

Patch Set 2 : ToT #

Patch Set 3 : Make bots happy #

Patch Set 4 : Working! #

Patch Set 5 : Fix compile error #

Patch Set 6 : MOAR fixes #

Patch Set 7 : Update tests #

Patch Set 8 : Shiny patch! #

Patch Set 9 : Fix inspector tests #

Total comments: 3

Patch Set 10 : Add comment #

Total comments: 8

Patch Set 11 : Fully remove old layout subtree pointer #

Total comments: 6

Patch Set 12 : Address concerns. #

Total comments: 3

Patch Set 13 : Add esprehn's suggestions #

Patch Set 14 : Fix explicit rects issue #

Patch Set 15 : Remove bool #

Total comments: 7

Patch Set 16 : +jchaffraix's changes #

Patch Set 17 : Add bug link #

Unified diffs Side-by-side diffs Delta from patch set Stats (+140 lines, -143 lines) Patch
M LayoutTests/TestExpectations View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +2 lines, -0 lines 0 comments Download
M LayoutTests/fast/layout/common-ancestor-relayout-boundary.html View 1 2 3 4 5 6 7 8 9 1 chunk +7 lines, -3 lines 0 comments Download
M LayoutTests/fast/layout/common-ancestor-relayout-boundary-expected.txt View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M LayoutTests/platform/linux/fast/repaint/subtree-root-skipped-expected.txt View 1 2 3 4 5 6 1 chunk +1 line, -2 lines 0 comments Download
M Source/core/frame/FrameView.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 chunks +9 lines, -7 lines 0 comments Download
M Source/core/frame/FrameView.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 15 chunks +111 lines, -92 lines 0 comments Download
M Source/core/frame/LocalFrame.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +0 lines, -2 lines 0 comments Download
M Source/core/frame/LocalFrame.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +0 lines, -19 lines 0 comments Download
M Source/core/inspector/InspectorInstrumentation.idl View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
M Source/core/inspector/InspectorPageAgent.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
M Source/core/inspector/InspectorPageAgent.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
M Source/core/inspector/InspectorTraceEvents.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
M Source/core/layout/LayoutBox.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -1 line 0 comments Download
M Source/core/layout/LayoutObject.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +3 lines, -11 lines 0 comments Download
M Source/core/testing/Internals.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 29 (7 generated)
leviw_travelin_and_unemployed
PTAL https://codereview.chromium.org/927773002/diff/160001/LayoutTests/TestExpectations File LayoutTests/TestExpectations (left): https://codereview.chromium.org/927773002/diff/160001/LayoutTests/TestExpectations#oldcode1824 LayoutTests/TestExpectations:1824: crbug.com/458420 [ Win Debug ] virtual/threaded/fast/scroll-behavior/overflow-scroll-animates.html [ Timeout ...
5 years, 10 months ago (2015-02-20 22:42:24 UTC) #2
leviw_travelin_and_unemployed
FWIW: the compiler error is unrelated :(
5 years, 10 months ago (2015-02-20 23:00:37 UTC) #3
eae
Change looks good but the test change doesn't really make sense to me. https://codereview.chromium.org/927773002/diff/160001/LayoutTests/fast/layout/common-ancestor-relayout-boundary.html File ...
5 years, 10 months ago (2015-02-20 23:16:13 UTC) #4
leviw_travelin_and_unemployed
Added a comment. Thanks EAE!
5 years, 10 months ago (2015-02-20 23:41:25 UTC) #5
eae
LGTM
5 years, 10 months ago (2015-02-20 23:42:16 UTC) #6
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/927773002/180001
5 years, 10 months ago (2015-02-20 23:59:50 UTC) #8
Julien - ping for review
Cancelling the commit bit as I have some doubt about the change and would like ...
5 years, 10 months ago (2015-02-21 00:13:16 UTC) #9
Julien - ping for review
+Elliott/Ojan as they are big proponent of simplicity. I think this patch makes a strong ...
5 years, 10 months ago (2015-02-21 00:33:21 UTC) #12
leviw_travelin_and_unemployed
https://codereview.chromium.org/927773002/diff/180001/Source/core/frame/FrameView.cpp File Source/core/frame/FrameView.cpp (right): https://codereview.chromium.org/927773002/diff/180001/Source/core/frame/FrameView.cpp#newcode917 Source/core/frame/FrameView.cpp:917: if (!root.needsLayout()) On 2015/02/21 00:33:21, Julien Chaffraix - PST ...
5 years, 10 months ago (2015-02-21 00:39:09 UTC) #13
dsinclair
https://codereview.chromium.org/927773002/diff/180001/Source/core/frame/FrameView.cpp File Source/core/frame/FrameView.cpp (right): https://codereview.chromium.org/927773002/diff/180001/Source/core/frame/FrameView.cpp#newcode1092 Source/core/frame/FrameView.cpp:1092: m_layoutSubtreeRoot = nullptr; Remove? https://codereview.chromium.org/927773002/diff/180001/Source/core/frame/FrameView.h File Source/core/frame/FrameView.h (right): https://codereview.chromium.org/927773002/diff/180001/Source/core/frame/FrameView.h#newcode724 ...
5 years, 10 months ago (2015-02-21 01:07:12 UTC) #14
leviw_travelin_and_unemployed
Good calls. Fixed. https://codereview.chromium.org/927773002/diff/180001/Source/core/frame/FrameView.cpp File Source/core/frame/FrameView.cpp (right): https://codereview.chromium.org/927773002/diff/180001/Source/core/frame/FrameView.cpp#newcode1092 Source/core/frame/FrameView.cpp:1092: m_layoutSubtreeRoot = nullptr; On 2015/02/21 01:07:12, ...
5 years, 10 months ago (2015-02-23 18:47:00 UTC) #16
ojan
I'm definitely supportive of making the codebase as simple as possible in general. This specific ...
5 years, 10 months ago (2015-02-23 19:23:57 UTC) #17
Julien - ping for review
https://codereview.chromium.org/927773002/diff/200001/Source/core/frame/FrameView.cpp File Source/core/frame/FrameView.cpp (right): https://codereview.chromium.org/927773002/diff/200001/Source/core/frame/FrameView.cpp#newcode1088 Source/core/frame/FrameView.cpp:1088: container->setMayNeedPaintInvalidation(); Is this code executed? You're removing pointers from ...
5 years, 10 months ago (2015-02-23 19:33:44 UTC) #18
leviw_travelin_and_unemployed
On 2015/02/23 at 19:33:44, jchaffraix wrote: > https://codereview.chromium.org/927773002/diff/200001/Source/core/frame/FrameView.cpp > File Source/core/frame/FrameView.cpp (right): > > https://codereview.chromium.org/927773002/diff/200001/Source/core/frame/FrameView.cpp#newcode1088 ...
5 years, 10 months ago (2015-02-23 23:05:30 UTC) #19
leviw_travelin_and_unemployed
On 2015/02/23 at 19:23:57, ojan wrote: > I'm definitely supportive of making the codebase as ...
5 years, 10 months ago (2015-02-23 23:07:08 UTC) #20
esprehn
https://codereview.chromium.org/927773002/diff/220001/Source/core/frame/FrameView.h File Source/core/frame/FrameView.h (right): https://codereview.chromium.org/927773002/diff/220001/Source/core/frame/FrameView.h#newcode105 Source/core/frame/FrameView.h:105: bool isLayoutRoot(const LayoutObject*) const; reference. https://codereview.chromium.org/927773002/diff/220001/Source/core/frame/FrameView.h#newcode109 Source/core/frame/FrameView.h:109: void countObjectsNeedingLayout(unsigned& ...
5 years, 10 months ago (2015-02-24 02:31:33 UTC) #21
leviw_travelin_and_unemployed
PTAL
5 years, 10 months ago (2015-02-27 00:22:27 UTC) #22
dsinclair
This is good to me, but I'll defer to the people with more knowledge. https://codereview.chromium.org/927773002/diff/280001/Source/core/frame/FrameView.cpp ...
5 years, 9 months ago (2015-02-27 16:12:09 UTC) #23
Julien - ping for review
lgtm https://codereview.chromium.org/927773002/diff/280001/Source/core/frame/FrameView.cpp File Source/core/frame/FrameView.cpp (right): https://codereview.chromium.org/927773002/diff/280001/Source/core/frame/FrameView.cpp#newcode776 Source/core/frame/FrameView.cpp:776: isSubtree = false; IMHO that would be more ...
5 years, 9 months ago (2015-02-27 16:38:09 UTC) #24
leviw_travelin_and_unemployed
Thanks for the review! https://codereview.chromium.org/927773002/diff/280001/Source/core/frame/FrameView.cpp File Source/core/frame/FrameView.cpp (right): https://codereview.chromium.org/927773002/diff/280001/Source/core/frame/FrameView.cpp#newcode911 Source/core/frame/FrameView.cpp:911: layoutFromRootObject(root); On 2015/02/27 16:38:09, Julien ...
5 years, 9 months ago (2015-02-27 20:09:28 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/927773002/320001
5 years, 9 months ago (2015-02-27 21:29:07 UTC) #28
commit-bot: I haz the power
5 years, 9 months ago (2015-02-28 00:22:13 UTC) #29
Message was sent while issue was closed.
Committed patchset #17 (id:320001) as
https://src.chromium.org/viewvc/blink?view=rev&revision=191035

Powered by Google App Engine
This is Rietveld 408576698