Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / content / shell / app / shell_main.cc
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
19 #if !defined(ADDRESS_SANITIZER)
20 int APIENTRY wWinMain(HINSTANCE instance, HINSTANCE, wchar_t*, int) {
21 #else
22 // The AddressSanitizer build should be a console program as it prints out stuff
23 // on stderr.
24 int main() {
25   HINSTANCE instance = GetModuleHandle(NULL);
26 #endif
27   sandbox::SandboxInterfaceInfo sandbox_info = {0};
28   content::InitializeSandboxInfo(&sandbox_info);
29   content::ShellMainDelegate delegate;
30
31   content::ContentMainParams params(&delegate);
32   params.instance = instance;
33   params.sandbox_info = &sandbox_info;
34   return content::ContentMain(params);
35 }
36
37 #else
38
39 int main(int argc, const char** argv) {
40 #if defined(OS_MACOSX)
41   // Do the delegate work in shell_content_main to avoid having to export the
42   // delegate types.
43   return ::ContentMain(argc, argv);
44 #else
45   content::ShellMainDelegate delegate;
46   content::ContentMainParams params(&delegate);
47   params.argc = argc;
48   params.argv = argv;
49   return content::ContentMain(params);
50 #endif  // OS_MACOSX
51 }
52
53 #endif  // OS_POSIX