ppapi_broker_main.cc revision 9ab5563a3196760eb381d102cbb2bc0f7abc6a50
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 59ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch#include "base/message_loop/message_loop.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/threading/platform_thread.h" 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "build/build_config.h" 8868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "content/child/child_process.h" 97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "content/common/content_constants_internal.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/ppapi_plugin/ppapi_thread.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/content_switches.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/main_function_params.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Main function for starting the PPAPI broker process. 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int PpapiBrokerMain(const MainFunctionParams& parameters) { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const CommandLine& command_line = parameters.command_line; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (command_line.HasSwitch(switches::kPpapiStartupDialog)) { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ChildProcess::WaitForDebugger("PpapiBroker"); 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::MessageLoop main_message_loop(base::MessageLoop::TYPE_DEFAULT); 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::PlatformThread::SetName("CrPPAPIBrokerMain"); 257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch base::debug::TraceLog::GetInstance()->SetProcessName("PPAPI Broker Process"); 267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch base::debug::TraceLog::GetInstance()->SetProcessSortIndex( 277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch kTraceEventPpapiBrokerProcessSortIndex); 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ChildProcess ppapi_broker_process; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ppapi_broker_process.set_main_thread( 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) new PpapiThread(parameters.command_line, true)); // Broker. 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) main_message_loop.Run(); 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DVLOG(1) << "PpapiBrokerMain exiting"; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 0; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 39