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 #ifndef CONTENT_SHELL_APP_SHELL_MAIN_DELEGATE_H_ 6 #define CONTENT_SHELL_APP_SHELL_MAIN_DELEGATE_H_ 7 8 #include "base/compiler_specific.h" 9 #include "base/memory/scoped_ptr.h" 10 #include "content/public/app/content_main_delegate.h" 11 #include "content/shell/common/shell_content_client.h" 12 13 namespace content { 14 class ShellContentBrowserClient; 15 class ShellContentRendererClient; 16 17 #if defined(OS_ANDROID) 18 class BrowserMainRunner; 19 #endif 20 21 class ShellMainDelegate : public ContentMainDelegate { 22 public: 23 ShellMainDelegate(); 24 virtual ~ShellMainDelegate(); 25 26 // ContentMainDelegate implementation: 27 virtual bool BasicStartupComplete(int* exit_code) OVERRIDE; 28 virtual void PreSandboxStartup() OVERRIDE; 29 virtual int RunProcess( 30 const std::string& process_type, 31 const MainFunctionParams& main_function_params) OVERRIDE; 32 #if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_MACOSX) 33 virtual void ZygoteForked() OVERRIDE; 34 #endif 35 virtual ContentBrowserClient* CreateContentBrowserClient() OVERRIDE; 36 virtual ContentRendererClient* CreateContentRendererClient() OVERRIDE; 37 38 static void InitializeResourceBundle(); 39 40 private: 41 scoped_ptr<ShellContentBrowserClient> browser_client_; 42 scoped_ptr<ShellContentRendererClient> renderer_client_; 43 ShellContentClient content_client_; 44 45 #if defined(OS_ANDROID) 46 scoped_ptr<BrowserMainRunner> browser_runner_; 47 #endif 48 49 DISALLOW_COPY_AND_ASSIGN(ShellMainDelegate); 50 }; 51 52 } // namespace content 53 54 #endif // CONTENT_SHELL_APP_SHELL_MAIN_DELEGATE_H_ 55