main_function_params.h revision 116680a4aac90f2aa7413d9095a592090648e557
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/callback_forward.h" 13#include "base/command_line.h" 14 15#if defined(OS_WIN) 16namespace sandbox { 17struct SandboxInterfaceInfo; 18} 19#elif defined(OS_MACOSX) 20namespace base { 21namespace mac { 22class ScopedNSAutoreleasePool; 23} 24} 25#endif 26 27namespace content { 28 29struct MainFunctionParams { 30 explicit MainFunctionParams(const base::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#elif defined(OS_POSIX) && !defined(OS_ANDROID) 37 zygote_child(false), 38#endif 39 ui_task(NULL) { 40 } 41 42 const base::CommandLine& command_line; 43 44#if defined(OS_WIN) 45 sandbox::SandboxInterfaceInfo* sandbox_info; 46#elif defined(OS_MACOSX) 47 base::mac::ScopedNSAutoreleasePool* autorelease_pool; 48#elif defined(OS_POSIX) && !defined(OS_ANDROID) 49 bool zygote_child; 50#endif 51 52 // Used by InProcessBrowserTest. If non-null BrowserMain schedules this 53 // task to run on the MessageLoop and BrowserInit is not invoked. 54 base::Closure* ui_task; 55}; 56 57} // namespace content 58 59#endif // CONTENT_PUBLIC_COMMON_MAIN_FUNCTION_PARAMS_H_ 60