diff --git a/atom/browser/browser_mac.mm b/atom/browser/browser_mac.mm index 767ddee590ec..3cabd98b692c 100644 --- a/atom/browser/browser_mac.mm +++ b/atom/browser/browser_mac.mm @@ -47,6 +47,9 @@ bool Browser::RemoveAsDefaultProtocolClient(const std::string& protocol) { if (!identifier) return false; + if (!Browser::IsDefaultProtocolClient(protocol)) + return false; + NSString* protocol_ns = [NSString stringWithUTF8String:protocol.c_str()]; CFStringRef protocol_cf = base::mac::NSToCFCast(protocol_ns); CFArrayRef bundleList = LSCopyAllHandlersForURLScheme(protocol_cf); diff --git a/docs/api/app.md b/docs/api/app.md index c6c5887ef623..cb19b49b7c18 100644 --- a/docs/api/app.md +++ b/docs/api/app.md @@ -393,16 +393,13 @@ Please refer to [Apple's documentation][CFBundleURLTypes] for details. The API uses the Windows Registry and LSSetDefaultHandlerForURLScheme internally. -### `app.removeAsDefaultProtocolClient(protocol)` _Windows_ +### `app.removeAsDefaultProtocolClient(protocol)` _OS X_ _Windows_ * `protocol` String - The name of your protocol, without `://`. This method checks if the current executable as the default handler for a protocol (aka URI scheme). If so, it will remove the app as the default handler. -**Note:** On OS X, removing the app will automatically remove the app as the -default protocol handler. - ### `app.isDefaultProtocolClient(protocol)` _OS X_ _Windows_ * `protocol` String - The name of your protocol, without `://`.