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

Issue 203463007: Recompute overflow after transform changes (Closed)

Created:
6 years, 9 months ago by trchen
Modified:
6 years, 8 months ago
Reviewers:
ojan, esprehn, eseidel
CC:
blink-reviews, bemjb+rendering_chromium.org, dsinclair, zoltan1, eae+blinkwatch, leviw+renderwatch, blink-layers+watch_chromium.org, jchaffraix+rendering, pdr.
Visibility:
Public.

Description

Recompute overflow after transform changes This CL adds a special code path that is very similar to simplifiedLayout. When the only change on an element is the transform, we can do the minimal work to recompute the layout overflow without much overhead from layout. This is done by adding an overflow recalculation phase after style changes, if a RenderObject doesn't need layout and has moved transformed children, the special code path will kick in. BUG=352460 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=171923

Patch Set 1 #

Total comments: 1

Patch Set 2 : a smarter version #

Patch Set 3 : add early out in setStyle to avoid useless tree traversal #

Patch Set 4 : rebase #

Patch Set 5 : correct rebase error #

Patch Set 6 : fix SVG. update TestExpectations #

Patch Set 7 : tests had been missing #

Total comments: 6

Patch Set 8 : revised #

Patch Set 9 : don't update frame scrollbars (makes tests to flake) #

Patch Set 10 : rebase #

Total comments: 8
Unified diffs Side-by-side diffs Delta from patch set Stats (+248 lines, -49 lines) Patch
M LayoutTests/TestExpectations View 1 2 3 4 5 6 7 8 9 1 chunk +12 lines, -0 lines 0 comments Download
A LayoutTests/compositing/overflow/transform-should-update-container-overflow.html View 1 4 5 6 1 chunk +31 lines, -0 lines 0 comments Download
A LayoutTests/compositing/overflow/transform-should-update-container-overflow-expected.txt View 1 4 5 6 1 chunk +3 lines, -0 lines 0 comments Download
A LayoutTests/compositing/repaint/should-not-repaint-composited-transform.html View 1 4 5 6 1 chunk +26 lines, -0 lines 0 comments Download
A + LayoutTests/compositing/repaint/should-not-repaint-composited-transform-expected.txt View 1 2 3 4 5 6 1 chunk +2 lines, -4 lines 0 comments Download
M Source/core/dom/Document.cpp View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M Source/core/frame/FrameView.h View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -0 lines 0 comments Download
M Source/core/frame/FrameView.cpp View 1 2 3 4 5 6 7 8 9 1 chunk +12 lines, -0 lines 2 comments Download
M Source/core/rendering/RenderBlock.h View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -0 lines 0 comments Download
M Source/core/rendering/RenderBlock.cpp View 1 2 3 4 5 6 7 8 9 1 chunk +87 lines, -0 lines 2 comments Download
M Source/core/rendering/RenderLayerModelObject.cpp View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/RenderLayerScrollableArea.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M Source/core/rendering/RenderLayerScrollableArea.cpp View 1 2 3 4 5 6 7 8 9 1 chunk +20 lines, -0 lines 0 comments Download
M Source/core/rendering/RenderObject.h View 1 2 3 4 5 6 7 8 9 7 chunks +13 lines, -13 lines 2 comments Download
M Source/core/rendering/RenderObject.cpp View 1 2 3 4 5 6 7 8 9 5 chunks +33 lines, -27 lines 2 comments Download
M Source/core/rendering/style/RenderStyleConstants.h View 1 2 3 4 5 6 7 2 chunks +0 lines, -4 lines 0 comments Download

Messages

Total messages: 17 (0 generated)
esprehn
The overflow computation should probably be in a step at the end of recalcStyle, otherwise ...
6 years, 9 months ago (2014-03-26 02:06:19 UTC) #1
trchen
Hello esprehn, this is the new version of the CL as we discussed offline last ...
6 years, 8 months ago (2014-03-28 04:16:52 UTC) #2
trchen
Hey the latest patchset looks much more normal (correctness and performance-wise). Just need to update ...
6 years, 8 months ago (2014-03-28 23:16:18 UTC) #3
Xianzhu
It looks great to remove the SimplifiedLayout flags. You might also want to remove the ...
6 years, 8 months ago (2014-04-10 20:39:57 UTC) #4
esprehn
I think you have a bug where you go up one level too many in ...
6 years, 8 months ago (2014-04-10 23:46:14 UTC) #5
trchen
https://codereview.chromium.org/203463007/diff/130001/Source/core/rendering/RenderBlock.cpp File Source/core/rendering/RenderBlock.cpp (right): https://codereview.chromium.org/203463007/diff/130001/Source/core/rendering/RenderBlock.cpp#newcode4926 Source/core/rendering/RenderBlock.cpp:4926: if (!overflowChanged) On 2014/04/10 23:46:14, esprehn wrote: > I ...
6 years, 8 months ago (2014-04-11 22:04:55 UTC) #6
trchen
Do you have other concern?
6 years, 8 months ago (2014-04-18 03:33:06 UTC) #7
esprehn
Patch looks great, thanks for fixing this! lgtm
6 years, 8 months ago (2014-04-18 04:35:26 UTC) #8
trchen
The CQ bit was checked by trchen@chromium.org
6 years, 8 months ago (2014-04-18 04:56:46 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/trchen@chromium.org/203463007/210001
6 years, 8 months ago (2014-04-18 04:56:53 UTC) #10
commit-bot: I haz the power
Change committed as 171923
6 years, 8 months ago (2014-04-18 05:17:31 UTC) #11
ojan
This change is great. Just a few things you could maybe do in a followup ...
6 years, 8 months ago (2014-04-19 02:19:30 UTC) #12
trchen
Thanks for the suggestion! I will upload a followup CL soon. https://codereview.chromium.org/203463007/diff/210001/Source/core/frame/FrameView.cpp File Source/core/frame/FrameView.cpp (right): ...
6 years, 8 months ago (2014-04-19 05:08:21 UTC) #13
ojan
> File Source/core/rendering/RenderObject.h (right): > > https://codereview.chromium.org/203463007/diff/210001/Source/core/rendering/RenderObject.h#newcode1242 > Source/core/rendering/RenderObject.h:1242: void > setNeedsSimplifiedNormalFlowLayout(bool b) { > ...
6 years, 8 months ago (2014-04-21 19:44:27 UTC) #14
James Cook
On 2014/04/21 19:44:27, ojan wrote: > > File Source/core/rendering/RenderObject.h (right): > > > > > ...
6 years, 8 months ago (2014-04-22 17:27:36 UTC) #15
eseidel
Is the CrOS login screen special? or does this issue repro in other configurations of ...
6 years, 8 months ago (2014-04-22 18:13:07 UTC) #16
aboxhall
6 years, 8 months ago (2014-04-22 18:13:48 UTC) #17
Message was sent while issue was closed.
A revert of this CL has been created in
https://codereview.chromium.org/246783004/ by aboxhall@chromium.org.

The reason for reverting is: Seems very likely to have broken ChromeOS login
page: https://code.google.com/p/chromium/issues/detail?id=365507.

Powered by Google App Engine
This is Rietveld 408576698