| 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 #include "chrome/test/testing_browser_process.h" | |
| 6 | |
| 7 #include "base/string_util.h" | |
| 8 #include "chrome/browser/google/google_url_tracker.h" | |
| 9 #include "chrome/browser/notifications/notification_ui_manager.h" | |
| 10 #include "chrome/browser/policy/browser_policy_connector.h" | |
| 11 #include "chrome/browser/prefs/pref_service.h" | |
| 12 #include "chrome/browser/prerender/prerender_tracker.h" | |
| 13 #include "chrome/browser/printing/background_printing_manager.h" | |
| 14 #include "chrome/browser/profiles/profile_manager.h" | |
| 15 #include "content/browser/debugger/devtools_manager.h" | |
| 16 #include "net/url_request/url_request_context_getter.h" | |
| 17 #include "ui/base/clipboard/clipboard.h" | |
| 18 #include "testing/gtest/include/gtest/gtest.h" | |
| 19 | |
| 20 TestingBrowserProcess::TestingBrowserProcess() | |
| 21 : module_ref_count_(0), | |
| 22 app_locale_("en"), | |
| 23 local_state_(NULL), | |
| 24 io_thread_(NULL), | |
| 25 devtools_manager_(NULL) { | |
| 26 } | |
| 27 | |
| 28 TestingBrowserProcess::~TestingBrowserProcess() { | |
| 29 EXPECT_FALSE(local_state_); | |
| 30 } | |
| 31 | |
| 32 void TestingBrowserProcess::EndSession() { | |
| 33 } | |
| 34 | |
| 35 ResourceDispatcherHost* TestingBrowserProcess::resource_dispatcher_host() { | |
| 36 return NULL; | |
| 37 } | |
| 38 | |
| 39 MetricsService* TestingBrowserProcess::metrics_service() { | |
| 40 return NULL; | |
| 41 } | |
| 42 | |
| 43 IOThread* TestingBrowserProcess::io_thread() { | |
| 44 return io_thread_; | |
| 45 } | |
| 46 | |
| 47 base::Thread* TestingBrowserProcess::file_thread() { | |
| 48 return NULL; | |
| 49 } | |
| 50 | |
| 51 base::Thread* TestingBrowserProcess::db_thread() { | |
| 52 return NULL; | |
| 53 } | |
| 54 | |
| 55 base::Thread* TestingBrowserProcess::cache_thread() { | |
| 56 return NULL; | |
| 57 } | |
| 58 | |
| 59 WatchDogThread* TestingBrowserProcess::watchdog_thread() { | |
| 60 return NULL; | |
| 61 } | |
| 62 | |
| 63 #if defined(OS_CHROMEOS) | |
| 64 base::Thread* TestingBrowserProcess::web_socket_proxy_thread() { | |
| 65 return NULL; | |
| 66 } | |
| 67 #endif | |
| 68 | |
| 69 ProfileManager* TestingBrowserProcess::profile_manager() { | |
| 70 return profile_manager_.get(); | |
| 71 } | |
| 72 | |
| 73 void TestingBrowserProcess::SetProfileManager(ProfileManager* profile_manager) { | |
| 74 profile_manager_.reset(profile_manager); | |
| 75 } | |
| 76 | |
| 77 PrefService* TestingBrowserProcess::local_state() { | |
| 78 return local_state_; | |
| 79 } | |
| 80 | |
| 81 policy::BrowserPolicyConnector* | |
| 82 TestingBrowserProcess::browser_policy_connector() { | |
| 83 #if defined(ENABLE_CONFIGURATION_POLICY) | |
| 84 if (!browser_policy_connector_.get()) { | |
| 85 browser_policy_connector_.reset( | |
| 86 policy::BrowserPolicyConnector::CreateForTests()); | |
| 87 } | |
| 88 #endif | |
| 89 return browser_policy_connector_.get(); | |
| 90 } | |
| 91 | |
| 92 IconManager* TestingBrowserProcess::icon_manager() { | |
| 93 return NULL; | |
| 94 } | |
| 95 | |
| 96 ThumbnailGenerator* TestingBrowserProcess::GetThumbnailGenerator() { | |
| 97 return NULL; | |
| 98 } | |
| 99 | |
| 100 DevToolsManager* TestingBrowserProcess::devtools_manager() { | |
| 101 return devtools_manager_.get(); | |
| 102 } | |
| 103 | |
| 104 SidebarManager* TestingBrowserProcess::sidebar_manager() { | |
| 105 return NULL; | |
| 106 } | |
| 107 | |
| 108 TabCloseableStateWatcher* TestingBrowserProcess::tab_closeable_state_watcher() { | |
| 109 return NULL; | |
| 110 } | |
| 111 | |
| 112 BackgroundModeManager* TestingBrowserProcess::background_mode_manager() { | |
| 113 return NULL; | |
| 114 } | |
| 115 | |
| 116 StatusTray* TestingBrowserProcess::status_tray() { | |
| 117 return NULL; | |
| 118 } | |
| 119 | |
| 120 SafeBrowsingService* TestingBrowserProcess::safe_browsing_service() { | |
| 121 return NULL; | |
| 122 } | |
| 123 | |
| 124 safe_browsing::ClientSideDetectionService* | |
| 125 TestingBrowserProcess::safe_browsing_detection_service() { | |
| 126 return NULL; | |
| 127 } | |
| 128 | |
| 129 net::URLRequestContextGetter* TestingBrowserProcess::system_request_context() { | |
| 130 return NULL; | |
| 131 } | |
| 132 | |
| 133 #if defined(OS_CHROMEOS) | |
| 134 chromeos::ProxyConfigServiceImpl* | |
| 135 TestingBrowserProcess::chromeos_proxy_config_service_impl() { | |
| 136 return NULL; | |
| 137 } | |
| 138 #endif // defined(OS_CHROMEOS) | |
| 139 | |
| 140 ui::Clipboard* TestingBrowserProcess::clipboard() { | |
| 141 if (!clipboard_.get()) { | |
| 142 // Note that we need a MessageLoop for the next call to work. | |
| 143 clipboard_.reset(new ui::Clipboard); | |
| 144 } | |
| 145 return clipboard_.get(); | |
| 146 } | |
| 147 | |
| 148 ExtensionEventRouterForwarder* | |
| 149 TestingBrowserProcess::extension_event_router_forwarder() { | |
| 150 return NULL; | |
| 151 } | |
| 152 | |
| 153 NotificationUIManager* TestingBrowserProcess::notification_ui_manager() { | |
| 154 if (!notification_ui_manager_.get()) | |
| 155 notification_ui_manager_.reset( | |
| 156 NotificationUIManager::Create(local_state())); | |
| 157 return notification_ui_manager_.get(); | |
| 158 } | |
| 159 | |
| 160 GoogleURLTracker* TestingBrowserProcess::google_url_tracker() { | |
| 161 return google_url_tracker_.get(); | |
| 162 } | |
| 163 | |
| 164 IntranetRedirectDetector* TestingBrowserProcess::intranet_redirect_detector() { | |
| 165 return NULL; | |
| 166 } | |
| 167 | |
| 168 AutomationProviderList* TestingBrowserProcess::InitAutomationProviderList() { | |
| 169 return NULL; | |
| 170 } | |
| 171 | |
| 172 void TestingBrowserProcess::InitDevToolsHttpProtocolHandler( | |
| 173 Profile* profile, | |
| 174 const std::string& ip, | |
| 175 int port, | |
| 176 const std::string& frontend_url) { | |
| 177 } | |
| 178 | |
| 179 void TestingBrowserProcess::InitDevToolsLegacyProtocolHandler(int port) { | |
| 180 } | |
| 181 | |
| 182 unsigned int TestingBrowserProcess::AddRefModule() { | |
| 183 return ++module_ref_count_; | |
| 184 } | |
| 185 | |
| 186 unsigned int TestingBrowserProcess::ReleaseModule() { | |
| 187 DCHECK_GT(module_ref_count_, 0U); | |
| 188 return --module_ref_count_; | |
| 189 } | |
| 190 | |
| 191 bool TestingBrowserProcess::IsShuttingDown() { | |
| 192 return false; | |
| 193 } | |
| 194 | |
| 195 printing::PrintJobManager* TestingBrowserProcess::print_job_manager() { | |
| 196 return NULL; | |
| 197 } | |
| 198 | |
| 199 printing::PrintPreviewTabController* | |
| 200 TestingBrowserProcess::print_preview_tab_controller() { | |
| 201 return NULL; | |
| 202 } | |
| 203 | |
| 204 printing::BackgroundPrintingManager* | |
| 205 TestingBrowserProcess::background_printing_manager() { | |
| 206 if (!background_printing_manager_.get()) { | |
| 207 background_printing_manager_.reset( | |
| 208 new printing::BackgroundPrintingManager()); | |
| 209 } | |
| 210 return background_printing_manager_.get(); | |
| 211 } | |
| 212 | |
| 213 const std::string& TestingBrowserProcess::GetApplicationLocale() { | |
| 214 return app_locale_; | |
| 215 } | |
| 216 | |
| 217 void TestingBrowserProcess::SetApplicationLocale( | |
| 218 const std::string& app_locale) { | |
| 219 app_locale_ = app_locale; | |
| 220 } | |
| 221 | |
| 222 DownloadStatusUpdater* TestingBrowserProcess::download_status_updater() { | |
| 223 return NULL; | |
| 224 } | |
| 225 | |
| 226 bool TestingBrowserProcess::plugin_finder_disabled() const { | |
| 227 return false; | |
| 228 } | |
| 229 | |
| 230 ChromeNetLog* TestingBrowserProcess::net_log() { | |
| 231 return NULL; | |
| 232 } | |
| 233 | |
| 234 prerender::PrerenderTracker* TestingBrowserProcess::prerender_tracker() { | |
| 235 if (!prerender_tracker_.get()) | |
| 236 prerender_tracker_.reset(new prerender::PrerenderTracker()); | |
| 237 return prerender_tracker_.get(); | |
| 238 } | |
| 239 | |
| 240 MHTMLGenerationManager* TestingBrowserProcess::mhtml_generation_manager() { | |
| 241 return NULL; | |
| 242 } | |
| 243 | |
| 244 GpuBlacklistUpdater* TestingBrowserProcess::gpu_blacklist_updater() { | |
| 245 return NULL; | |
| 246 } | |
| 247 | |
| 248 ComponentUpdateService* TestingBrowserProcess::component_updater() { | |
| 249 return NULL; | |
| 250 } | |
| 251 | |
| 252 void TestingBrowserProcess::SetLocalState(PrefService* local_state) { | |
| 253 if (!local_state && notification_ui_manager_.get()) | |
| 254 notification_ui_manager_.reset(); // Used local_state_. | |
| 255 local_state_ = local_state; | |
| 256 } | |
| 257 | |
| 258 void TestingBrowserProcess::SetGoogleURLTracker( | |
| 259 GoogleURLTracker* google_url_tracker) { | |
| 260 google_url_tracker_.reset(google_url_tracker); | |
| 261 } | |
| 262 | |
| 263 void TestingBrowserProcess::SetIOThread(IOThread* io_thread) { | |
| 264 io_thread_ = io_thread; | |
| 265 } | |
| 266 | |
| 267 void TestingBrowserProcess::SetDevToolsManager(DevToolsManager* manager) { | |
| 268 devtools_manager_.reset(manager); | |
| 269 } | |
| 270 | |
| 271 ScopedTestingBrowserProcess::ScopedTestingBrowserProcess() { | |
| 272 #if defined(OS_WIN) | |
| 273 // This is not really Windows-specific, the transition is just being done | |
| 274 // in stages, and Windows is first. See below for more info. | |
| 275 DCHECK(!g_browser_process); | |
| 276 #else | |
| 277 // TODO(phajdan.jr): Temporary, for http://crbug.com/61062. | |
| 278 // ChromeTestSuite sets up a global TestingBrowserProcess | |
| 279 // for all tests. We need to get rid of it, because it contains | |
| 280 // a NotificationService, and there can be only one NotificationService | |
| 281 // per thread. | |
| 282 DCHECK(g_browser_process); | |
| 283 delete g_browser_process; | |
| 284 #endif | |
| 285 browser_process_.reset(new TestingBrowserProcess); | |
| 286 g_browser_process = browser_process_.get(); | |
| 287 } | |
| 288 | |
| 289 ScopedTestingBrowserProcess::~ScopedTestingBrowserProcess() { | |
| 290 DCHECK_EQ(browser_process_.get(), g_browser_process); | |
| 291 | |
| 292 #if defined(OS_WIN) | |
| 293 // This is not really Windows-specific, the transition is just being done | |
| 294 // in stages, and Windows is first. See below for more info. | |
| 295 g_browser_process = NULL; | |
| 296 #else | |
| 297 // TODO(phajdan.jr): Temporary, for http://crbug.com/61062. | |
| 298 // After the transition is over, we should just | |
| 299 // reset |g_browser_process| to NULL. | |
| 300 browser_process_.reset(); | |
| 301 g_browser_process = new TestingBrowserProcess(); | |
| 302 #endif | |
| 303 } | |
| OLD | NEW |