| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 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" |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 #include "chrome/browser/ui/find_bar/find_bar_state.h" | 44 #include "chrome/browser/ui/find_bar/find_bar_state.h" |
| 45 #include "chrome/browser/ui/webui/chrome_url_data_manager.h" | 45 #include "chrome/browser/ui/webui/chrome_url_data_manager.h" |
| 46 #include "chrome/common/chrome_constants.h" | 46 #include "chrome/common/chrome_constants.h" |
| 47 #include "chrome/common/chrome_notification_types.h" | 47 #include "chrome/common/chrome_notification_types.h" |
| 48 #include "chrome/common/url_constants.h" | 48 #include "chrome/common/url_constants.h" |
| 49 #include "chrome/test/bookmark_load_observer.h" | 49 #include "chrome/test/bookmark_load_observer.h" |
| 50 #include "chrome/test/test_url_request_context_getter.h" | 50 #include "chrome/test/test_url_request_context_getter.h" |
| 51 #include "chrome/test/testing_pref_service.h" | 51 #include "chrome/test/testing_pref_service.h" |
| 52 #include "chrome/test/ui_test_utils.h" | 52 #include "chrome/test/ui_test_utils.h" |
| 53 #include "content/browser/browser_thread.h" | 53 #include "content/browser/browser_thread.h" |
| 54 #include "content/browser/file_system/browser_file_system_helper.h" |
| 54 #include "content/browser/in_process_webkit/webkit_context.h" | 55 #include "content/browser/in_process_webkit/webkit_context.h" |
| 55 #include "content/browser/mock_resource_context.h" | 56 #include "content/browser/mock_resource_context.h" |
| 56 #include "content/common/notification_service.h" | 57 #include "content/common/notification_service.h" |
| 57 #include "net/base/cookie_monster.h" | 58 #include "net/base/cookie_monster.h" |
| 58 #include "net/url_request/url_request_context.h" | 59 #include "net/url_request/url_request_context.h" |
| 59 #include "net/url_request/url_request_context_getter.h" | 60 #include "net/url_request/url_request_context_getter.h" |
| 60 #include "net/url_request/url_request_test_util.h" | 61 #include "net/url_request/url_request_test_util.h" |
| 61 #include "testing/gmock/include/gmock/gmock.h" | 62 #include "testing/gmock/include/gmock/gmock.h" |
| 62 #include "webkit/database/database_tracker.h" | 63 #include "webkit/database/database_tracker.h" |
| 63 #include "webkit/fileapi/file_system_context.h" | 64 #include "webkit/fileapi/file_system_context.h" |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 114 } | 115 } |
| 115 | 116 |
| 116 private: | 117 private: |
| 117 scoped_refptr<net::URLRequestContext> context_; | 118 scoped_refptr<net::URLRequestContext> context_; |
| 118 }; | 119 }; |
| 119 | 120 |
| 120 ProfileKeyedService* CreateTestDesktopNotificationService(Profile* profile) { | 121 ProfileKeyedService* CreateTestDesktopNotificationService(Profile* profile) { |
| 121 return new DesktopNotificationService(profile, NULL); | 122 return new DesktopNotificationService(profile, NULL); |
| 122 } | 123 } |
| 123 | 124 |
| 125 void CreateResourceContextOnIOThread() { |
| 126 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 127 content::MockResourceContext::GetInstance(); |
| 128 }; |
| 129 |
| 124 } // namespace | 130 } // namespace |
| 125 | 131 |
| 126 TestingProfile::TestingProfile() | 132 TestingProfile::TestingProfile() |
| 127 : start_time_(Time::Now()), | 133 : start_time_(Time::Now()), |
| 128 testing_prefs_(NULL), | 134 testing_prefs_(NULL), |
| 129 incognito_(false), | 135 incognito_(false), |
| 130 last_session_exited_cleanly_(true), | 136 last_session_exited_cleanly_(true), |
| 137 appcache_service_init_finished_(false), |
| 131 profile_dependency_manager_(ProfileDependencyManager::GetInstance()) { | 138 profile_dependency_manager_(ProfileDependencyManager::GetInstance()) { |
| 132 #ifndef NDEBUG | 139 #ifndef NDEBUG |
| 133 profile_dependency_manager_->ProfileNowExists(this); | 140 profile_dependency_manager_->ProfileNowExists(this); |
| 134 #endif | 141 #endif |
| 135 | 142 |
| 136 if (!temp_dir_.CreateUniqueTempDir()) { | 143 if (!temp_dir_.CreateUniqueTempDir()) { |
| 137 LOG(ERROR) << "Failed to create unique temporary directory."; | 144 LOG(ERROR) << "Failed to create unique temporary directory."; |
| 138 | 145 |
| 139 // Fallback logic in case we fail to create unique temporary directory. | 146 // Fallback logic in case we fail to create unique temporary directory. |
| 140 FilePath system_tmp_dir; | 147 FilePath system_tmp_dir; |
| (...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 385 } | 392 } |
| 386 | 393 |
| 387 bool TestingProfile::HasOffTheRecordProfile() { | 394 bool TestingProfile::HasOffTheRecordProfile() { |
| 388 return incognito_profile_.get() != NULL; | 395 return incognito_profile_.get() != NULL; |
| 389 } | 396 } |
| 390 | 397 |
| 391 Profile* TestingProfile::GetOriginalProfile() { | 398 Profile* TestingProfile::GetOriginalProfile() { |
| 392 return this; | 399 return this; |
| 393 } | 400 } |
| 394 | 401 |
| 395 void TestingProfile::SetAppCacheService( | 402 ChromeAppCacheService* TestingProfile::GetAppCacheService() { |
| 396 ChromeAppCacheService* appcache_service) { | 403 CreateQuotaManagerAndClients(); |
| 397 appcache_service_ = appcache_service; | 404 if (!appcache_service_init_finished_) { |
| 398 } | 405 // Ensure that this is posted before GetResourceContext() is called below, |
| 406 // otherwise it's entirely possible that things will be exploded. |
| 407 BrowserThread::PostTask( |
| 408 BrowserThread::IO, FROM_HERE, |
| 409 NewRunnableFunction(&CreateResourceContextOnIOThread)); |
| 399 | 410 |
| 400 ChromeAppCacheService* TestingProfile::GetAppCacheService() { | 411 BrowserThread::PostTask( |
| 412 BrowserThread::IO, FROM_HERE, |
| 413 NewRunnableMethod( |
| 414 appcache_service_.get(), |
| 415 &ChromeAppCacheService::InitializeOnIOThread, |
| 416 IsOffTheRecord() |
| 417 ? FilePath() : GetPath().Append(chrome::kAppCacheDirname), |
| 418 &GetResourceContext(), |
| 419 make_scoped_refptr(GetExtensionSpecialStoragePolicy()), |
| 420 false)); |
| 421 |
| 422 appcache_service_init_finished_ = true; |
| 423 } |
| 401 return appcache_service_.get(); | 424 return appcache_service_.get(); |
| 402 } | 425 } |
| 403 | 426 |
| 404 webkit_database::DatabaseTracker* TestingProfile::GetDatabaseTracker() { | 427 webkit_database::DatabaseTracker* TestingProfile::GetDatabaseTracker() { |
| 405 if (!db_tracker_) { | 428 CreateQuotaManagerAndClients(); |
| 406 db_tracker_ = new webkit_database::DatabaseTracker( | |
| 407 GetPath(), false, false, GetExtensionSpecialStoragePolicy(), | |
| 408 NULL, NULL); | |
| 409 } | |
| 410 return db_tracker_; | 429 return db_tracker_; |
| 411 } | 430 } |
| 412 | 431 |
| 413 VisitedLinkMaster* TestingProfile::GetVisitedLinkMaster() { | 432 VisitedLinkMaster* TestingProfile::GetVisitedLinkMaster() { |
| 414 return NULL; | 433 return NULL; |
| 415 } | 434 } |
| 416 | 435 |
| 417 ExtensionService* TestingProfile::GetExtensionService() { | 436 ExtensionService* TestingProfile::GetExtensionService() { |
| 418 return extension_service_.get(); | 437 return extension_service_.get(); |
| 419 } | 438 } |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 527 | 546 |
| 528 DownloadManager* TestingProfile::GetDownloadManager() { | 547 DownloadManager* TestingProfile::GetDownloadManager() { |
| 529 return NULL; | 548 return NULL; |
| 530 } | 549 } |
| 531 | 550 |
| 532 PersonalDataManager* TestingProfile::GetPersonalDataManager() { | 551 PersonalDataManager* TestingProfile::GetPersonalDataManager() { |
| 533 return NULL; | 552 return NULL; |
| 534 } | 553 } |
| 535 | 554 |
| 536 fileapi::FileSystemContext* TestingProfile::GetFileSystemContext() { | 555 fileapi::FileSystemContext* TestingProfile::GetFileSystemContext() { |
| 537 if (!file_system_context_) { | 556 CreateQuotaManagerAndClients(); |
| 538 file_system_context_ = new fileapi::FileSystemContext( | |
| 539 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE), | |
| 540 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO), | |
| 541 GetExtensionSpecialStoragePolicy(), | |
| 542 NULL, | |
| 543 GetPath(), | |
| 544 IsOffTheRecord(), | |
| 545 true, // Allow file access from files. | |
| 546 true, // Unlimited quota. | |
| 547 NULL); | |
| 548 } | |
| 549 return file_system_context_.get(); | 557 return file_system_context_.get(); |
| 550 } | 558 } |
| 551 | 559 |
| 552 quota::QuotaManager* TestingProfile::GetQuotaManager() { | 560 quota::QuotaManager* TestingProfile::GetQuotaManager() { |
| 553 return NULL; | 561 CreateQuotaManagerAndClients(); |
| 562 return quota_manager_.get(); |
| 563 } |
| 564 |
| 565 void TestingProfile::CreateQuotaManagerAndClients() { |
| 566 if (quota_manager_.get()) { |
| 567 DCHECK(appcache_service_.get()); |
| 568 DCHECK(db_tracker_.get()); |
| 569 DCHECK(file_system_context_.get()); |
| 570 DCHECK(webkit_context_.get()); |
| 571 return; |
| 572 } |
| 573 |
| 574 // All the clients have to be created and registered with the |
| 575 // quota manager prior to the manager being used. So, we do them |
| 576 // all together here prior to handing our a reference to anything |
| 577 // that uses the quota manager. |
| 578 quota_manager_ = new quota::QuotaManager( |
| 579 IsOffTheRecord(), |
| 580 GetPath(), |
| 581 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO), |
| 582 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB), |
| 583 GetExtensionSpecialStoragePolicy()); |
| 584 |
| 585 // Each consumer is responsible for registering its QuotaClient during |
| 586 // its construction. |
| 587 file_system_context_ = CreateFileSystemContext( |
| 588 GetPath(), IsOffTheRecord(), |
| 589 GetExtensionSpecialStoragePolicy(), |
| 590 quota_manager_->proxy()); |
| 591 db_tracker_ = new webkit_database::DatabaseTracker( |
| 592 GetPath(), IsOffTheRecord(), false, |
| 593 GetExtensionSpecialStoragePolicy(), |
| 594 quota_manager_->proxy(), |
| 595 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE)); |
| 596 webkit_context_ = new WebKitContext( |
| 597 IsOffTheRecord(), GetPath(), GetExtensionSpecialStoragePolicy(), |
| 598 false, quota_manager_->proxy(), |
| 599 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::WEBKIT)); |
| 600 appcache_service_ = new ChromeAppCacheService(quota_manager_->proxy()); |
| 554 } | 601 } |
| 555 | 602 |
| 556 BrowserSignin* TestingProfile::GetBrowserSignin() { | 603 BrowserSignin* TestingProfile::GetBrowserSignin() { |
| 557 return NULL; | 604 return NULL; |
| 558 } | 605 } |
| 559 | 606 |
| 560 bool TestingProfile::HasCreatedDownloadManager() const { | 607 bool TestingProfile::HasCreatedDownloadManager() const { |
| 561 return false; | 608 return false; |
| 562 } | 609 } |
| 563 | 610 |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 685 | 732 |
| 686 ProtocolHandlerRegistry* TestingProfile::GetProtocolHandlerRegistry() { | 733 ProtocolHandlerRegistry* TestingProfile::GetProtocolHandlerRegistry() { |
| 687 return protocol_handler_registry_.get(); | 734 return protocol_handler_registry_.get(); |
| 688 } | 735 } |
| 689 | 736 |
| 690 SpellCheckHost* TestingProfile::GetSpellCheckHost() { | 737 SpellCheckHost* TestingProfile::GetSpellCheckHost() { |
| 691 return NULL; | 738 return NULL; |
| 692 } | 739 } |
| 693 | 740 |
| 694 WebKitContext* TestingProfile::GetWebKitContext() { | 741 WebKitContext* TestingProfile::GetWebKitContext() { |
| 695 if (webkit_context_ == NULL) { | 742 CreateQuotaManagerAndClients(); |
| 696 webkit_context_ = new WebKitContext( | |
| 697 IsOffTheRecord(), GetPath(), | |
| 698 GetExtensionSpecialStoragePolicy(), | |
| 699 false, NULL, NULL); | |
| 700 } | |
| 701 return webkit_context_; | 743 return webkit_context_; |
| 702 } | 744 } |
| 703 | 745 |
| 704 WebKitContext* TestingProfile::GetOffTheRecordWebKitContext() { | 746 WebKitContext* TestingProfile::GetOffTheRecordWebKitContext() { |
| 705 return NULL; | 747 return NULL; |
| 706 } | 748 } |
| 707 | 749 |
| 708 FilePath TestingProfile::last_selected_directory() { | 750 FilePath TestingProfile::last_selected_directory() { |
| 709 return last_selected_directory_; | 751 return last_selected_directory_; |
| 710 } | 752 } |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 793 quota::SpecialStoragePolicy* TestingProfile::GetSpecialStoragePolicy() { | 835 quota::SpecialStoragePolicy* TestingProfile::GetSpecialStoragePolicy() { |
| 794 return GetExtensionSpecialStoragePolicy(); | 836 return GetExtensionSpecialStoragePolicy(); |
| 795 } | 837 } |
| 796 | 838 |
| 797 void TestingProfile::DestroyWebDataService() { | 839 void TestingProfile::DestroyWebDataService() { |
| 798 if (!web_data_service_.get()) | 840 if (!web_data_service_.get()) |
| 799 return; | 841 return; |
| 800 | 842 |
| 801 web_data_service_->Shutdown(); | 843 web_data_service_->Shutdown(); |
| 802 } | 844 } |
| OLD | NEW |