Ditch double-callback, just use mate directly
authorPaul Betts <paul@paulbetts.org>
Tue, 20 Oct 2015 20:27:34 +0000 (13:27 -0700)
committerPaul Betts <paul@paulbetts.org>
Tue, 20 Oct 2015 20:27:34 +0000 (13:27 -0700)
atom/browser/api/atom_api_app.cc
atom/browser/api/atom_api_app.h

index 072686d..24c8063 100644 (file)
@@ -269,23 +269,14 @@ v8::Local<v8::Value> App::DefaultSession(v8::Isolate* isolate) {
     return v8::Local<v8::Value>::New(isolate, default_session_);
 }
 
-bool App::OnProcessSingletonNotification(
-    const base::CommandLine& command_line,
-    const base::FilePath& current_directory) {
-  ProcessSingleton::NotificationCallback cb;
-  mate::Converter<ProcessSingleton::NotificationCallback>::FromV8(isolate(), single_instance_callback_, &cb);
-  
-  return cb.Run(command_line, current_directory);
-}
-
 bool App::MakeSingleInstance(v8::Local<v8::Function> callback) {
   single_instance_callback_ = callback;
 
-  auto browser = Browser::Get();
+  ProcessSingleton::NotificationCallback cb;
+  mate::Converter<ProcessSingleton::NotificationCallback>::FromV8(isolate(), single_instance_callback_, &cb);
 
-  auto no_refcount_this = base::Unretained(this);
-  browser->SetSingleInstanceCallback(
-    base::Bind(&App::OnProcessSingletonNotification, no_refcount_this));
+  auto browser = Browser::Get();
+  browser->SetSingleInstanceCallback(cb);
 
   switch(browser->GetSingleInstanceResult()) {
     case ProcessSingleton::NotifyResult::PROCESS_NONE:
@@ -295,7 +286,7 @@ bool App::MakeSingleInstance(v8::Local<v8::Function> callback) {
     case ProcessSingleton::NotifyResult::PROCESS_NOTIFIED:
       return true;
   }
-  
+
   return false;
 }
 
index 6654046..b828555 100644 (file)
@@ -21,7 +21,7 @@ class FilePath;
 namespace mate {
 class Arguments;
 }
-  
+
 namespace atom {
 
 namespace api {
@@ -71,11 +71,7 @@ class App : public mate::EventEmitter,
   void AllowNTLMCredentialsForAllDomains(bool should_allow);
 
   bool MakeSingleInstance(v8::Local<v8::Function> callback);
-
-  bool OnProcessSingletonNotification(
-    const base::CommandLine& command_line,
-    const base::FilePath& current_directory);
-
+  
   std::string GetLocale();
   v8::Local<v8::Value> DefaultSession(v8::Isolate* isolate);