- add sources.
[platform/framework/web/crosswalk.git] / src / content / shell / browser / shell_browser_main_parts.h
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
46   ShellDevToolsDelegate* devtools_delegate() {
47     return devtools_delegate_.get();
48   }
49
50   ShellBrowserContext* browser_context() { return browser_context_.get(); }
51   ShellBrowserContext* off_the_record_browser_context() {
52     return off_the_record_browser_context_.get();
53   }
54
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_