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

Issue 473903002: Avoid auto-resize re-entrancy problems. (Closed)

Created:
6 years, 4 months ago by rune
Modified:
6 years, 3 months ago
CC:
blink-reviews
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Project:
blink
Visibility:
Public.

Description

Avoid auto-resize re-entrancy problems. ASSERT(needsLayout()) failed in various layout() methods. The reason is that autoSizeIfEnabled() will re-enter FrameView::layout(), and upon return, the rootForThisLayout RenderObject has already been layed out. This CL moves the auto-sizing up to the top of FrameView::layout() to avoid the re-entrancy problem with rootForThisLayout. BUG=403743 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=181258

Patch Set 1 #

Patch Set 2 : Rebased #

Total comments: 2

Patch Set 3 : Removed incorrect return. #

Total comments: 4

Patch Set 4 : Moved inside programmatic scroll and FrameView protect #

Patch Set 5 : Rebased #

Unified diffs Side-by-side diffs Delta from patch set Stats (+37 lines, -2 lines) Patch
M Source/core/frame/FrameView.cpp View 1 2 3 4 2 chunks +3 lines, -2 lines 0 comments Download
M Source/web/tests/WebViewTest.cpp View 1 2 3 4 2 chunks +17 lines, -0 lines 0 comments Download
A Source/web/tests/data/subtree-layout.html View 1 chunk +17 lines, -0 lines 0 comments Download

Messages

Total messages: 16 (1 generated)
rune
The auto-resize feature is used in pop-up windows for extensions in Opera. This causes a ...
6 years, 4 months ago (2014-08-14 20:51:39 UTC) #1
rune
https://codereview.chromium.org/473903002/diff/20001/Source/core/frame/FrameView.cpp File Source/core/frame/FrameView.cpp (right): https://codereview.chromium.org/473903002/diff/20001/Source/core/frame/FrameView.cpp#newcode802 Source/core/frame/FrameView.cpp:802: autoSizeIfEnabled(); Perhaps this should be done after the layout ...
6 years, 4 months ago (2014-08-14 20:53:41 UTC) #2
rune
https://codereview.chromium.org/473903002/diff/20001/Source/core/frame/FrameView.cpp File Source/core/frame/FrameView.cpp (right): https://codereview.chromium.org/473903002/diff/20001/Source/core/frame/FrameView.cpp#newcode804 Source/core/frame/FrameView.cpp:804: return; This caused regressions. needsLayout() might be false when ...
6 years, 4 months ago (2014-08-15 09:27:15 UTC) #3
rune
PTAL
6 years, 4 months ago (2014-08-21 14:48:35 UTC) #4
levin
Seems fine to me as long as autoresize works in your tests and this could ...
6 years, 4 months ago (2014-08-22 02:11:01 UTC) #5
rune
Thanks for reviewing! The reason I care is that the ASSERT is an annoyance to ...
6 years, 4 months ago (2014-08-22 08:52:27 UTC) #6
rune
On 2014/08/22 at 08:52:27, rune wrote: > > They all got disabled well after I ...
6 years, 4 months ago (2014-08-22 11:05:15 UTC) #7
levin
On 2014/08/22 08:52:27, rune wrote: > Thanks for reviewing! > > The reason I care ...
6 years, 4 months ago (2014-08-22 16:02:01 UTC) #8
rune
@levin wanted someone else to approve. @abarth or @eseidel, PTAL?
6 years, 3 months ago (2014-08-27 10:40:22 UTC) #9
rune
On 2014/08/27 at 10:40:22, rune wrote: > @levin wanted someone else to approve. > > ...
6 years, 3 months ago (2014-08-29 09:02:48 UTC) #10
abarth-chromium
You mention an early return in your description. Where is that in the code?
6 years, 3 months ago (2014-09-02 19:51:39 UTC) #11
rune
On 2014/09/02 at 19:51:39, abarth wrote: > You mention an early return in your description. ...
6 years, 3 months ago (2014-09-02 20:21:28 UTC) #12
abarth-chromium
lgtm
6 years, 3 months ago (2014-09-02 20:23:53 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rune@opera.com/473903002/80001
6 years, 3 months ago (2014-09-02 20:27:13 UTC) #15
commit-bot: I haz the power
6 years, 3 months ago (2014-09-02 21:11:02 UTC) #16
Message was sent while issue was closed.
Committed patchset #5 (id:80001) as 181258

Powered by Google App Engine
This is Rietveld 408576698