shell_main.cc revision b2df76ea8fec9e32f6f3718986dba0d95315b29c
1d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com// Use of this source code is governed by a BSD-style license that can be
3d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com// found in the LICENSE file.
4d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com
5d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com#include "content/public/app/content_main.h"
6d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com
7d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com#include "content/shell/app/shell_main_delegate.h"
8d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com#include "sandbox/win/src/sandbox_types.h"
9d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com
10d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com#if defined(OS_WIN)
11d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com#include "content/public/app/startup_helper_win.h"
12d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com#endif
13d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com
14d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com#if defined(OS_MACOSX)
15d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com#include "content/shell/shell_content_main.h"
16d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com#endif
17d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com
18d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com#if defined(OS_WIN)
19d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com
20d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.comint APIENTRY wWinMain(HINSTANCE instance, HINSTANCE, wchar_t*, int) {
21d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com  sandbox::SandboxInterfaceInfo sandbox_info = {0};
22d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com  content::InitializeSandboxInfo(&sandbox_info);
23d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com  content::ShellMainDelegate delegate;
24d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com  return content::ContentMain(instance, &sandbox_info, &delegate);
25d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com}
26d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com
27d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com#else
28d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com
29d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.comint main(int argc, const char** argv) {
30d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com#if defined(OS_MACOSX)
31d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com  // Do the delegate work in shell_content_main to avoid having to export the
32d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com  // delegate types.
33d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com  return ::ContentMain(argc, argv);
34d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com#else
35d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com  content::ShellMainDelegate delegate;
36d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com  return content::ContentMain(argc, argv, &delegate);
37d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com#endif  // OS_MACOSX
38d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com}
39d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com
40d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com#endif  // OS_POSIX
41d4236574cfe4ec333d20e7a30f37e084168bb050djsollen@google.com