fix: properly register custom url evt handling (#20518)

This commit is contained in:
Shelley Vohr 2019-10-10 17:54:03 +02:00 committed by Samuel Attard
parent ec2c1db0e4
commit 812de5d3bf
5 changed files with 9 additions and 1 deletions

View file

@ -537,6 +537,7 @@ void AtomBrowserMainParts::PreMainMessageLoopStart() {
void AtomBrowserMainParts::PreMainMessageLoopStartCommon() {
#if defined(OS_MACOSX)
InitializeEmptyApplicationMenu();
RegisterURLHandler();
#endif
media::SetLocalizedStringProvider(MediaStringProvider);
}

View file

@ -105,6 +105,7 @@ class AtomBrowserMainParts : public content::BrowserMainParts {
#if defined(OS_MACOSX)
void FreeAppDelegate();
void RegisterURLHandler();
void InitializeEmptyApplicationMenu();
#endif

View file

@ -5,6 +5,7 @@
#include "shell/browser/atom_browser_main_parts.h"
#include "shell/browser/atom_paths.h"
#import "shell/browser/mac/atom_application.h"
#include "shell/browser/mac/atom_application_delegate.h"
namespace electron {
@ -72,6 +73,10 @@ void AtomBrowserMainParts::FreeAppDelegate() {
[NSApp setDelegate:nil];
}
void AtomBrowserMainParts::RegisterURLHandler() {
[[AtomApplication sharedApplication] registerURLHandler];
}
void AtomBrowserMainParts::InitializeEmptyApplicationMenu() {
base::scoped_nsobject<NSMenu> main_menu = BuildEmptyMainMenu();
[[NSApplication sharedApplication] setMainMenu:main_menu];

View file

@ -97,6 +97,7 @@ typedef NS_ENUM(NSInteger, AVAuthorizationStatusMac) {
+ (AtomApplication*)sharedApplication;
- (void)setShutdownHandler:(base::Callback<bool()>)handler;
- (void)registerURLHandler;
// CrAppProtocol:
- (BOOL)isHandlingSendEvent;

View file

@ -153,7 +153,7 @@ inline void dispatch_sync_main(dispatch_block_t block) {
[userActivity setNeedsSave:YES];
}
- (void)awakeFromNib {
- (void)registerURLHandler {
[[NSAppleEventManager sharedAppleEventManager]
setEventHandler:self
andSelector:@selector(handleURLEvent:withReplyEvent:)