1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/message_loop/message_loop.h" 6 #include "base/threading/platform_thread.h" 7 #include "build/build_config.h" 8 #include "content/child/child_process.h" 9 #include "content/common/content_constants_internal.h" 10 #include "content/ppapi_plugin/ppapi_thread.h" 11 #include "content/public/common/content_switches.h" 12 #include "content/public/common/main_function_params.h" 13 14 namespace content { 15 16 // Main function for starting the PPAPI broker process. 17 int PpapiBrokerMain(const MainFunctionParams& parameters) { 18 const CommandLine& command_line = parameters.command_line; 19 if (command_line.HasSwitch(switches::kPpapiStartupDialog)) { 20 ChildProcess::WaitForDebugger("PpapiBroker"); 21 } 22 23 base::MessageLoop main_message_loop(base::MessageLoop::TYPE_DEFAULT); 24 base::PlatformThread::SetName("CrPPAPIBrokerMain"); 25 base::debug::TraceLog::GetInstance()->SetProcessName("PPAPI Broker Process"); 26 base::debug::TraceLog::GetInstance()->SetProcessSortIndex( 27 kTraceEventPpapiBrokerProcessSortIndex); 28 29 ChildProcess ppapi_broker_process; 30 ppapi_broker_process.set_main_thread( 31 new PpapiThread(parameters.command_line, true)); // Broker. 32 33 main_message_loop.Run(); 34 DVLOG(1) << "PpapiBrokerMain exiting"; 35 return 0; 36 } 37 38 } // namespace content 39