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 ASH_SHELL_CONTENT_CLIENT_EXAMPLES_BROWSER_MAIN_PARTS_H_ 6 #define ASH_SHELL_CONTENT_CLIENT_EXAMPLES_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 12 namespace base { 13 class Thread; 14 } 15 16 namespace content { 17 class ShellBrowserContext; 18 struct MainFunctionParams; 19 } 20 21 namespace net { 22 class NetLog; 23 } 24 25 namespace wm { 26 class WMState; 27 } 28 29 namespace ash { 30 namespace shell { 31 32 class ShellDelegateImpl; 33 class WindowWatcher; 34 35 class ShellBrowserMainParts : public content::BrowserMainParts { 36 public: 37 explicit ShellBrowserMainParts( 38 const content::MainFunctionParams& parameters); 39 virtual ~ShellBrowserMainParts(); 40 41 // Overridden from content::BrowserMainParts: 42 virtual void PreMainMessageLoopStart() OVERRIDE; 43 virtual void PostMainMessageLoopStart() OVERRIDE; 44 virtual void ToolkitInitialized() OVERRIDE; 45 virtual void PreMainMessageLoopRun() OVERRIDE; 46 virtual bool MainMessageLoopRun(int* result_code) OVERRIDE; 47 virtual void PostMainMessageLoopRun() OVERRIDE; 48 49 content::ShellBrowserContext* browser_context() { 50 return browser_context_.get(); 51 } 52 53 private: 54 scoped_ptr<net::NetLog> net_log_; 55 scoped_ptr<content::ShellBrowserContext> browser_context_; 56 scoped_ptr<ash::shell::WindowWatcher> window_watcher_; 57 ShellDelegateImpl* delegate_; // owned by Shell 58 scoped_ptr<wm::WMState> wm_state_; 59 60 DISALLOW_COPY_AND_ASSIGN(ShellBrowserMainParts); 61 }; 62 63 } // namespace shell 64 } // namespace ash 65 66 #endif // ASH_SHELL_CONTENT_CLIENT_EXAMPLES_BROWSER_MAIN_PARTS_H_ 67