|
|
Created:
4 years, 11 months ago by sof Modified:
4 years, 11 months ago Reviewers:
haraken CC:
chromium-reviews, eae+blinkwatch, blink-reviews-dom_chromium.org, dglazkov+blink, blink-reviews, rwlbuis Base URL:
https://chromium.googlesource.com/chromium/src.git@master Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionLet notifyScriptLoadError() handle already detached ScriptLoaders.
If a ScriptRunner has been disposed of already, allow ScriptLoaders
to notify of their failure without asserting.
R=haraken
BUG=570012
Committed: https://crrev.com/e7bf58190483dffac8e78506884170720165b198
Cr-Commit-Position: refs/heads/master@{#371772}
Patch Set 1 #
Total comments: 5
Patch Set 2 : add !ENABLE(OILPAN)s #Patch Set 3 : add explanatory comment #
Messages
Total messages: 16 (7 generated)
sigbjornf@opera.com changed reviewers: + haraken@chromium.org
please take a look. ps#1 verifies build sanity; will add suitable #if !ENABLE(OILPAN)s once done.
https://codereview.chromium.org/1644483002/diff/1/third_party/WebKit/Source/c... File third_party/WebKit/Source/core/dom/ScriptRunner.cpp (right): https://codereview.chromium.org/1644483002/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/dom/ScriptRunner.cpp:208: foundLoader = foundLoader || (scriptLoader->isDetached() && m_pendingAsyncScripts.isEmpty()); I understand the part of 'scriptLoader->isDetached()', but why do you need the part of '&& m_pendingAsyncScripts.isEmpty()'? https://codereview.chromium.org/1644483002/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/dom/ScriptRunner.cpp:209: RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(foundLoader); Nit: I'd write RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(foundLoader || ...) here.
https://codereview.chromium.org/1644483002/diff/1/third_party/WebKit/Source/c... File third_party/WebKit/Source/core/dom/ScriptRunner.cpp (right): https://codereview.chromium.org/1644483002/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/dom/ScriptRunner.cpp:208: foundLoader = foundLoader || (scriptLoader->isDetached() && m_pendingAsyncScripts.isEmpty()); On 2016/01/27 08:46:46, haraken wrote: > > I understand the part of 'scriptLoader->isDetached()', but why do you need the > part of '&& m_pendingAsyncScripts.isEmpty()'? It is an indication of the ScriptRunner being in a disposed state, without tracking that with a separate flag. i.e., I want to know the reason why the ScriptLoader is detached (by the dispose() having happened), otherwise I don't understand the reasons for how that can come to be. https://codereview.chromium.org/1644483002/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/dom/ScriptRunner.cpp:209: RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(foundLoader); On 2016/01/27 08:46:46, haraken wrote: > > Nit: I'd write RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(foundLoader || ...) > here. Sorry about the slight confusion - the previous line will be !ENABLE(OILPAN), see ps#2, which is why it looks a bit odd.
LGTM https://codereview.chromium.org/1644483002/diff/1/third_party/WebKit/Source/c... File third_party/WebKit/Source/core/dom/ScriptRunner.cpp (right): https://codereview.chromium.org/1644483002/diff/1/third_party/WebKit/Source/c... third_party/WebKit/Source/core/dom/ScriptRunner.cpp:208: foundLoader = foundLoader || (scriptLoader->isDetached() && m_pendingAsyncScripts.isEmpty()); On 2016/01/27 09:10:11, sof wrote: > On 2016/01/27 08:46:46, haraken wrote: > > > > I understand the part of 'scriptLoader->isDetached()', but why do you need the > > part of '&& m_pendingAsyncScripts.isEmpty()'? > > It is an indication of the ScriptRunner being in a disposed state, without > tracking that with a separate flag. i.e., I want to know the reason why the > ScriptLoader is detached (by the dispose() having happened), otherwise I don't > understand the reasons for how that can come to be. > Thanks, maybe worth adding a comment.
On 2016/01/27 09:13:07, haraken wrote: > LGTM > > https://codereview.chromium.org/1644483002/diff/1/third_party/WebKit/Source/c... > File third_party/WebKit/Source/core/dom/ScriptRunner.cpp (right): > > https://codereview.chromium.org/1644483002/diff/1/third_party/WebKit/Source/c... > third_party/WebKit/Source/core/dom/ScriptRunner.cpp:208: foundLoader = > foundLoader || (scriptLoader->isDetached() && m_pendingAsyncScripts.isEmpty()); > On 2016/01/27 09:10:11, sof wrote: > > On 2016/01/27 08:46:46, haraken wrote: > > > > > > I understand the part of 'scriptLoader->isDetached()', but why do you need > the > > > part of '&& m_pendingAsyncScripts.isEmpty()'? > > > > It is an indication of the ScriptRunner being in a disposed state, without > > tracking that with a separate flag. i.e., I want to know the reason why the > > ScriptLoader is detached (by the dispose() having happened), otherwise I don't > > understand the reasons for how that can come to be. > > > > Thanks, maybe worth adding a comment. Certainly, done. (While not a major problem here, that we now have no !ENABLE(OILPAN) trybot coverage makes for more difficult bug handling wrt earlier branches.)
Description was changed from ========== Let notifyScriptLoader() handle already detached ScriptLoaders. If a ScriptRunner has been disposed of already, allow ScriptLoaders to notify of their failure without asserting. R= BUG=570012 ========== to ========== Let notifyScriptLoader() handle already detached ScriptLoaders. If a ScriptRunner has been disposed of already, allow ScriptLoaders to notify of their failure without asserting. R=haraken BUG=570012 ==========
The CQ bit was checked by sigbjornf@opera.com
The patchset sent to the CQ was uploaded after l-g-t-m from haraken@chromium.org Link to the patchset: https://codereview.chromium.org/1644483002/#ps40001 (title: "add explanatory comment")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1644483002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1644483002/40001
Message was sent while issue was closed.
Description was changed from ========== Let notifyScriptLoader() handle already detached ScriptLoaders. If a ScriptRunner has been disposed of already, allow ScriptLoaders to notify of their failure without asserting. R=haraken BUG=570012 ========== to ========== Let notifyScriptLoader() handle already detached ScriptLoaders. If a ScriptRunner has been disposed of already, allow ScriptLoaders to notify of their failure without asserting. R=haraken BUG=570012 ==========
Message was sent while issue was closed.
Committed patchset #3 (id:40001)
Message was sent while issue was closed.
Description was changed from ========== Let notifyScriptLoader() handle already detached ScriptLoaders. If a ScriptRunner has been disposed of already, allow ScriptLoaders to notify of their failure without asserting. R=haraken BUG=570012 ========== to ========== Let notifyScriptLoader() handle already detached ScriptLoaders. If a ScriptRunner has been disposed of already, allow ScriptLoaders to notify of their failure without asserting. R=haraken BUG=570012 Committed: https://crrev.com/e7bf58190483dffac8e78506884170720165b198 Cr-Commit-Position: refs/heads/master@{#371772} ==========
Message was sent while issue was closed.
Patchset 3 (id:??) landed as https://crrev.com/e7bf58190483dffac8e78506884170720165b198 Cr-Commit-Position: refs/heads/master@{#371772}
Message was sent while issue was closed.
Description was changed from ========== Let notifyScriptLoader() handle already detached ScriptLoaders. If a ScriptRunner has been disposed of already, allow ScriptLoaders to notify of their failure without asserting. R=haraken BUG=570012 Committed: https://crrev.com/e7bf58190483dffac8e78506884170720165b198 Cr-Commit-Position: refs/heads/master@{#371772} ========== to ========== Let notifyScriptLoadError() handle already detached ScriptLoaders. If a ScriptRunner has been disposed of already, allow ScriptLoaders to notify of their failure without asserting. R=haraken BUG=570012 Committed: https://crrev.com/e7bf58190483dffac8e78506884170720165b198 Cr-Commit-Position: refs/heads/master@{#371772} ==========
Message was sent while issue was closed.
A revert of this CL (patchset #3 id:40001) has been created in https://codereview.chromium.org/1640263004/ by sigbjornf@opera.com. The reason for reverting is: The change here assumes PendingScripts are separately allocated objects, an M50 change. This makes for more difficult backporting. Unnecessarily so. Hence reverting and will reland a variation ( https://codereview.chromium.org/1642863002/ ) that works for older branches.. |