diff options
author | rsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-10 05:21:24 +0000 |
---|---|---|
committer | rsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-10 05:21:24 +0000 |
commit | 9079a16bdb5d4960ceb64a525f9dc0193b667026 (patch) | |
tree | 03add13c3eb9ef919eed29d5565d294a9a13a7e0 /ui | |
parent | 5dfa47c9d9d5a2350b9ea8f362c4987ceed7bdda (diff) | |
download | chromium_src-9079a16bdb5d4960ceb64a525f9dc0193b667026.zip chromium_src-9079a16bdb5d4960ceb64a525f9dc0193b667026.tar.gz chromium_src-9079a16bdb5d4960ceb64a525f9dc0193b667026.tar.bz2 |
[Mac][MC] Release the MCPopupController on the outermost run loop.
The controller is being released while it is still on screen, and so it can
be messaged after it is gone. Releasing on the outermost loop ensures that if
the user presses a button, the -release message isn't pumped from a
-mouseDown: nested loop.
BUG=247799
TEST=Fewer crashes on the crash server.
Review URL: https://chromiumcodereview.appspot.com/16637005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205147 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r-- | ui/message_center/cocoa/popup_controller.mm | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ui/message_center/cocoa/popup_controller.mm b/ui/message_center/cocoa/popup_controller.mm index d57457e..2e65cc8 100644 --- a/ui/message_center/cocoa/popup_controller.mm +++ b/ui/message_center/cocoa/popup_controller.mm @@ -132,7 +132,10 @@ enum { boundsAnimation_.reset(); } [super close]; - [self release]; + [self performSelectorOnMainThread:@selector(release) + withObject:nil + waitUntilDone:NO + modes:@[ NSDefaultRunLoopMode ]]; } - (MCNotificationController*)notificationController { |