|
|
DescriptionMake sure pages that are closing but not yet closed are still suspended.
BUG=671102
Committed: https://crrev.com/0879cb1c4d5e7a53d060bfb7cf7cf9ea05aced72
Cr-Commit-Position: refs/heads/master@{#440376}
Patch Set 1 #Patch Set 2 : Remove more debug goop #Patch Set 3 : fix tests #Patch Set 4 : comments #
Total comments: 2
Patch Set 5 : revert no longer needed test change #
Total comments: 5
Messages
Total messages: 38 (22 generated)
Description was changed from ========== Make sure pages that are closing but not yet closed, are still suspended BUG=671102 ========== to ========== Make sure pages that are closing but not yet closed are still suspended. BUG=671102 ==========
The CQ bit was checked by dcheng@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by dcheng@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by dcheng@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by dcheng@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
dcheng@chromium.org changed reviewers: + japhet@chromium.org
A possible alternative is https://codereview.chromium.org/2575923002/, but maintaining 3 sets seems more horrible. https://codereview.chromium.org/2580703003/diff/60001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/page/FrameTree.cpp (right): https://codereview.chromium.org/2580703003/diff/60001/third_party/WebKit/Sour... third_party/WebKit/Source/core/page/FrameTree.cpp:433: if (otherPage == page || otherPage->isClosing()) Another alternative is to check the main frame's window's closed attribute. https://codereview.chromium.org/2580703003/diff/60001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/page/Page.cpp (right): https://codereview.chromium.org/2580703003/diff/60001/third_party/WebKit/Sour... third_party/WebKit/Source/core/page/Page.cpp:157: // TODO(dcheng): Try to remove this in a followup, it's not obviously needed. Originally I wanted to remove this as the fix (since this can run JS). However, I realized that this isn't sufficient, since we can just trigger a nested message loop after window.close().
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
dcheng@chromium.org changed reviewers: + kinuko@chromium.org
+kinuko, mind taking a look at this? Many loading people seem to be OOO right now =)
https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/page/Page.h (right): https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/page/Page.h:198: // is also suspended. A bit tangential, but: afaik we're going to introduce suspend state for background tabs but from the new comment this 'pause' state seems to mean a bit different thing, or are we going to merge them? (I think this used to be called defersLoading or something)
https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/page/Page.h (right): https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/page/Page.h:198: // is also suspended. On 2016/12/20 08:09:28, kinuko wrote: > A bit tangential, but: afaik we're going to introduce suspend state for > background tabs but from the new comment this 'pause' state seems to mean a bit > different thing, or are we going to merge them? > > (I think this used to be called defersLoading or something) Yeah, it's definitely confusing. This was renamed for ScopedPageLoadDeferrer to https://codereview.chromium.org/2526163002, because it also suspends ActiveDOMObjects.
dcheng@chromium.org changed reviewers: + haraken@chromium.org
On 2016/12/20 08:19:04, dcheng wrote: > https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... > File third_party/WebKit/Source/core/page/Page.h (right): > > https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... > third_party/WebKit/Source/core/page/Page.h:198: // is also suspended. > On 2016/12/20 08:09:28, kinuko wrote: > > A bit tangential, but: afaik we're going to introduce suspend state for > > background tabs but from the new comment this 'pause' state seems to mean a > bit > > different thing, or are we going to merge them? > > > > (I think this used to be called defersLoading or something) > > Yeah, it's definitely confusing. This was renamed for ScopedPageLoadDeferrer to > https://codereview.chromium.org/2526163002, because it also suspends > ActiveDOMObjects. Oops, I didn't answer the second part of your comment. I don't think there's any current plan to merge the concepts, but we should definitely think about the naming. +haraken
https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/page/Page.h (right): https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/page/Page.h:198: // is also suspended. On 2016/12/20 08:19:04, dcheng wrote: > On 2016/12/20 08:09:28, kinuko wrote: > > A bit tangential, but: afaik we're going to introduce suspend state for > > background tabs but from the new comment this 'pause' state seems to mean a > bit > > different thing, or are we going to merge them? > > > > (I think this used to be called defersLoading or something) > > Yeah, it's definitely confusing. This was renamed for ScopedPageLoadDeferrer to > https://codereview.chromium.org/2526163002, because it also suspends > ActiveDOMObjects. Yeah, this is confusing... Just to clarify: The "pause" in the spec means the "suspend" state of SuspendableObjects, right? Maybe we should rename the "suspend" state of the tab suspension to something else.
On 2016/12/20 10:05:38, haraken wrote: > https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... > File third_party/WebKit/Source/core/page/Page.h (right): > > https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... > third_party/WebKit/Source/core/page/Page.h:198: // is also suspended. > On 2016/12/20 08:19:04, dcheng wrote: > > On 2016/12/20 08:09:28, kinuko wrote: > > > A bit tangential, but: afaik we're going to introduce suspend state for > > > background tabs but from the new comment this 'pause' state seems to mean a > > bit > > > different thing, or are we going to merge them? > > > > > > (I think this used to be called defersLoading or something) > > > > Yeah, it's definitely confusing. This was renamed for ScopedPageLoadDeferrer > to > > https://codereview.chromium.org/2526163002, because it also suspends > > ActiveDOMObjects. > > Yeah, this is confusing... > > Just to clarify: The "pause" in the spec means the "suspend" state of > SuspendableObjects, right? > > Maybe we should rename the "suspend" state of the tab suspension to something > else. A better idea might be: - rename the "suspend" state of SuspendableObjects to "pause", per the spec - keep the "suspend" state of the tab suspension as is
On 2016/12/20 10:06:41, haraken wrote: > On 2016/12/20 10:05:38, haraken wrote: > > > https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... > > File third_party/WebKit/Source/core/page/Page.h (right): > > > > > https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... > > third_party/WebKit/Source/core/page/Page.h:198: // is also suspended. > > On 2016/12/20 08:19:04, dcheng wrote: > > > On 2016/12/20 08:09:28, kinuko wrote: > > > > A bit tangential, but: afaik we're going to introduce suspend state for > > > > background tabs but from the new comment this 'pause' state seems to mean > a > > > bit > > > > different thing, or are we going to merge them? > > > > > > > > (I think this used to be called defersLoading or something) > > > > > > Yeah, it's definitely confusing. This was renamed for ScopedPageLoadDeferrer > > to > > > https://codereview.chromium.org/2526163002, because it also suspends > > > ActiveDOMObjects. > > > > Yeah, this is confusing... > > > > Just to clarify: The "pause" in the spec means the "suspend" state of > > SuspendableObjects, right? > > > > Maybe we should rename the "suspend" state of the tab suspension to something > > else. > > A better idea might be: > > - rename the "suspend" state of SuspendableObjects to "pause", per the spec > - keep the "suspend" state of the tab suspension as is pause()+resume() makes sense to me, and I'm happy to do this rename (after the Blink rename ;-), but I wonder if resume() can still be confused with resume from tab suspension? Either way, I think we can address this independently of this CL.
On 2016/12/20 10:09:43, dcheng wrote: > On 2016/12/20 10:06:41, haraken wrote: > > On 2016/12/20 10:05:38, haraken wrote: > > > > > > https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... > > > File third_party/WebKit/Source/core/page/Page.h (right): > > > > > > > > > https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... > > > third_party/WebKit/Source/core/page/Page.h:198: // is also suspended. > > > On 2016/12/20 08:19:04, dcheng wrote: > > > > On 2016/12/20 08:09:28, kinuko wrote: > > > > > A bit tangential, but: afaik we're going to introduce suspend state for > > > > > background tabs but from the new comment this 'pause' state seems to > mean > > a > > > > bit > > > > > different thing, or are we going to merge them? > > > > > > > > > > (I think this used to be called defersLoading or something) > > > > > > > > Yeah, it's definitely confusing. This was renamed for > ScopedPageLoadDeferrer > > > to > > > > https://codereview.chromium.org/2526163002, because it also suspends > > > > ActiveDOMObjects. > > > > > > Yeah, this is confusing... > > > > > > Just to clarify: The "pause" in the spec means the "suspend" state of > > > SuspendableObjects, right? > > > > > > Maybe we should rename the "suspend" state of the tab suspension to > something > > > else. > > > > A better idea might be: > > > > - rename the "suspend" state of SuspendableObjects to "pause", per the spec > > - keep the "suspend" state of the tab suspension as is > > pause()+resume() makes sense to me, and I'm happy to do this rename (after the > Blink rename ;-), but I wonder if resume() can still be confused with resume > from tab suspension? > > Either way, I think we can address this independently of this CL. Yes.
ping =)
I guess kinuko-san would be a better reviewer for this.
Thanks for the renaming discussion, pause sounds clearer to me too. lgtm mod one question https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/page/Page.cpp (right): https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/page/Page.cpp:159: toLocalFrame(m_mainFrame)->loader().stopAllLoaders(); Is the TODO the reason you replaced mainFrame->stopLoading() with more explicit code like this?
https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... File third_party/WebKit/Source/core/page/Page.cpp (right): https://codereview.chromium.org/2580703003/diff/80001/third_party/WebKit/Sour... third_party/WebKit/Source/core/page/Page.cpp:159: toLocalFrame(m_mainFrame)->loader().stopAllLoaders(); On 2016/12/21 13:38:17, kinuko wrote: > Is the TODO the reason you replaced mainFrame->stopLoading() with more explicit > code like this? Yes: we were calling generically through mainFrame->stopLoading() before, but it's already a no-op for remote frames. Since we're going to detach the frames soon after this (which will also call stop loading, as well as correctly stop all recursive loads), my theory is we can just remove this completely.
The CQ bit was checked by dcheng@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 80001, "attempt_start_ts": 1482395979554580, "parent_rev": "b15e9f8ead5f48a2b8183a5ccace2e80f6b795d3", "commit_rev": "df0c51e0c69376693647323e6f6c88459cf445c7"}
Message was sent while issue was closed.
Description was changed from ========== Make sure pages that are closing but not yet closed are still suspended. BUG=671102 ========== to ========== Make sure pages that are closing but not yet closed are still suspended. BUG=671102 Review-Url: https://codereview.chromium.org/2580703003 ==========
Message was sent while issue was closed.
Committed patchset #5 (id:80001)
Message was sent while issue was closed.
Description was changed from ========== Make sure pages that are closing but not yet closed are still suspended. BUG=671102 Review-Url: https://codereview.chromium.org/2580703003 ========== to ========== Make sure pages that are closing but not yet closed are still suspended. BUG=671102 Committed: https://crrev.com/0879cb1c4d5e7a53d060bfb7cf7cf9ea05aced72 Cr-Commit-Position: refs/heads/master@{#440376} ==========
Message was sent while issue was closed.
Patchset 5 (id:??) landed as https://crrev.com/0879cb1c4d5e7a53d060bfb7cf7cf9ea05aced72 Cr-Commit-Position: refs/heads/master@{#440376} |