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

Issue 197283038: Add RenderObject::needsResizeLayout (Closed)

Created:
6 years, 9 months ago by Xianzhu
Modified:
6 years, 8 months ago
CC:
blink-reviews, bemjb+rendering_chromium.org, dsinclair, zoltan1, eae+blinkwatch, leviw+renderwatch, jchaffraix+rendering, pdr.
Visibility:
Public.

Description

Add RenderObject::needsResizeLayout Originally we use setNeedsLayout to schedule layout for resizes, which causes full layouts that may be unnecessary in many cases. Add RenderObject::needsResizeLayout to schedule such layouts. Handle such layout in RenderBlock::simplifiedLayout() and fall back to full layout if simplified layout is not feasible. For now this flag is for RenderView only to optimize RenderView resize. Generic resize layout needs more verifications. BUG=258219, 310875 TEST=none because the flag has not been used yet. Will test in followup changes.

Patch Set 1 #

Patch Set 2 : Add needsResizeLayoutOnly #

Patch Set 3 : Rebase #

Total comments: 4

Patch Set 4 : Rename internal setNeedsResizeLayout #

Total comments: 9

Patch Set 5 : RenderView::setNeedsResizeLayout() #

Patch Set 6 : Not to touch RenderView for now #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+56 lines, -5 lines) Patch
M Source/core/rendering/RenderBlock.cpp View 1 2 3 4 2 chunks +5 lines, -1 line 0 comments Download
M Source/core/rendering/RenderBox.h View 1 2 3 4 1 chunk +2 lines, -0 lines 0 comments Download
M Source/core/rendering/RenderBox.cpp View 1 2 3 4 5 1 chunk +12 lines, -0 lines 0 comments Download
M Source/core/rendering/RenderObject.h View 1 2 3 4 5 7 chunks +37 lines, -4 lines 1 comment Download

Messages

Total messages: 13 (0 generated)
Xianzhu
6 years, 9 months ago (2014-03-19 16:33:01 UTC) #1
Julien - ping for review
FWIW it seems to me like what we would like is something like a recompute-size ...
6 years, 9 months ago (2014-03-21 19:39:10 UTC) #2
Xianzhu
https://codereview.chromium.org/197283038/diff/40001/Source/core/rendering/RenderBox.h File Source/core/rendering/RenderBox.h (right): https://codereview.chromium.org/197283038/diff/40001/Source/core/rendering/RenderBox.h#newcode538 Source/core/rendering/RenderBox.h:538: return tryLayoutDoingPositionedMovementOnly(); On 2014/03/21 19:39:10, Julien Chaffraix - PST ...
6 years, 9 months ago (2014-03-21 20:10:36 UTC) #3
esprehn
https://codereview.chromium.org/197283038/diff/40001/Source/core/rendering/RenderObject.h File Source/core/rendering/RenderObject.h (right): https://codereview.chromium.org/197283038/diff/40001/Source/core/rendering/RenderObject.h#newcode1351 Source/core/rendering/RenderObject.h:1351: setNeedsResizeLayout(true); Please don't add this overload like this.
6 years, 9 months ago (2014-03-21 20:15:39 UTC) #4
Xianzhu
https://codereview.chromium.org/197283038/diff/40001/Source/core/rendering/RenderObject.h File Source/core/rendering/RenderObject.h (right): https://codereview.chromium.org/197283038/diff/40001/Source/core/rendering/RenderObject.h#newcode1351 Source/core/rendering/RenderObject.h:1351: setNeedsResizeLayout(true); On 2014/03/21 20:15:39, esprehn wrote: > Please don't ...
6 years, 9 months ago (2014-03-21 20:37:14 UTC) #5
Xianzhu
6 years, 9 months ago (2014-03-24 18:57:16 UTC) #6
esprehn
The methods should be on RenderView, there's no reason to add them to RenderObject and ...
6 years, 9 months ago (2014-03-24 22:40:04 UTC) #7
Xianzhu
https://codereview.chromium.org/197283038/diff/60001/Source/core/rendering/RenderBlock.cpp File Source/core/rendering/RenderBlock.cpp (right): https://codereview.chromium.org/197283038/diff/60001/Source/core/rendering/RenderBlock.cpp#newcode3822 Source/core/rendering/RenderBlock.cpp:3822: if (node()->isShadowRoot() && toShadowRoot(node())->host()->hasTagName(inputTag)) On 2014/03/24 22:40:04, esprehn wrote: ...
6 years, 9 months ago (2014-03-24 23:53:23 UTC) #8
Xianzhu
PTAL at Patch Set 6. Thanks. Notes: - Still keep setNeedsResizeLayout() functions in RenderObject.h. Removed ...
6 years, 9 months ago (2014-03-26 15:31:50 UTC) #9
Xianzhu
On 2014/03/26 15:31:50, Xianzhu wrote: > PTAL at Patch Set 6. Thanks. > > Notes: ...
6 years, 9 months ago (2014-03-26 15:33:30 UTC) #10
eseidel
Resizing RenderObjects is exactly what "full layout" is supposed to do. I'm surprised we need ...
6 years, 8 months ago (2014-04-01 18:25:19 UTC) #11
Xianzhu
On 2014/04/01 18:25:19, eseidel wrote: > Resizing RenderObjects is exactly what "full layout" is supposed ...
6 years, 8 months ago (2014-04-01 18:43:41 UTC) #12
eseidel
6 years, 8 months ago (2014-04-01 18:49:48 UTC) #13
I don't know the history of RenderBlock::simpifiedLayout well enough to justify
it's existence:
https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit...

The general trend in WebKit was towards fast-paths to side-step all the crazy
that is the general case on the web.  The general trend in Blink has been away
from fast-paths (they add a lot of complexity to the engine and "falling off a
cliff" behavior for authors) and just making the common paths faster.  But each
approach has its place.

Powered by Google App Engine
This is Rietveld 408576698