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

Issue 1290053003: Handle LocalFrame being nestedly detached by subframe. (Closed)

Created:
5 years, 4 months ago by sof
Modified:
5 years, 4 months ago
Reviewers:
Nate Chapin, dcheng
CC:
blink-reviews, gavinp+loader_chromium.org, kinuko+watch, tyoshino+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Handle LocalFrame being nestedly detached by subframe. As part of detaching a LocalFrame, its subframes are also detached. Should the detachment of those subframes trigger a nested detach of the LocalFrame that initiated their detachment, the LocalFrame being returned to after having detached the subframes could well be in a detached state. The detach steps that followed (FrameLoader operations) weren't prepared for being in a detached state (following r199143) and failed. And the FrameLoader shouldn't have to gracefully handle being used in a detached state, so add an is-detached check to the LocalFrame's detach steps before continuing. Leaving early if so. R=dcheng,japhet BUG=520014 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=200820

Patch Set 1 #

Total comments: 2

Patch Set 2 : improve test naming #

Patch Set 3 : experiment: add another nested detach check #

Total comments: 2

Patch Set 4 : reposition detach check in LocalFrame::detach() #

Patch Set 5 : go back to ps#3 #

Patch Set 6 : rebased #

Unified diffs Side-by-side diffs Delta from patch set Stats (+35 lines, -1 line) Patch
A LayoutTests/fast/frames/detach-frame-from-child-detach-no-crash.html View 1 1 chunk +29 lines, -0 lines 0 comments Download
A + LayoutTests/fast/frames/detach-frame-from-child-detach-no-crash-expected.txt View 1 1 chunk +1 line, -1 line 0 comments Download
M Source/core/frame/LocalFrame.cpp View 1 2 3 4 5 1 chunk +5 lines, -0 lines 0 comments Download

Messages

Total messages: 20 (3 generated)
sof
please take a look. It's either this or add an earlier "!client()" check in LocalFrame::detach() ...
5 years, 4 months ago (2015-08-16 16:22:42 UTC) #2
dcheng
lgtm
5 years, 4 months ago (2015-08-17 16:18:03 UTC) #3
Nate Chapin
LGTM with a question... https://codereview.chromium.org/1290053003/diff/1/Source/core/loader/FrameLoader.cpp File Source/core/loader/FrameLoader.cpp (right): https://codereview.chromium.org/1290053003/diff/1/Source/core/loader/FrameLoader.cpp#newcode482 Source/core/loader/FrameLoader.cpp:482: if (m_progressTracker) Is there any ...
5 years, 4 months ago (2015-08-17 17:01:58 UTC) #4
Nate Chapin
On 2015/08/17 17:01:58, Nate Chapin wrote: > LGTM with a question... > > https://codereview.chromium.org/1290053003/diff/1/Source/core/loader/FrameLoader.cpp > ...
5 years, 4 months ago (2015-08-17 21:31:44 UTC) #5
sof
https://codereview.chromium.org/1290053003/diff/1/Source/core/loader/FrameLoader.cpp File Source/core/loader/FrameLoader.cpp (right): https://codereview.chromium.org/1290053003/diff/1/Source/core/loader/FrameLoader.cpp#newcode482 Source/core/loader/FrameLoader.cpp:482: if (m_progressTracker) On 2015/08/17 17:01:58, Nate Chapin wrote: > ...
5 years, 4 months ago (2015-08-18 05:24:13 UTC) #6
sof
On 2015/08/18 05:24:13, sof wrote: > https://codereview.chromium.org/1290053003/diff/1/Source/core/loader/FrameLoader.cpp > File Source/core/loader/FrameLoader.cpp (right): > > https://codereview.chromium.org/1290053003/diff/1/Source/core/loader/FrameLoader.cpp#newcode482 > ...
5 years, 4 months ago (2015-08-18 15:23:53 UTC) #7
Nate Chapin
On 2015/08/18 15:23:53, sof wrote: > On 2015/08/18 05:24:13, sof wrote: > > > https://codereview.chromium.org/1290053003/diff/1/Source/core/loader/FrameLoader.cpp ...
5 years, 4 months ago (2015-08-18 17:53:16 UTC) #8
sof
On 2015/08/18 17:53:16, Nate Chapin wrote: > On 2015/08/18 15:23:53, sof wrote: > > On ...
5 years, 4 months ago (2015-08-18 18:01:39 UTC) #9
Nate Chapin
On 2015/08/18 18:01:39, sof wrote: > On 2015/08/18 17:53:16, Nate Chapin wrote: > > On ...
5 years, 4 months ago (2015-08-18 18:15:39 UTC) #10
sof
On 2015/08/18 18:15:39, Nate Chapin wrote: > On 2015/08/18 18:01:39, sof wrote: > > On ...
5 years, 4 months ago (2015-08-18 19:24:51 UTC) #11
Nate Chapin
On 2015/08/18 19:24:51, sof wrote: > On 2015/08/18 18:15:39, Nate Chapin wrote: > > On ...
5 years, 4 months ago (2015-08-18 20:59:55 UTC) #12
sof
On 2015/08/18 20:59:55, Nate Chapin wrote: > On 2015/08/18 19:24:51, sof wrote: > > On ...
5 years, 4 months ago (2015-08-18 21:17:41 UTC) #13
Nate Chapin
On 2015/08/18 21:17:41, sof wrote: > On 2015/08/18 20:59:55, Nate Chapin wrote: > > On ...
5 years, 4 months ago (2015-08-18 21:23:50 UTC) #14
dcheng
https://codereview.chromium.org/1290053003/diff/40001/Source/core/frame/LocalFrame.cpp File Source/core/frame/LocalFrame.cpp (right): https://codereview.chromium.org/1290053003/diff/40001/Source/core/frame/LocalFrame.cpp#newcode296 Source/core/frame/LocalFrame.cpp:296: if (!client()) Out of curiosity, do we still need ...
5 years, 4 months ago (2015-08-18 21:26:09 UTC) #15
sof
Thanks for the good questions, landing. https://codereview.chromium.org/1290053003/diff/40001/Source/core/frame/LocalFrame.cpp File Source/core/frame/LocalFrame.cpp (right): https://codereview.chromium.org/1290053003/diff/40001/Source/core/frame/LocalFrame.cpp#newcode296 Source/core/frame/LocalFrame.cpp:296: if (!client()) On ...
5 years, 4 months ago (2015-08-19 11:44:35 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1290053003/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1290053003/100001
5 years, 4 months ago (2015-08-19 11:44:47 UTC) #19
commit-bot: I haz the power
5 years, 4 months ago (2015-08-19 12:25:53 UTC) #20
Message was sent while issue was closed.
Committed patchset #6 (id:100001) as
https://src.chromium.org/viewvc/blink?view=rev&revision=200820

Powered by Google App Engine
This is Rietveld 408576698