shell_main.cc revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
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#include "content/public/app/content_main.h"
6#include "content/shell/app/shell_main_delegate.h"
7
8#if defined(OS_WIN)
9#include "content/public/app/startup_helper_win.h"
10#include "sandbox/win/src/sandbox_types.h"
11#endif
12
13#if defined(OS_MACOSX)
14#include "content/shell/app/shell_content_main.h"
15#endif
16
17#if defined(OS_WIN)
18
19int APIENTRY wWinMain(HINSTANCE instance, HINSTANCE, wchar_t*, int) {
20  sandbox::SandboxInterfaceInfo sandbox_info = {0};
21  content::InitializeSandboxInfo(&sandbox_info);
22  content::ShellMainDelegate delegate;
23
24  content::ContentMainParams params(&delegate);
25  params.instance = instance;
26  params.sandbox_info = &sandbox_info;
27  return content::ContentMain(params);
28}
29
30#else
31
32int main(int argc, const char** argv) {
33#if defined(OS_MACOSX)
34  // Do the delegate work in shell_content_main to avoid having to export the
35  // delegate types.
36  return ::ContentMain(argc, argv);
37#else
38  content::ShellMainDelegate delegate;
39  content::ContentMainParams params(&delegate);
40  params.argc = argc;
41  params.argv = argv;
42  return content::ContentMain(params);
43#endif  // OS_MACOSX
44}
45
46#endif  // OS_POSIX
47