89684315c50dd297913f874bc9d1850a028ca004
[platform/framework/web/crosswalk.git] / src / ash / shell / content_client / shell_browser_main_parts.h
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   ~ShellBrowserMainParts() override;
40
41   // Overridden from content::BrowserMainParts:
42   void PreMainMessageLoopStart() override;
43   void PostMainMessageLoopStart() override;
44   void ToolkitInitialized() override;
45   void PreMainMessageLoopRun() override;
46   bool MainMessageLoopRun(int* result_code) override;
47   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_