From da9f12d1e2fe854781ef58e7a4a6757365de5e00 Mon Sep 17 00:00:00 2001 From: kaylie Date: Sun, 25 Feb 2018 14:19:40 -0800 Subject: [PATCH] restore old cb --- atom/browser/ui/cocoa/atom_menu_controller.mm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/atom/browser/ui/cocoa/atom_menu_controller.mm b/atom/browser/ui/cocoa/atom_menu_controller.mm index 8bdf4e0c2b..a117a1f4fa 100644 --- a/atom/browser/ui/cocoa/atom_menu_controller.mm +++ b/atom/browser/ui/cocoa/atom_menu_controller.mm @@ -9,12 +9,15 @@ #include "base/logging.h" #include "base/strings/sys_string_conversions.h" #include "base/strings/utf_string_conversions.h" +#include "content/public/browser/browser_thread.h" #include "ui/base/accelerators/accelerator.h" #include "ui/base/accelerators/platform_accelerator_cocoa.h" #include "ui/base/l10n/l10n_util_mac.h" #include "ui/events/cocoa/cocoa_event_utils.h" #include "ui/gfx/image/image.h" +using content::BrowserThread; + namespace { struct Role { @@ -335,7 +338,11 @@ static base::scoped_nsobject recentDocumentsMenuSwap_; if (isMenuOpen_) { isMenuOpen_ = NO; model_->MenuWillClose(); - closeCallback.Run(); + // Post async task so that itemSelected runs before the close callback + // deletes the controller from the map which deallocates it + if (!closeCallback.is_null()) { + BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, closeCallback); + } } }