1 // Copyright (c) 2012 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 // Wrapper to the parameter list for the "main" entry points (browser, renderer, 6 // plugin) to shield the call sites from the differences between platforms 7 // (e.g., POSIX doesn't need to pass any sandbox information). 8 9 #ifndef CONTENT_PUBLIC_COMMON_MAIN_FUNCTION_PARAMS_H_ 10 #define CONTENT_PUBLIC_COMMON_MAIN_FUNCTION_PARAMS_H_ 11 12 #include "base/command_line.h" 13 #include "base/callback_forward.h" 14 15 #if defined(OS_WIN) 16 namespace sandbox { 17 struct SandboxInterfaceInfo; 18 } 19 #elif defined(OS_MACOSX) 20 namespace base { 21 namespace mac { 22 class ScopedNSAutoreleasePool; 23 } 24 } 25 #endif 26 27 namespace content { 28 29 struct MainFunctionParams { 30 explicit MainFunctionParams(const CommandLine& cl) 31 : command_line(cl), 32 #if defined(OS_WIN) 33 sandbox_info(NULL), 34 #elif defined(OS_MACOSX) 35 autorelease_pool(NULL), 36 #endif 37 ui_task(NULL) {} 38 const CommandLine& command_line; 39 #if defined(OS_WIN) 40 sandbox::SandboxInterfaceInfo* sandbox_info; 41 #elif defined(OS_MACOSX) 42 base::mac::ScopedNSAutoreleasePool* autorelease_pool; 43 #endif 44 // Used by InProcessBrowserTest. If non-null BrowserMain schedules this 45 // task to run on the MessageLoop and BrowserInit is not invoked. 46 base::Closure* ui_task; 47 }; 48 49 } // namespace content 50 51 #endif // CONTENT_PUBLIC_COMMON_MAIN_FUNCTION_PARAMS_H_ 52