Chromium Code Reviews
[email protected] (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Issue 513433002: Make DoDeferredClose a non-nestable task (Closed)

Created:
6 years, 3 months ago by enne (OOO)
Modified:
6 years, 3 months ago
CC:
chromium-reviews, darin-cc_chromium.org, jam
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

Make DoDeferredClose a non-nestable task This makes it behave the same as the Close function. Destroying RenderWidgetCompositor during RenderWidget::DoDeferredClose can cause problems for nested message loops. The bug is that InputHandlerProxy creates a SwapPromiseMonitor which adds itself to the LayerTreeHost. In that stack, a nested message loop is run which runs the RenderWidget::DoDeferredClose function which previously destroyed the LayerTreeHost. This explodes, because LayerTreeHost expects all SwapPromiseMonitors to be removed before it is destroyed. Making DoDeferredClose non-nestable avoids this problem, as the nested message loop can't run the task, the SwapPromiseMonitor safely gets removed, and then the LayerTreeHost can be cleanly deleted. This patch depends on https://codereview.chromium.org/512533002 [email protected],[email protected] BUG=403500 Committed: https://crrev.com/7c132d2e67ce5ebc5d32df5994028f4a419217db Cr-Commit-Position: refs/heads/master@{#292668}

Patch Set 1 #

Patch Set 2 : DCHECK #

Patch Set 3 : Rebase #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+2 lines, -2 lines) Patch
M cc/trees/layer_tree_host.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M content/renderer/render_widget.cc View 1 chunk +1 line, -1 line 1 comment Download

Messages

Total messages: 13 (1 generated)
enne (OOO)
An alternative to https://codereview.chromium.org/504373002/
6 years, 3 months ago (2014-08-26 21:41:08 UTC) #1
jamesr
[email protected] changed reviewers: + [email protected]
6 years, 3 months ago (2014-08-26 21:42:01 UTC) #2
jamesr
I think this makes sense. +darin to double check
6 years, 3 months ago (2014-08-26 21:42:01 UTC) #3
danakj
Can you still make the CHECK into a DCHECK in ~cc::LTH?
6 years, 3 months ago (2014-08-26 21:44:08 UTC) #4
enne (OOO)
On 2014/08/26 at 21:44:08, danakj wrote: > Can you still make the CHECK into a ...
6 years, 3 months ago (2014-08-26 21:44:42 UTC) #5
danakj
On 2014/08/26 21:44:42, enne wrote: > On 2014/08/26 at 21:44:08, danakj wrote: > > Can ...
6 years, 3 months ago (2014-08-26 21:46:08 UTC) #6
enne (OOO)
On 2014/08/26 at 21:46:08, danakj wrote: > On 2014/08/26 21:44:42, enne wrote: > > On ...
6 years, 3 months ago (2014-08-26 21:53:52 UTC) #7
enne (OOO)
darin: ping
6 years, 3 months ago (2014-08-28 18:21:33 UTC) #8
darin (slow to review)
https://codereview.chromium.org/513433002/diff/40001/content/renderer/render_widget.cc File content/renderer/render_widget.cc (right): https://codereview.chromium.org/513433002/diff/40001/content/renderer/render_widget.cc#newcode1419 content/renderer/render_widget.cc:1419: base::MessageLoop::current()->PostNonNestableTask( I suppose it is possible that this may ...
6 years, 3 months ago (2014-08-29 17:17:08 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/[email protected]/513433002/40001
6 years, 3 months ago (2014-08-29 17:25:36 UTC) #11
commit-bot: I haz the power
Committed patchset #3 (id:40001) as bf1ed5c509a49e42c33fdc4c92f55812d1e732b3
6 years, 3 months ago (2014-08-29 18:22:20 UTC) #12
commit-bot: I haz the power
6 years, 3 months ago (2014-09-10 03:10:00 UTC) #13
Message was sent while issue was closed.
Patchset 3 (id:??) landed as
https://crrev.com/7c132d2e67ce5ebc5d32df5994028f4a419217db
Cr-Commit-Position: refs/heads/master@{#292668}

Powered by Google App Engine
This is Rietveld 408576698