Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4551)

Unified Diff: chrome/browser/service/service_process_control.cc

Issue 8403023: base::Bind: Finish conversion in ServiceProcessControl. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Save space. Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/service/service_process_control.cc
diff --git a/chrome/browser/service/service_process_control.cc b/chrome/browser/service/service_process_control.cc
index cde6166d4de7630fcbe66642bbf02c7eb266beaf..b3945dd5792986f800ecbf6a7d4ff1c8c08aede5 100644
--- a/chrome/browser/service/service_process_control.cc
+++ b/chrome/browser/service/service_process_control.cc
@@ -4,6 +4,8 @@
#include "chrome/browser/service/service_process_control.h"
+#include "base/bind.h"
+#include "base/bind_helpers.h"
#include "base/command_line.h"
#include "base/file_path.h"
#include "base/process_util.h"
@@ -144,8 +146,8 @@ void ServiceProcessControl::Launch(const base::Closure& success_task,
// And then start the process asynchronously.
launcher_ = new Launcher(this, cmd_line);
- launcher_->Run(
- NewRunnableMethod(this, &ServiceProcessControl::OnProcessLaunched));
+ launcher_->Run(base::Bind(&ServiceProcessControl::OnProcessLaunched,
+ base::Unretained(this)));
}
void ServiceProcessControl::Disconnect() {
@@ -260,29 +262,30 @@ ServiceProcessControl::Launcher::Launcher(ServiceProcessControl* process,
// Execute the command line to start the process asynchronously.
// After the command is executed, |task| is called with the process handle on
// the UI thread.
-void ServiceProcessControl::Launcher::Run(Task* task) {
+void ServiceProcessControl::Launcher::Run(const base::Closure& task) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- notify_task_.reset(task);
+ notify_task_ = task;
BrowserThread::PostTask(BrowserThread::PROCESS_LAUNCHER, FROM_HERE,
- NewRunnableMethod(this, &Launcher::DoRun));
+ base::Bind(&Launcher::DoRun, this));
}
ServiceProcessControl::Launcher::~Launcher() {}
void ServiceProcessControl::Launcher::Notify() {
- DCHECK(notify_task_.get());
- notify_task_->Run();
- notify_task_.reset();
+ DCHECK_EQ(false, notify_task_.is_null());
+ notify_task_.Run();
+ notify_task_.Reset();
}
#if !defined(OS_MACOSX)
void ServiceProcessControl::Launcher::DoDetectLaunched() {
- DCHECK(notify_task_.get());
+ DCHECK_EQ(false, notify_task_.is_null());
+
const uint32 kMaxLaunchDetectRetries = 10;
launched_ = CheckServiceProcessReady();
if (launched_ || (retry_count_ >= kMaxLaunchDetectRetries)) {
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(this, &Launcher::Notify));
+ BrowserThread::PostTask(
+ BrowserThread::UI, FROM_HERE, base::Bind(&Launcher::Notify, this));
return;
}
retry_count_++;
@@ -290,24 +293,24 @@ void ServiceProcessControl::Launcher::DoDetectLaunched() {
// If the service process is not launched yet then check again in 2 seconds.
const int kDetectLaunchRetry = 2000;
MessageLoop::current()->PostDelayedTask(
- FROM_HERE,
- NewRunnableMethod(this, &Launcher::DoDetectLaunched),
+ FROM_HERE, base::Bind(&Launcher::DoDetectLaunched, this),
kDetectLaunchRetry);
}
void ServiceProcessControl::Launcher::DoRun() {
- DCHECK(notify_task_.get());
+ DCHECK_EQ(false, notify_task_.is_null());
+
base::LaunchOptions options;
#if defined(OS_WIN)
options.start_hidden = true;
#endif
if (base::LaunchProcess(*cmd_line_, options, NULL)) {
- BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
- NewRunnableMethod(this,
- &Launcher::DoDetectLaunched));
+ BrowserThread::PostTask(
+ BrowserThread::IO, FROM_HERE,
+ base::Bind(&Launcher::DoDetectLaunched, this));
} else {
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- NewRunnableMethod(this, &Launcher::Notify));
+ BrowserThread::PostTask(
+ BrowserThread::UI, FROM_HERE, base::Bind(&Launcher::Notify, this));
}
}
#endif // !OS_MACOSX
« no previous file with comments | « chrome/browser/service/service_process_control.h ('k') | chrome/browser/service/service_process_control_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698