fix: prevent menu gc during popup (#20745)

This commit is contained in:
Shelley Vohr 2019-10-28 11:26:48 -07:00 committed by John Kleinschmidt
parent d0cdd12521
commit fb8b1fd1c9
3 changed files with 7 additions and 0 deletions

View file

@ -12,6 +12,7 @@
#include "gin/arguments.h"
#include "shell/browser/api/atom_api_top_level_window.h"
#include "shell/browser/ui/atom_menu_model.h"
#include "shell/common/api/locker.h"
#include "shell/common/gin_helper/trackable_object.h"
namespace electron {

View file

@ -56,6 +56,9 @@ void MenuMac::PopupOnUI(const base::WeakPtr<NativeWindow>& native_window,
int y,
int positioning_item,
base::Closure callback) {
mate::Locker locker(isolate());
v8::HandleScope handle_scope(isolate());
if (!native_window)
return;
NSWindow* nswindow = native_window->GetNativeWindow().GetNativeNSWindow();

View file

@ -25,6 +25,9 @@ void MenuViews::PopupAt(TopLevelWindow* window,
int y,
int positioning_item,
const base::Closure& callback) {
mate::Locker locker(isolate());
v8::HandleScope handle_scope(isolate());
auto* native_window = static_cast<NativeWindowViews*>(window->window());
if (!native_window)
return;