Invoke close callback after itemSelected runs

This commit is contained in:
Kevin Sawicki 2017-02-22 11:47:58 -08:00
parent d0b07d5c36
commit 211bedf910

View file

@ -12,9 +12,12 @@
#include "ui/base/accelerators/accelerator.h"
#include "ui/base/accelerators/platform_accelerator_cocoa.h"
#include "ui/base/l10n/l10n_util_mac.h"
#include "content/public/browser/browser_thread.h"
#include "ui/events/cocoa/cocoa_event_utils.h"
#include "ui/gfx/image/image.h"
using content::BrowserThread;
namespace {
struct Role {
@ -271,8 +274,11 @@ Role kRolesMap[] = {
if (isMenuOpen_) {
isMenuOpen_ = NO;
model_->MenuWillClose();
// Post async task so that itemSelected runs before the close callback
// deletes the controller from the map which deallocates it
if (!closeCallback.is_null())
closeCallback.Run();
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, closeCallback);
}
}