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

Side by Side Diff: chrome/chrome_watcher/chrome_watcher_main.cc

Issue 1752233002: Convert Pass()→std::move() on Windows (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 9 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) 2014 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2014 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 <windows.h> 5 #include <windows.h>
6 #include <sddl.h> 6 #include <sddl.h>
7 7
8 #include <utility>
9
8 #include "base/at_exit.h" 10 #include "base/at_exit.h"
9 #include "base/bind.h" 11 #include "base/bind.h"
10 #include "base/bind_helpers.h" 12 #include "base/bind_helpers.h"
11 #include "base/callback_helpers.h" 13 #include "base/callback_helpers.h"
12 #include "base/command_line.h" 14 #include "base/command_line.h"
13 #include "base/environment.h" 15 #include "base/environment.h"
14 #include "base/file_version_info.h" 16 #include "base/file_version_info.h"
15 #include "base/files/file_path.h" 17 #include "base/files/file_path.h"
16 #include "base/logging_win.h" 18 #include "base/logging_win.h"
17 #include "base/macros.h" 19 #include "base/macros.h"
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 main_thread_(base::ThreadTaskRunnerHandle::Get()) { 112 main_thread_(base::ThreadTaskRunnerHandle::Get()) {
111 } 113 }
112 114
113 BrowserMonitor::~BrowserMonitor() { 115 BrowserMonitor::~BrowserMonitor() {
114 } 116 }
115 117
116 bool BrowserMonitor::StartWatching( 118 bool BrowserMonitor::StartWatching(
117 const base::char16* registry_path, 119 const base::char16* registry_path,
118 base::Process process, 120 base::Process process,
119 base::win::ScopedHandle on_initialized_event) { 121 base::win::ScopedHandle on_initialized_event) {
120 if (!exit_code_watcher_.Initialize(process.Pass())) 122 if (!exit_code_watcher_.Initialize(std::move(process)))
121 return false; 123 return false;
122 124
123 if (!background_thread_.StartWithOptions( 125 if (!background_thread_.StartWithOptions(
124 base::Thread::Options(base::MessageLoop::TYPE_IO, 0))) { 126 base::Thread::Options(base::MessageLoop::TYPE_IO, 0))) {
125 return false; 127 return false;
126 } 128 }
127 129
128 if (!background_thread_.task_runner()->PostTask( 130 if (!background_thread_.task_runner()->PostTask(
129 FROM_HERE, base::Bind(&BrowserMonitor::Watch, base::Unretained(this), 131 FROM_HERE, base::Bind(&BrowserMonitor::Watch, base::Unretained(this),
130 base::Passed(on_initialized_event.Pass())))) { 132 base::Passed(&on_initialized_event)))) {
131 background_thread_.Stop(); 133 background_thread_.Stop();
132 return false; 134 return false;
133 } 135 }
134 136
135 return true; 137 return true;
136 } 138 }
137 139
138 void BrowserMonitor::OnEndSessionMessage(UINT message, LPARAM lparam) { 140 void BrowserMonitor::OnEndSessionMessage(UINT message, LPARAM lparam) {
139 DCHECK_EQ(main_thread_, base::ThreadTaskRunnerHandle::Get()); 141 DCHECK_EQ(main_thread_, base::ThreadTaskRunnerHandle::Get());
140 142
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 #endif // BUILDFLAG(ENABLE_KASKO_HANG_REPORTS) 409 #endif // BUILDFLAG(ENABLE_KASKO_HANG_REPORTS)
408 #endif // BUILDFLAG(ENABLE_KASKO) 410 #endif // BUILDFLAG(ENABLE_KASKO)
409 411
410 // Run a UI message loop on the main thread. 412 // Run a UI message loop on the main thread.
411 base::MessageLoop msg_loop(base::MessageLoop::TYPE_UI); 413 base::MessageLoop msg_loop(base::MessageLoop::TYPE_UI);
412 msg_loop.set_thread_name("WatcherMainThread"); 414 msg_loop.set_thread_name("WatcherMainThread");
413 415
414 base::RunLoop run_loop; 416 base::RunLoop run_loop;
415 BrowserMonitor monitor(&run_loop, registry_path); 417 BrowserMonitor monitor(&run_loop, registry_path);
416 if (!monitor.StartWatching(registry_path, process.Duplicate(), 418 if (!monitor.StartWatching(registry_path, process.Duplicate(),
417 on_initialized_event.Pass())) { 419 std::move(on_initialized_event))) {
418 return 1; 420 return 1;
419 } 421 }
420 422
421 { 423 {
422 // Scoped to force |hang_monitor| destruction before Kasko is shut down. 424 // Scoped to force |hang_monitor| destruction before Kasko is shut down.
423 browser_watcher::WindowHangMonitor hang_monitor( 425 browser_watcher::WindowHangMonitor hang_monitor(
424 base::TimeDelta::FromSeconds(60), base::TimeDelta::FromSeconds(20), 426 base::TimeDelta::FromSeconds(60), base::TimeDelta::FromSeconds(20),
425 base::Bind(&OnWindowEvent, registry_path, 427 base::Bind(&OnWindowEvent, registry_path,
426 base::Passed(process.Duplicate()), on_hung_callback)); 428 base::Passed(process.Duplicate()), on_hung_callback));
427 hang_monitor.Initialize(process.Duplicate()); 429 hang_monitor.Initialize(process.Duplicate());
428 430
429 run_loop.Run(); 431 run_loop.Run();
430 } 432 }
431 433
432 #if BUILDFLAG(ENABLE_KASKO) 434 #if BUILDFLAG(ENABLE_KASKO)
433 if (launched_kasko) 435 if (launched_kasko)
434 kasko::api::ShutdownReporter(); 436 kasko::api::ShutdownReporter();
435 #endif // BUILDFLAG(ENABLE_KASKO) 437 #endif // BUILDFLAG(ENABLE_KASKO)
436 438
437 // Wind logging down. 439 // Wind logging down.
438 logging::LogEventProvider::Uninitialize(); 440 logging::LogEventProvider::Uninitialize();
439 441
440 return 0; 442 return 0;
441 } 443 }
442 444
443 static_assert( 445 static_assert(
444 base::is_same<decltype(&WatcherMain), ChromeWatcherMainFunction>::value, 446 base::is_same<decltype(&WatcherMain), ChromeWatcherMainFunction>::value,
445 "WatcherMain() has wrong type"); 447 "WatcherMain() has wrong type");
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/status_icons/status_tray_win_unittest.cc ('k') | chrome/installer/test/alternate_version_generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698