| 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 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 service_manager::mojom::ServiceRequest service_request) { | 230 service_manager::mojom::ServiceRequest service_request) { |
| 231 // TODO(sad): Normally, this would be a TYPE_DEFAULT message loop. However, | 231 // TODO(sad): Normally, this would be a TYPE_DEFAULT message loop. However, |
| 232 // TYPE_UI is needed for mojo:ui. But it is not known whether the child app is | 232 // TYPE_UI is needed for mojo:ui. But it is not known whether the child app is |
| 233 // going to be mojo:ui at this point. So always create a TYPE_UI message loop | 233 // going to be mojo:ui at this point. So always create a TYPE_UI message loop |
| 234 // for now. | 234 // for now. |
| 235 base::MessageLoop message_loop(base::MessageLoop::TYPE_UI); | 235 base::MessageLoop message_loop(base::MessageLoop::TYPE_UI); |
| 236 base::RunLoop run_loop; | 236 base::RunLoop run_loop; |
| 237 service_manager::ServiceContext context( | 237 service_manager::ServiceContext context( |
| 238 base::MakeUnique<mash::MashPackagedService>(), | 238 base::MakeUnique<mash::MashPackagedService>(), |
| 239 std::move(service_request)); | 239 std::move(service_request)); |
| 240 // Quit the child process if it loses its connection to service manager. | 240 // Quit the child process when the service quits. |
| 241 context.SetConnectionLostClosure(run_loop.QuitClosure()); | 241 context.SetQuitClosure(run_loop.QuitClosure()); |
| 242 run_loop.Run(); | 242 run_loop.Run(); |
| 243 // |context| must be destroyed before |message_loop|. | 243 // |context| must be destroyed before |message_loop|. |
| 244 } | 244 } |
| 245 | 245 |
| 246 int MashMain() { | 246 int MashMain() { |
| 247 #if !defined(OFFICIAL_BUILD) && defined(OS_WIN) | 247 #if !defined(OFFICIAL_BUILD) && defined(OS_WIN) |
| 248 base::RouteStdioToConsole(false); | 248 base::RouteStdioToConsole(false); |
| 249 #endif | 249 #endif |
| 250 // TODO(sky): wire this up correctly. | 250 // TODO(sky): wire this up correctly. |
| 251 service_manager::InitializeLogging(); | 251 service_manager::InitializeLogging(); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 command_line->GetSwitchValueASCII(switches::kWaitForDebugger)) { | 287 command_line->GetSwitchValueASCII(switches::kWaitForDebugger)) { |
| 288 return; | 288 return; |
| 289 } | 289 } |
| 290 | 290 |
| 291 // 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 |
| 292 // printed out by logging is wrong). | 292 // printed out by logging is wrong). |
| 293 LOG(WARNING) << "waiting for debugger to attach for service " << service_name | 293 LOG(WARNING) << "waiting for debugger to attach for service " << service_name |
| 294 << " pid=" << base::Process::Current().Pid(); | 294 << " pid=" << base::Process::Current().Pid(); |
| 295 base::debug::WaitForDebugger(120, true); | 295 base::debug::WaitForDebugger(120, true); |
| 296 } | 296 } |
| OLD | NEW |