Ditch double-callback, just use mate directly

This commit is contained in:
Paul Betts 2015-10-20 13:27:34 -07:00
parent a2eedcc027
commit 5d4c29a1e3
2 changed files with 7 additions and 20 deletions

View 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;
}

View 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);