OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 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 // An implementation of BrowserProcess for unit tests that fails for most | |
6 // services. By preventing creation of services, we reduce dependencies and | |
7 // keep the profile clean. Clients of this class must handle the NULL return | |
8 // value, however. | |
9 | |
10 #ifndef CHROME_TEST_TESTING_BROWSER_PROCESS_H_ | |
11 #define CHROME_TEST_TESTING_BROWSER_PROCESS_H_ | |
12 #pragma once | |
13 | |
14 #include <string> | |
15 | |
16 #include "base/memory/scoped_ptr.h" | |
17 #include "build/build_config.h" | |
18 #include "chrome/browser/browser_process.h" | |
19 #include "content/common/notification_service.h" | |
20 | |
21 class BackgroundModeManager; | |
22 class IOThread; | |
23 class GoogleURLTracker; | |
24 class MHTMLGenerationManager; | |
25 class NotificationUIManager; | |
26 class PrefService; | |
27 class WatchDogThread; | |
28 | |
29 namespace base { | |
30 class WaitableEvent; | |
31 } | |
32 | |
33 namespace policy { | |
34 class BrowserPolicyConnector; | |
35 } | |
36 | |
37 namespace prerender { | |
38 class PrerenderTracker; | |
39 } | |
40 | |
41 namespace ui { | |
42 class Clipboard; | |
43 } | |
44 | |
45 class TestingBrowserProcess : public BrowserProcess { | |
46 public: | |
47 TestingBrowserProcess(); | |
48 virtual ~TestingBrowserProcess(); | |
49 | |
50 virtual void EndSession(); | |
51 virtual ResourceDispatcherHost* resource_dispatcher_host(); | |
52 virtual MetricsService* metrics_service(); | |
53 virtual IOThread* io_thread(); | |
54 | |
55 virtual base::Thread* file_thread(); | |
56 virtual base::Thread* db_thread(); | |
57 virtual base::Thread* cache_thread(); | |
58 virtual WatchDogThread* watchdog_thread(); | |
59 | |
60 #if defined(OS_CHROMEOS) | |
61 virtual base::Thread* web_socket_proxy_thread(); | |
62 #endif | |
63 | |
64 virtual ProfileManager* profile_manager(); | |
65 virtual PrefService* local_state(); | |
66 virtual policy::BrowserPolicyConnector* browser_policy_connector(); | |
67 virtual IconManager* icon_manager(); | |
68 virtual ThumbnailGenerator* GetThumbnailGenerator(); | |
69 virtual DevToolsManager* devtools_manager(); | |
70 virtual SidebarManager* sidebar_manager(); | |
71 virtual TabCloseableStateWatcher* tab_closeable_state_watcher(); | |
72 virtual BackgroundModeManager* background_mode_manager(); | |
73 virtual StatusTray* status_tray(); | |
74 virtual SafeBrowsingService* safe_browsing_service(); | |
75 virtual safe_browsing::ClientSideDetectionService* | |
76 safe_browsing_detection_service(); | |
77 virtual net::URLRequestContextGetter* system_request_context(); | |
78 | |
79 #if defined(OS_CHROMEOS) | |
80 virtual chromeos::ProxyConfigServiceImpl* | |
81 chromeos_proxy_config_service_impl(); | |
82 #endif // defined(OS_CHROMEOS) | |
83 | |
84 virtual ui::Clipboard* clipboard(); | |
85 virtual ExtensionEventRouterForwarder* extension_event_router_forwarder(); | |
86 virtual NotificationUIManager* notification_ui_manager(); | |
87 virtual GoogleURLTracker* google_url_tracker(); | |
88 virtual IntranetRedirectDetector* intranet_redirect_detector(); | |
89 virtual AutomationProviderList* InitAutomationProviderList(); | |
90 virtual void InitDevToolsHttpProtocolHandler( | |
91 Profile* profile, | |
92 const std::string& ip, | |
93 int port, | |
94 const std::string& frontend_url); | |
95 virtual void InitDevToolsLegacyProtocolHandler(int port); | |
96 virtual unsigned int AddRefModule(); | |
97 virtual unsigned int ReleaseModule(); | |
98 virtual bool IsShuttingDown(); | |
99 virtual printing::PrintJobManager* print_job_manager(); | |
100 virtual printing::PrintPreviewTabController* print_preview_tab_controller(); | |
101 virtual printing::BackgroundPrintingManager* background_printing_manager(); | |
102 virtual const std::string& GetApplicationLocale(); | |
103 virtual void SetApplicationLocale(const std::string& app_locale); | |
104 virtual DownloadStatusUpdater* download_status_updater(); | |
105 virtual bool plugin_finder_disabled() const; | |
106 virtual void CheckForInspectorFiles() {} | |
107 | |
108 #if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) | |
109 virtual void StartAutoupdateTimer() {} | |
110 #endif | |
111 | |
112 virtual ChromeNetLog* net_log(); | |
113 virtual prerender::PrerenderTracker* prerender_tracker(); | |
114 | |
115 #if defined(IPC_MESSAGE_LOG_ENABLED) | |
116 virtual void SetIPCLoggingEnabled(bool enable) {} | |
117 #endif | |
118 virtual MHTMLGenerationManager* mhtml_generation_manager(); | |
119 virtual GpuBlacklistUpdater* gpu_blacklist_updater(); | |
120 virtual ComponentUpdateService* component_updater(); | |
121 | |
122 // Set the local state for tests. Consumer is responsible for cleaning it up | |
123 // afterwards (using ScopedTestingLocalState, for example). | |
124 void SetLocalState(PrefService* local_state); | |
125 void SetGoogleURLTracker(GoogleURLTracker* google_url_tracker); | |
126 void SetProfileManager(ProfileManager* profile_manager); | |
127 void SetIOThread(IOThread* io_thread); | |
128 void SetDevToolsManager(DevToolsManager*); | |
129 | |
130 private: | |
131 NotificationService notification_service_; | |
132 unsigned int module_ref_count_; | |
133 scoped_ptr<ui::Clipboard> clipboard_; | |
134 std::string app_locale_; | |
135 | |
136 // Weak pointer. | |
137 PrefService* local_state_; | |
138 scoped_ptr<policy::BrowserPolicyConnector> browser_policy_connector_; | |
139 scoped_ptr<GoogleURLTracker> google_url_tracker_; | |
140 scoped_ptr<ProfileManager> profile_manager_; | |
141 scoped_ptr<NotificationUIManager> notification_ui_manager_; | |
142 scoped_ptr<printing::BackgroundPrintingManager> background_printing_manager_; | |
143 scoped_ptr<prerender::PrerenderTracker> prerender_tracker_; | |
144 IOThread* io_thread_; | |
145 scoped_ptr<DevToolsManager> devtools_manager_; | |
146 | |
147 DISALLOW_COPY_AND_ASSIGN(TestingBrowserProcess); | |
148 }; | |
149 | |
150 // Scoper to put a TestingBrowserProcess in |g_browser_process|. | |
151 class ScopedTestingBrowserProcess { | |
152 public: | |
153 ScopedTestingBrowserProcess(); | |
154 ~ScopedTestingBrowserProcess(); | |
155 | |
156 TestingBrowserProcess* get() { | |
157 return browser_process_.get(); | |
158 } | |
159 | |
160 private: | |
161 // TODO(phajdan.jr): Temporary, for http://crbug.com/61062. | |
162 // After the transition is over, we should just stack-allocate it. | |
163 scoped_ptr<TestingBrowserProcess> browser_process_; | |
164 | |
165 DISALLOW_COPY_AND_ASSIGN(ScopedTestingBrowserProcess); | |
166 }; | |
167 | |
168 #endif // CHROME_TEST_TESTING_BROWSER_PROCESS_H_ | |
OLD | NEW |