| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/app/mash/mash_runner.h" | 5 #include "chrome/app/mash/mash_runner.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/at_exit.h" | 9 #include "base/at_exit.h" |
| 10 #include "base/base_paths.h" | 10 #include "base/base_paths.h" |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 | 124 |
| 125 // Quits |run_loop| if the |identity| of the quitting service is critical to the | 125 // Quits |run_loop| if the |identity| of the quitting service is critical to the |
| 126 // system (e.g. the window manager). Used in the main process. | 126 // system (e.g. the window manager). Used in the main process. |
| 127 void OnInstanceQuitInMain(base::RunLoop* run_loop, | 127 void OnInstanceQuitInMain(base::RunLoop* run_loop, |
| 128 int* exit_value, | 128 int* exit_value, |
| 129 const service_manager::Identity& identity) { | 129 const service_manager::Identity& identity) { |
| 130 DCHECK(exit_value); | 130 DCHECK(exit_value); |
| 131 DCHECK(run_loop); | 131 DCHECK(run_loop); |
| 132 | 132 |
| 133 if (identity.name() != mash::common::GetWindowManagerServiceName() && | 133 if (identity.name() != mash::common::GetWindowManagerServiceName() && |
| 134 identity.name() != ui::mojom::kServiceName) { | 134 identity.name() != ui::mojom::kServiceName && |
| 135 identity.name() != content::mojom::kBrowserServiceName) { |
| 135 return; | 136 return; |
| 136 } | 137 } |
| 137 | 138 |
| 138 LOG(ERROR) << "Main process exiting because service " << identity.name() | 139 LOG(ERROR) << "Main process exiting because service " << identity.name() |
| 139 << " quit unexpectedly."; | 140 << " quit unexpectedly."; |
| 140 *exit_value = 1; | 141 *exit_value = 1; |
| 141 run_loop->Quit(); | 142 run_loop->Quit(); |
| 142 } | 143 } |
| 143 | 144 |
| 144 } // namespace | 145 } // namespace |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 base::RunLoop run_loop; | 198 base::RunLoop run_loop; |
| 198 int exit_value = 0; | 199 int exit_value = 0; |
| 199 background_service_manager.SetInstanceQuitCallback( | 200 background_service_manager.SetInstanceQuitCallback( |
| 200 base::Bind(&OnInstanceQuitInMain, &run_loop, &exit_value)); | 201 base::Bind(&OnInstanceQuitInMain, &run_loop, &exit_value)); |
| 201 | 202 |
| 202 // Ping services that we know we want to launch on startup (UI service, | 203 // Ping services that we know we want to launch on startup (UI service, |
| 203 // window manager, quick launch app). | 204 // window manager, quick launch app). |
| 204 context_->connector()->Connect(ui::mojom::kServiceName); | 205 context_->connector()->Connect(ui::mojom::kServiceName); |
| 205 context_->connector()->Connect(mash::common::GetWindowManagerServiceName()); | 206 context_->connector()->Connect(mash::common::GetWindowManagerServiceName()); |
| 206 context_->connector()->Connect(mash::quick_launch::mojom::kServiceName); | 207 context_->connector()->Connect(mash::quick_launch::mojom::kServiceName); |
| 208 context_->connector()->Connect(content::mojom::kBrowserServiceName); |
| 207 | 209 |
| 208 run_loop.Run(); | 210 run_loop.Run(); |
| 209 | 211 |
| 210 context_.reset(); | 212 context_.reset(); |
| 211 return exit_value; | 213 return exit_value; |
| 212 } | 214 } |
| 213 | 215 |
| 214 int MashRunner::RunChild() { | 216 int MashRunner::RunChild() { |
| 215 service_manager::WaitForDebuggerIfNecessary(); | 217 service_manager::WaitForDebuggerIfNecessary(); |
| 216 | 218 |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 285 command_line->GetSwitchValueASCII(switches::kWaitForDebugger)) { | 287 command_line->GetSwitchValueASCII(switches::kWaitForDebugger)) { |
| 286 return; | 288 return; |
| 287 } | 289 } |
| 288 | 290 |
| 289 // Include the pid as logging may not have been initialized yet (the pid | 291 // Include the pid as logging may not have been initialized yet (the pid |
| 290 // printed out by logging is wrong). | 292 // printed out by logging is wrong). |
| 291 LOG(WARNING) << "waiting for debugger to attach for service " << service_name | 293 LOG(WARNING) << "waiting for debugger to attach for service " << service_name |
| 292 << " pid=" << base::Process::Current().Pid(); | 294 << " pid=" << base::Process::Current().Pid(); |
| 293 base::debug::WaitForDebugger(120, true); | 295 base::debug::WaitForDebugger(120, true); |
| 294 } | 296 } |
| OLD | NEW |