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

Side by Side Diff: chrome/browser/service_process/service_process_control.cc

Issue 1551503002: Convert Pass()→std::move() in //chrome (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/service_process/service_process_control.h" 5 #include "chrome/browser/service_process/service_process_control.h"
6 6
7 #include <utility>
8
7 #include "base/bind.h" 9 #include "base/bind.h"
8 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
9 #include "base/command_line.h" 11 #include "base/command_line.h"
10 #include "base/files/file_path.h" 12 #include "base/files/file_path.h"
11 #include "base/location.h" 13 #include "base/location.h"
12 #include "base/metrics/histogram_base.h" 14 #include "base/metrics/histogram_base.h"
13 #include "base/metrics/histogram_delta_serialization.h" 15 #include "base/metrics/histogram_delta_serialization.h"
14 #include "base/process/kill.h" 16 #include "base/process/kill.h"
15 #include "base/process/launch.h" 17 #include "base/process/launch.h"
16 #include "base/single_thread_task_runner.h" 18 #include "base/single_thread_task_runner.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 // TODO(hclam): Handle error connecting to channel. 52 // TODO(hclam): Handle error connecting to channel.
51 const IPC::ChannelHandle channel_id = GetServiceProcessChannel(); 53 const IPC::ChannelHandle channel_id = GetServiceProcessChannel();
52 SetChannel(IPC::ChannelProxy::Create( 54 SetChannel(IPC::ChannelProxy::Create(
53 channel_id, 55 channel_id,
54 IPC::Channel::MODE_NAMED_CLIENT, 56 IPC::Channel::MODE_NAMED_CLIENT,
55 this, 57 this,
56 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO).get())); 58 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO).get()));
57 } 59 }
58 60
59 void ServiceProcessControl::SetChannel(scoped_ptr<IPC::ChannelProxy> channel) { 61 void ServiceProcessControl::SetChannel(scoped_ptr<IPC::ChannelProxy> channel) {
60 channel_ = channel.Pass(); 62 channel_ = std::move(channel);
61 } 63 }
62 64
63 void ServiceProcessControl::RunConnectDoneTasks() { 65 void ServiceProcessControl::RunConnectDoneTasks() {
64 // The tasks executed here may add more tasks to the vector. So copy 66 // The tasks executed here may add more tasks to the vector. So copy
65 // them to the stack before executing them. This way recursion is 67 // them to the stack before executing them. This way recursion is
66 // avoided. 68 // avoided.
67 TaskList tasks; 69 TaskList tasks;
68 70
69 if (IsConnected()) { 71 if (IsConnected()) {
70 tasks.swap(connect_success_tasks_); 72 tasks.swap(connect_success_tasks_);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 if (CheckServiceProcessReady()) { 113 if (CheckServiceProcessReady()) {
112 ConnectInternal(); 114 ConnectInternal();
113 return; 115 return;
114 } 116 }
115 117
116 UMA_HISTOGRAM_ENUMERATION("CloudPrint.ServiceEvents", SERVICE_EVENT_LAUNCH, 118 UMA_HISTOGRAM_ENUMERATION("CloudPrint.ServiceEvents", SERVICE_EVENT_LAUNCH,
117 SERVICE_EVENT_MAX); 119 SERVICE_EVENT_MAX);
118 120
119 scoped_ptr<base::CommandLine> cmd_line(CreateServiceProcessCommandLine()); 121 scoped_ptr<base::CommandLine> cmd_line(CreateServiceProcessCommandLine());
120 // And then start the process asynchronously. 122 // And then start the process asynchronously.
121 launcher_ = new Launcher(cmd_line.Pass()); 123 launcher_ = new Launcher(std::move(cmd_line));
122 launcher_->Run(base::Bind(&ServiceProcessControl::OnProcessLaunched, 124 launcher_->Run(base::Bind(&ServiceProcessControl::OnProcessLaunched,
123 base::Unretained(this))); 125 base::Unretained(this)));
124 } 126 }
125 127
126 void ServiceProcessControl::Disconnect() { 128 void ServiceProcessControl::Disconnect() {
127 DCHECK_CURRENTLY_ON(BrowserThread::UI); 129 DCHECK_CURRENTLY_ON(BrowserThread::UI);
128 channel_.reset(); 130 channel_.reset();
129 } 131 }
130 132
131 void ServiceProcessControl::OnProcessLaunched() { 133 void ServiceProcessControl::OnProcessLaunched() {
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 return ret; 318 return ret;
317 } 319 }
318 320
319 // static 321 // static
320 ServiceProcessControl* ServiceProcessControl::GetInstance() { 322 ServiceProcessControl* ServiceProcessControl::GetInstance() {
321 return base::Singleton<ServiceProcessControl>::get(); 323 return base::Singleton<ServiceProcessControl>::get();
322 } 324 }
323 325
324 ServiceProcessControl::Launcher::Launcher( 326 ServiceProcessControl::Launcher::Launcher(
325 scoped_ptr<base::CommandLine> cmd_line) 327 scoped_ptr<base::CommandLine> cmd_line)
326 : cmd_line_(cmd_line.Pass()), 328 : cmd_line_(std::move(cmd_line)), launched_(false), retry_count_(0) {}
327 launched_(false),
328 retry_count_(0) {
329 }
330 329
331 // Execute the command line to start the process asynchronously. 330 // Execute the command line to start the process asynchronously.
332 // After the command is executed, |task| is called with the process handle on 331 // After the command is executed, |task| is called with the process handle on
333 // the UI thread. 332 // the UI thread.
334 void ServiceProcessControl::Launcher::Run(const base::Closure& task) { 333 void ServiceProcessControl::Launcher::Run(const base::Closure& task) {
335 DCHECK_CURRENTLY_ON(BrowserThread::UI); 334 DCHECK_CURRENTLY_ON(BrowserThread::UI);
336 notify_task_ = task; 335 notify_task_ = task;
337 BrowserThread::PostTask(BrowserThread::PROCESS_LAUNCHER, FROM_HERE, 336 BrowserThread::PostTask(BrowserThread::PROCESS_LAUNCHER, FROM_HERE,
338 base::Bind(&Launcher::DoRun, this)); 337 base::Bind(&Launcher::DoRun, this));
339 } 338 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 if (process_.IsValid()) { 382 if (process_.IsValid()) {
384 BrowserThread::PostTask( 383 BrowserThread::PostTask(
385 BrowserThread::IO, FROM_HERE, 384 BrowserThread::IO, FROM_HERE,
386 base::Bind(&Launcher::DoDetectLaunched, this)); 385 base::Bind(&Launcher::DoDetectLaunched, this));
387 } else { 386 } else {
388 BrowserThread::PostTask( 387 BrowserThread::PostTask(
389 BrowserThread::UI, FROM_HERE, base::Bind(&Launcher::Notify, this)); 388 BrowserThread::UI, FROM_HERE, base::Bind(&Launcher::Notify, this));
390 } 389 }
391 } 390 }
392 #endif // !OS_MACOSX 391 #endif // !OS_MACOSX
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698