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

Side by Side Diff: remoting/host/win/unprivileged_process_delegate.cc

Issue 1549493004: Use std::move() instead of .Pass() in remoting/host (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@move_not_pass
Patch Set: Created 5 years 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 1
2 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be 3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file. 4 // found in the LICENSE file.
5 // 5 //
6 // This file implements the Windows service controlling Me2Me host processes 6 // This file implements the Windows service controlling Me2Me host processes
7 // running within user sessions. 7 // running within user sessions.
8 8
9 #include "remoting/host/win/unprivileged_process_delegate.h" 9 #include "remoting/host/win/unprivileged_process_delegate.h"
10 10
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 handles.Swap(*handles_out); 230 handles.Swap(*handles_out);
231 return true; 231 return true;
232 } 232 }
233 233
234 } // namespace 234 } // namespace
235 235
236 UnprivilegedProcessDelegate::UnprivilegedProcessDelegate( 236 UnprivilegedProcessDelegate::UnprivilegedProcessDelegate(
237 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, 237 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner,
238 scoped_ptr<base::CommandLine> target_command) 238 scoped_ptr<base::CommandLine> target_command)
239 : io_task_runner_(io_task_runner), 239 : io_task_runner_(io_task_runner),
240 target_command_(target_command.Pass()), 240 target_command_(std::move(target_command)),
241 event_handler_(nullptr) { 241 event_handler_(nullptr) {}
242 }
243 242
244 UnprivilegedProcessDelegate::~UnprivilegedProcessDelegate() { 243 UnprivilegedProcessDelegate::~UnprivilegedProcessDelegate() {
245 DCHECK(CalledOnValidThread()); 244 DCHECK(CalledOnValidThread());
246 DCHECK(!channel_); 245 DCHECK(!channel_);
247 DCHECK(!worker_process_.IsValid()); 246 DCHECK(!worker_process_.IsValid());
248 } 247 }
249 248
250 void UnprivilegedProcessDelegate::LaunchProcess( 249 void UnprivilegedProcessDelegate::LaunchProcess(
251 WorkerProcessLauncher* event_handler) { 250 WorkerProcessLauncher* event_handler) {
252 DCHECK(CalledOnValidThread()); 251 DCHECK(CalledOnValidThread());
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 // even on 64bit platforms. 308 // even on 64bit platforms.
310 std::string pipe_handle = base::StringPrintf( 309 std::string pipe_handle = base::StringPrintf(
311 "%d", reinterpret_cast<ULONG_PTR>(client.GetPlatformFile())); 310 "%d", reinterpret_cast<ULONG_PTR>(client.GetPlatformFile()));
312 311
313 // Pass the IPC channel via the command line. 312 // Pass the IPC channel via the command line.
314 base::CommandLine command_line(target_command_->argv()); 313 base::CommandLine command_line(target_command_->argv());
315 command_line.AppendSwitchASCII(kDaemonPipeSwitchName, pipe_handle); 314 command_line.AppendSwitchASCII(kDaemonPipeSwitchName, pipe_handle);
316 315
317 // Create our own window station and desktop accessible by |logon_sid|. 316 // Create our own window station and desktop accessible by |logon_sid|.
318 WindowStationAndDesktop handles; 317 WindowStationAndDesktop handles;
319 if (!CreateWindowStationAndDesktop(logon_sid.Pass(), &handles)) { 318 if (!CreateWindowStationAndDesktop(std::move(logon_sid), &handles)) {
320 PLOG(ERROR) << "Failed to create a window station and desktop"; 319 PLOG(ERROR) << "Failed to create a window station and desktop";
321 ReportFatalError(); 320 ReportFatalError();
322 return; 321 return;
323 } 322 }
324 323
325 // Try to launch the worker process. The launched process inherits 324 // Try to launch the worker process. The launched process inherits
326 // the window station, desktop and pipe handles, created above. 325 // the window station, desktop and pipe handles, created above.
327 ScopedHandle worker_thread; 326 ScopedHandle worker_thread;
328 if (!LaunchProcessWithToken(command_line.GetProgram(), 327 if (!LaunchProcessWithToken(
329 command_line.GetCommandLineString(), 328 command_line.GetProgram(), command_line.GetCommandLineString(),
330 token.Get(), 329 token.Get(), &process_attributes, &thread_attributes, true, 0,
331 &process_attributes, 330 nullptr, &worker_process, &worker_thread)) {
332 &thread_attributes,
333 true,
334 0,
335 nullptr,
336 &worker_process,
337 &worker_thread)) {
338 ReportFatalError(); 331 ReportFatalError();
339 return; 332 return;
340 } 333 }
341 } 334 }
342 335
343 channel_ = server.Pass(); 336 channel_ = std::move(server);
344 ReportProcessLaunched(worker_process.Pass()); 337 ReportProcessLaunched(std::move(worker_process));
345 } 338 }
346 339
347 void UnprivilegedProcessDelegate::Send(IPC::Message* message) { 340 void UnprivilegedProcessDelegate::Send(IPC::Message* message) {
348 DCHECK(CalledOnValidThread()); 341 DCHECK(CalledOnValidThread());
349 342
350 if (channel_) { 343 if (channel_) {
351 channel_->Send(message); 344 channel_->Send(message);
352 } else { 345 } else {
353 delete message; 346 delete message;
354 } 347 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 WorkerProcessLauncher* event_handler = event_handler_; 401 WorkerProcessLauncher* event_handler = event_handler_;
409 event_handler_ = nullptr; 402 event_handler_ = nullptr;
410 event_handler->OnFatalError(); 403 event_handler->OnFatalError();
411 } 404 }
412 405
413 void UnprivilegedProcessDelegate::ReportProcessLaunched( 406 void UnprivilegedProcessDelegate::ReportProcessLaunched(
414 base::win::ScopedHandle worker_process) { 407 base::win::ScopedHandle worker_process) {
415 DCHECK(CalledOnValidThread()); 408 DCHECK(CalledOnValidThread());
416 DCHECK(!worker_process_.IsValid()); 409 DCHECK(!worker_process_.IsValid());
417 410
418 worker_process_ = worker_process.Pass(); 411 worker_process_ = std::move(worker_process);
419 412
420 // Report a handle that can be used to wait for the worker process completion, 413 // Report a handle that can be used to wait for the worker process completion,
421 // query information about the process and duplicate handles. 414 // query information about the process and duplicate handles.
422 DWORD desired_access = 415 DWORD desired_access =
423 SYNCHRONIZE | PROCESS_DUP_HANDLE | PROCESS_QUERY_INFORMATION; 416 SYNCHRONIZE | PROCESS_DUP_HANDLE | PROCESS_QUERY_INFORMATION;
424 HANDLE temp_handle; 417 HANDLE temp_handle;
425 if (!DuplicateHandle(GetCurrentProcess(), 418 if (!DuplicateHandle(GetCurrentProcess(), worker_process_.Get(),
426 worker_process_.Get(), 419 GetCurrentProcess(), &temp_handle, desired_access, FALSE,
427 GetCurrentProcess(),
428 &temp_handle,
429 desired_access,
430 FALSE,
431 0)) { 420 0)) {
432 PLOG(ERROR) << "Failed to duplicate a handle"; 421 PLOG(ERROR) << "Failed to duplicate a handle";
433 ReportFatalError(); 422 ReportFatalError();
434 return; 423 return;
435 } 424 }
436 ScopedHandle limited_handle(temp_handle); 425 ScopedHandle limited_handle(temp_handle);
437 426
438 event_handler_->OnProcessLaunched(limited_handle.Pass()); 427 event_handler_->OnProcessLaunched(std::move(limited_handle));
439 } 428 }
440 429
441 } // namespace remoting 430 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698