| Index: chrome/test/base/testing_profile.cc
|
| diff --git a/chrome/test/base/testing_profile.cc b/chrome/test/base/testing_profile.cc
|
| index e3de282a58aaacee7e01e4e97bd84cf1c71171f3..d4451891cb919bfd7bcef2979db53e19569f2698 100644
|
| --- a/chrome/test/base/testing_profile.cc
|
| +++ b/chrome/test/base/testing_profile.cc
|
| @@ -28,6 +28,8 @@
|
| #include "chrome/browser/history/history_service.h"
|
| #include "chrome/browser/history/history_service_factory.h"
|
| #include "chrome/browser/history/top_sites.h"
|
| +#include "chrome/browser/history/top_sites_impl.h"
|
| +#include "chrome/browser/history/top_sites_factory.h"
|
| #include "chrome/browser/history/web_history_service_factory.h"
|
| #include "chrome/browser/net/pref_proxy_config_tracker.h"
|
| #include "chrome/browser/net/proxy_service_factory.h"
|
| @@ -223,9 +225,10 @@ KeyedService* BuildChromeBookmarkClient(
|
| KeyedService* BuildChromeHistoryClient(
|
| content::BrowserContext* context) {
|
| Profile* profile = static_cast<Profile*>(context);
|
| + scoped_refptr<history::TopSites> top_sites =
|
| + TopSitesFactory::GetForProfile(profile);
|
| return new ChromeHistoryClient(BookmarkModelFactory::GetForProfile(profile),
|
| - profile,
|
| - profile->GetTopSites());
|
| + profile, top_sites);
|
| }
|
|
|
| void TestProfileErrorCallback(WebDataServiceWrapper::ErrorType error_type,
|
| @@ -243,6 +246,14 @@ KeyedService* BuildWebDataService(content::BrowserContext* context) {
|
| &TestProfileErrorCallback);
|
| }
|
|
|
| +scoped_refptr<RefcountedKeyedService> BuildTopSites(
|
| + content::BrowserContext* profile) {
|
| + history::TopSitesImpl* top_sites =
|
| + new history::TopSitesImpl(static_cast<Profile*>(profile));
|
| + top_sites->Init(profile->GetPath().Append(chrome::kTopSitesFilename));
|
| + return make_scoped_refptr(top_sites);
|
| +}
|
| +
|
| } // namespace
|
|
|
| // static
|
| @@ -453,6 +464,8 @@ void TestingProfile::Init() {
|
| this, CreateTestDesktopNotificationService);
|
| #endif
|
|
|
| + CreateTopSites();
|
| +
|
| #if defined(ENABLE_SUPERVISED_USERS)
|
| if (!IsOffTheRecord()) {
|
| SupervisedUserSettingsService* settings_service =
|
| @@ -498,8 +511,6 @@ TestingProfile::~TestingProfile() {
|
| if (host_content_settings_map_.get())
|
| host_content_settings_map_->ShutdownOnUIThread();
|
|
|
| - DestroyTopSites();
|
| -
|
| if (pref_proxy_config_tracker_.get())
|
| pref_proxy_config_tracker_->DetachFromPrefService();
|
| // Failing a post == leaks == heapcheck failure. Make that an immediate test
|
| @@ -570,26 +581,7 @@ void TestingProfile::DestroyHistoryService() {
|
| }
|
|
|
| void TestingProfile::CreateTopSites() {
|
| - DestroyTopSites();
|
| - top_sites_ = history::TopSites::Create(
|
| - this, GetPath().Append(chrome::kTopSitesFilename));
|
| -}
|
| -
|
| -void TestingProfile::SetTopSites(history::TopSites* top_sites) {
|
| - DestroyTopSites();
|
| - top_sites_ = top_sites;
|
| -}
|
| -
|
| -void TestingProfile::DestroyTopSites() {
|
| - if (top_sites_.get()) {
|
| - top_sites_->Shutdown();
|
| - top_sites_ = NULL;
|
| - // TopSitesImpl::Shutdown schedules some tasks (from TopSitesBackend) that
|
| - // need to be run to properly shutdown. Run all pending tasks now. This is
|
| - // normally handled by browser_process shutdown.
|
| - if (base::MessageLoop::current())
|
| - base::MessageLoop::current()->RunUntilIdle();
|
| - }
|
| + TopSitesFactory::GetInstance()->SetTestingFactory(this, BuildTopSites);
|
| }
|
|
|
| void TestingProfile::CreateBookmarkModel(bool delete_file) {
|
| @@ -634,9 +626,11 @@ void TestingProfile::BlockUntilTopSitesLoaded() {
|
| scoped_refptr<content::MessageLoopRunner> runner =
|
| new content::MessageLoopRunner;
|
| WaitTopSitesLoadedObserver observer(runner.get());
|
| - top_sites_->AddObserver(&observer);
|
| + scoped_refptr<history::TopSites> top_sites =
|
| + TopSitesFactory::GetForProfile(this);
|
| + top_sites->AddObserver(&observer);
|
| runner->Run();
|
| - top_sites_->RemoveObserver(&observer);
|
| + top_sites->RemoveObserver(&observer);
|
| }
|
|
|
| void TestingProfile::SetGuestSession(bool guest) {
|
| @@ -794,14 +788,6 @@ PrefService* TestingProfile::GetPrefs() {
|
| return prefs_.get();
|
| }
|
|
|
| -history::TopSites* TestingProfile::GetTopSites() {
|
| - return top_sites_.get();
|
| -}
|
| -
|
| -history::TopSites* TestingProfile::GetTopSitesWithoutCreating() {
|
| - return top_sites_.get();
|
| -}
|
| -
|
| DownloadManagerDelegate* TestingProfile::GetDownloadManagerDelegate() {
|
| return NULL;
|
| }
|
|
|