1 // Copyright 2013 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_BROWSER_SHELL_BROWSER_MAIN_PARTS_H_ 6 #define CONTENT_SHELL_BROWSER_SHELL_BROWSER_MAIN_PARTS_H_ 7 8 #include "base/basictypes.h" 9 #include "base/memory/scoped_ptr.h" 10 #include "content/public/browser/browser_main_parts.h" 11 #include "content/public/common/main_function_params.h" 12 13 #if defined(OS_ANDROID) 14 namespace breakpad { 15 class CrashDumpManager; 16 } 17 #endif 18 19 namespace base { 20 class Thread; 21 } 22 23 namespace net { 24 class NetLog; 25 } 26 27 namespace content { 28 29 class ShellBrowserContext; 30 class ShellDevToolsDelegate; 31 class ShellPluginServiceFilter; 32 33 class ShellBrowserMainParts : public BrowserMainParts { 34 public: 35 explicit ShellBrowserMainParts(const MainFunctionParams& parameters); 36 virtual ~ShellBrowserMainParts(); 37 38 // BrowserMainParts overrides. 39 virtual void PreEarlyInitialization() OVERRIDE; 40 virtual void PreMainMessageLoopStart() OVERRIDE; 41 virtual void PostMainMessageLoopStart() OVERRIDE; 42 virtual void PreMainMessageLoopRun() OVERRIDE; 43 virtual bool MainMessageLoopRun(int* result_code) OVERRIDE; 44 virtual void PostMainMessageLoopRun() OVERRIDE; 45 devtools_delegate()46 ShellDevToolsDelegate* devtools_delegate() { 47 return devtools_delegate_.get(); 48 } 49 browser_context()50 ShellBrowserContext* browser_context() { return browser_context_.get(); } off_the_record_browser_context()51 ShellBrowserContext* off_the_record_browser_context() { 52 return off_the_record_browser_context_.get(); 53 } 54 net_log()55 net::NetLog* net_log() { return net_log_.get(); } 56 57 private: 58 #if defined(OS_ANDROID) 59 scoped_ptr<breakpad::CrashDumpManager> crash_dump_manager_; 60 #endif 61 scoped_ptr<net::NetLog> net_log_; 62 scoped_ptr<ShellBrowserContext> browser_context_; 63 scoped_ptr<ShellBrowserContext> off_the_record_browser_context_; 64 65 // For running content_browsertests. 66 const MainFunctionParams parameters_; 67 bool run_message_loop_; 68 69 scoped_ptr<ShellDevToolsDelegate> devtools_delegate_; 70 #if defined(ENABLE_PLUGINS) 71 scoped_ptr<ShellPluginServiceFilter> plugin_service_filter_; 72 #endif 73 74 DISALLOW_COPY_AND_ASSIGN(ShellBrowserMainParts); 75 }; 76 77 } // namespace content 78 79 #endif // CONTENT_SHELL_BROWSER_SHELL_BROWSER_MAIN_PARTS_H_ 80