Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Side by Side Diff: chrome/test/testing_profile.cc

Issue 3304015: Use PrefChangeRegistrar everywhere (Closed)
Patch Set: final version for commit Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/test/testing_profile.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/test/testing_profile.h" 5 #include "chrome/test/testing_profile.h"
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 8
9 #include "base/base_paths.h" 9 #include "base/base_paths.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/file_util.h" 11 #include "base/file_util.h"
12 #include "base/message_loop_proxy.h" 12 #include "base/message_loop_proxy.h"
13 #include "base/path_service.h" 13 #include "base/path_service.h"
14 #include "base/string_number_conversions.h" 14 #include "base/string_number_conversions.h"
15 #include "chrome/browser/autocomplete/autocomplete_classifier.h" 15 #include "chrome/browser/autocomplete/autocomplete_classifier.h"
16 #include "chrome/browser/bookmarks/bookmark_model.h" 16 #include "chrome/browser/bookmarks/bookmark_model.h"
17 #include "chrome/browser/chrome_thread.h" 17 #include "chrome/browser/chrome_thread.h"
18 #include "chrome/browser/dom_ui/ntp_resource_cache.h" 18 #include "chrome/browser/dom_ui/ntp_resource_cache.h"
19 #include "chrome/browser/extensions/extensions_service.h"
19 #include "chrome/browser/favicon_service.h" 20 #include "chrome/browser/favicon_service.h"
20 #include "chrome/browser/find_bar_state.h" 21 #include "chrome/browser/find_bar_state.h"
21 #include "chrome/browser/geolocation/geolocation_content_settings_map.h" 22 #include "chrome/browser/geolocation/geolocation_content_settings_map.h"
22 #include "chrome/browser/geolocation/geolocation_permission_context.h" 23 #include "chrome/browser/geolocation/geolocation_permission_context.h"
23 #include "chrome/browser/history/history.h" 24 #include "chrome/browser/history/history.h"
24 #include "chrome/browser/history/history_backend.h" 25 #include "chrome/browser/history/history_backend.h"
25 #include "chrome/browser/history/top_sites.h" 26 #include "chrome/browser/history/top_sites.h"
26 #include "chrome/browser/host_content_settings_map.h" 27 #include "chrome/browser/host_content_settings_map.h"
27 #include "chrome/browser/in_process_webkit/webkit_context.h" 28 #include "chrome/browser/in_process_webkit/webkit_context.h"
28 #include "chrome/browser/net/gaia/token_service.h" 29 #include "chrome/browser/net/gaia/token_service.h"
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 } 160 }
160 161
161 private: 162 private:
162 scoped_refptr<URLRequestContext> context_; 163 scoped_refptr<URLRequestContext> context_;
163 }; 164 };
164 165
165 } // namespace 166 } // namespace
166 167
167 TestingProfile::TestingProfile() 168 TestingProfile::TestingProfile()
168 : start_time_(Time::Now()), 169 : start_time_(Time::Now()),
170 testing_prefs_(NULL),
169 created_theme_provider_(false), 171 created_theme_provider_(false),
170 has_history_service_(false), 172 has_history_service_(false),
171 off_the_record_(false), 173 off_the_record_(false),
172 last_session_exited_cleanly_(true) { 174 last_session_exited_cleanly_(true) {
173 if (!temp_dir_.CreateUniqueTempDir()) { 175 if (!temp_dir_.CreateUniqueTempDir()) {
174 LOG(ERROR) << "Failed to create unique temporary directory."; 176 LOG(ERROR) << "Failed to create unique temporary directory.";
175 177
176 // Fallback logic in case we fail to create unique temporary directory. 178 // Fallback logic in case we fail to create unique temporary directory.
177 FilePath system_tmp_dir; 179 FilePath system_tmp_dir;
178 bool success = PathService::Get(base::DIR_TEMP, &system_tmp_dir); 180 bool success = PathService::Get(base::DIR_TEMP, &system_tmp_dir);
(...skipping 21 matching lines...) Expand all
200 NotificationType::PROFILE_DESTROYED, 202 NotificationType::PROFILE_DESTROYED,
201 Source<Profile>(this), 203 Source<Profile>(this),
202 NotificationService::NoDetails()); 204 NotificationService::NoDetails());
203 DestroyHistoryService(); 205 DestroyHistoryService();
204 // FaviconService depends on HistoryServce so destroying it later. 206 // FaviconService depends on HistoryServce so destroying it later.
205 DestroyFaviconService(); 207 DestroyFaviconService();
206 DestroyWebDataService(); 208 DestroyWebDataService();
207 if (top_sites_.get()) 209 if (top_sites_.get())
208 top_sites_->ClearProfile(); 210 top_sites_->ClearProfile();
209 history::TopSites::DeleteTopSites(top_sites_); 211 history::TopSites::DeleteTopSites(top_sites_);
212 if (extensions_service_.get()) {
213 extensions_service_->DestroyingProfile();
214 extensions_service_ = NULL;
215 }
210 } 216 }
211 217
212 void TestingProfile::CreateFaviconService() { 218 void TestingProfile::CreateFaviconService() {
213 favicon_service_ = NULL; 219 favicon_service_ = NULL;
214 favicon_service_ = new FaviconService(this); 220 favicon_service_ = new FaviconService(this);
215 } 221 }
216 222
217 void TestingProfile::CreateHistoryService(bool delete_file, bool no_db) { 223 void TestingProfile::CreateHistoryService(bool delete_file, bool no_db) {
218 if (history_service_.get()) 224 if (history_service_.get())
219 history_service_->Cleanup(); 225 history_service_->Cleanup();
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 void TestingProfile::CreateTemplateURLModel() { 314 void TestingProfile::CreateTemplateURLModel() {
309 template_url_model_.reset(new TemplateURLModel(this)); 315 template_url_model_.reset(new TemplateURLModel(this));
310 } 316 }
311 317
312 void TestingProfile::UseThemeProvider(BrowserThemeProvider* theme_provider) { 318 void TestingProfile::UseThemeProvider(BrowserThemeProvider* theme_provider) {
313 theme_provider->Init(this); 319 theme_provider->Init(this);
314 created_theme_provider_ = true; 320 created_theme_provider_ = true;
315 theme_provider_.reset(theme_provider); 321 theme_provider_.reset(theme_provider);
316 } 322 }
317 323
324 scoped_refptr<ExtensionsService> TestingProfile::CreateExtensionsService(
325 const CommandLine* command_line,
326 const FilePath& install_directory) {
327 extensions_service_ = new ExtensionsService(this,
328 command_line,
329 install_directory,
330 false);
331 return extensions_service_;
332 }
333
318 FilePath TestingProfile::GetPath() { 334 FilePath TestingProfile::GetPath() {
319 DCHECK(temp_dir_.IsValid()); // TODO(phajdan.jr): do it better. 335 DCHECK(temp_dir_.IsValid()); // TODO(phajdan.jr): do it better.
320 return temp_dir_.path(); 336 return temp_dir_.path();
321 } 337 }
322 338
323 TestingPrefService* TestingProfile::GetTestingPrefService() { 339 TestingPrefService* TestingProfile::GetTestingPrefService() {
324 return static_cast<TestingPrefService*>(GetPrefs()); 340 if (!prefs_.get())
341 CreateTestingPrefService();
342 DCHECK(testing_prefs_);
343 return testing_prefs_;
325 } 344 }
326 345
327 webkit_database::DatabaseTracker* TestingProfile::GetDatabaseTracker() { 346 webkit_database::DatabaseTracker* TestingProfile::GetDatabaseTracker() {
328 if (!db_tracker_) 347 if (!db_tracker_)
329 db_tracker_ = new webkit_database::DatabaseTracker(GetPath(), false); 348 db_tracker_ = new webkit_database::DatabaseTracker(GetPath(), false);
330 return db_tracker_; 349 return db_tracker_;
331 } 350 }
332 351
352 ExtensionsService* TestingProfile::GetExtensionsService() {
353 return extensions_service_.get();
354 }
355
333 net::CookieMonster* TestingProfile::GetCookieMonster() { 356 net::CookieMonster* TestingProfile::GetCookieMonster() {
334 if (!GetRequestContext()) 357 if (!GetRequestContext())
335 return NULL; 358 return NULL;
336 return GetRequestContext()->GetCookieStore()->GetCookieMonster(); 359 return GetRequestContext()->GetCookieStore()->GetCookieMonster();
337 } 360 }
338 361
339 void TestingProfile::InitThemes() { 362 void TestingProfile::InitThemes() {
340 if (!created_theme_provider_) { 363 if (!created_theme_provider_) {
341 #if defined(OS_LINUX) && !defined(TOOLKIT_VIEWS) 364 #if defined(OS_LINUX) && !defined(TOOLKIT_VIEWS)
342 theme_provider_.reset(new GtkThemeProvider); 365 theme_provider_.reset(new GtkThemeProvider);
343 #else 366 #else
344 theme_provider_.reset(new BrowserThemeProvider); 367 theme_provider_.reset(new BrowserThemeProvider);
345 #endif 368 #endif
346 theme_provider_->Init(this); 369 theme_provider_->Init(this);
347 created_theme_provider_ = true; 370 created_theme_provider_ = true;
348 } 371 }
349 } 372 }
350 373
374 void TestingProfile::SetPrefService(PrefService* prefs) {
375 DCHECK(!prefs_.get());
376 prefs_.reset(prefs);
377 }
378
379 void TestingProfile::CreateTestingPrefService() {
380 DCHECK(!prefs_.get());
381 testing_prefs_ = new TestingPrefService();
382 prefs_.reset(testing_prefs_);
383 Profile::RegisterUserPrefs(prefs_.get());
384 browser::RegisterAllPrefs(prefs_.get(), prefs_.get());
385 }
386
351 PrefService* TestingProfile::GetPrefs() { 387 PrefService* TestingProfile::GetPrefs() {
352 if (!prefs_.get()) { 388 if (!prefs_.get()) {
353 prefs_.reset(new TestingPrefService()); 389 CreateTestingPrefService();
354 Profile::RegisterUserPrefs(prefs_.get());
355 browser::RegisterAllPrefs(prefs_.get(), prefs_.get());
356 } 390 }
357 return prefs_.get(); 391 return prefs_.get();
358 } 392 }
359 393
360 history::TopSites* TestingProfile::GetTopSites() { 394 history::TopSites* TestingProfile::GetTopSites() {
361 if (!top_sites_.get()) { 395 if (!top_sites_.get()) {
362 top_sites_ = new history::TopSites(this); 396 top_sites_ = new history::TopSites(this);
363 FilePath file_name = temp_dir_.path().AppendASCII("TopSites.db"); 397 FilePath file_name = temp_dir_.path().AppendASCII("TopSites.db");
364 top_sites_->Init(file_name); 398 top_sites_->Init(file_name);
365 } 399 }
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 } 501 }
468 return profile_sync_service_.get(); 502 return profile_sync_service_.get();
469 } 503 }
470 504
471 void TestingProfile::DestroyWebDataService() { 505 void TestingProfile::DestroyWebDataService() {
472 if (!web_data_service_.get()) 506 if (!web_data_service_.get())
473 return; 507 return;
474 508
475 web_data_service_->Shutdown(); 509 web_data_service_->Shutdown();
476 } 510 }
OLDNEW
« no previous file with comments | « chrome/test/testing_profile.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698