diff options
author | tburkard@chromium.org <tburkard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-06 15:40:10 +0000 |
---|---|---|
committer | tburkard@chromium.org <tburkard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-06 15:40:10 +0000 |
commit | e6a7869b1da2bc092f887ea0c3839f33d1638564 (patch) | |
tree | 1e652cd6bf4565a0a7196c8ce8769a1e20feab68 /chrome/browser | |
parent | 27dec6f808c4a93b100f266c31dd0946141b419b (diff) | |
download | chromium_src-e6a7869b1da2bc092f887ea0c3839f33d1638564.zip chromium_src-e6a7869b1da2bc092f887ea0c3839f33d1638564.tar.gz chromium_src-e6a7869b1da2bc092f887ea0c3839f33d1638564.tar.bz2 |
B0;136;0cRe-enable TopSites in PrerenderManager, this time duplicating the invariant
observed in NTP (browser must have started).
R=sky, cbentzel
Review URL: http://codereview.chromium.org/7828023
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99741 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/history/top_sites.cc | 2 | ||||
-rw-r--r-- | chrome/browser/prerender/prerender_manager.cc | 20 | ||||
-rw-r--r-- | chrome/browser/prerender/prerender_manager.h | 2 | ||||
-rw-r--r-- | chrome/browser/prerender/prerender_tab_helper.cc | 2 | ||||
-rw-r--r-- | chrome/browser/prerender/prerender_tab_helper.h | 2 |
5 files changed, 9 insertions, 19 deletions
diff --git a/chrome/browser/history/top_sites.cc b/chrome/browser/history/top_sites.cc index 25e333b..99b84dc 100644 --- a/chrome/browser/history/top_sites.cc +++ b/chrome/browser/history/top_sites.cc @@ -164,6 +164,8 @@ TopSites::TopSites(Profile* profile) profile_->GetPrefs()->GetDictionary(prefs::kNTPMostVisitedURLsBlacklist); pinned_urls_ = profile_->GetPrefs()->GetDictionary(prefs::kNTPMostVisitedPinnedURLs); + DCHECK(blacklist_ != NULL); + DCHECK(pinned_urls_ != NULL); } void TopSites::Init(const FilePath& db_name) { diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc index a1ab410..4e73530 100644 --- a/chrome/browser/prerender/prerender_manager.cc +++ b/chrome/browser/prerender/prerender_manager.cc @@ -173,19 +173,6 @@ class PrerenderManager::MostVisitedSites : public NotificationObserver { public: explicit MostVisitedSites(Profile* profile) : profile_(profile) { - // If TopSites is already loaded, we will want to use it right away. - // Otherwise, wait for three seconds to avoid race conditions. - // This is a hack to ensure unit tests don't fail. - // See http://crbug.com/94654 - if (profile && profile->GetTopSitesWithoutCreating()) { - Init(); - } else { - timer_.Start(FROM_HERE, base::TimeDelta::FromSeconds(3), this, - &prerender::PrerenderManager::MostVisitedSites::Init); - } - } - - void Init() { history::TopSites* top_sites = GetTopSites(); if (top_sites) { registrar_.Add(this, chrome::NOTIFICATION_TOP_SITES_CHANGED, @@ -234,11 +221,12 @@ class PrerenderManager::MostVisitedSites : public NotificationObserver { Profile* profile_; NotificationRegistrar registrar_; std::set<GURL> urls_; - base::OneShotTimer<prerender::PrerenderManager::MostVisitedSites> timer_; }; -bool PrerenderManager::IsTopSite(const GURL& url) const { - return most_visited_.get() && most_visited_->IsTopSite(url); +bool PrerenderManager::IsTopSite(const GURL& url) { + if (!most_visited_.get()) + most_visited_.reset(new MostVisitedSites(profile_)); + return most_visited_->IsTopSite(url); } PrerenderManager::PrerenderManager(Profile* profile, diff --git a/chrome/browser/prerender/prerender_manager.h b/chrome/browser/prerender/prerender_manager.h index 23d4e16..8566b85 100644 --- a/chrome/browser/prerender/prerender_manager.h +++ b/chrome/browser/prerender/prerender_manager.h @@ -204,7 +204,7 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>, // Adds a condition. This is owned by the PrerenderManager. void AddCondition(const PrerenderCondition* condition); - bool IsTopSite(const GURL& url) const; + bool IsTopSite(const GURL& url); protected: // Test that needs needs access to internal functions. diff --git a/chrome/browser/prerender/prerender_tab_helper.cc b/chrome/browser/prerender/prerender_tab_helper.cc index b368032..0609502 100644 --- a/chrome/browser/prerender/prerender_tab_helper.cc +++ b/chrome/browser/prerender/prerender_tab_helper.cc @@ -310,7 +310,7 @@ void PrerenderTabHelper::MaybeLogCurrentHover(bool was_used) { current_hover_url_ = GURL(); } -bool PrerenderTabHelper::IsTopSite(const GURL& url) const { +bool PrerenderTabHelper::IsTopSite(const GURL& url) { PrerenderManager* pm = MaybeGetPrerenderManager(); return (pm && pm->IsTopSite(url)); } diff --git a/chrome/browser/prerender/prerender_tab_helper.h b/chrome/browser/prerender/prerender_tab_helper.h index 5e7a07b..344cdfa 100644 --- a/chrome/browser/prerender/prerender_tab_helper.h +++ b/chrome/browser/prerender/prerender_tab_helper.h @@ -61,7 +61,7 @@ class PrerenderTabHelper : public TabContentsObserver { // Also resets the hover to no hover. void MaybeLogCurrentHover(bool was_used); - bool IsTopSite(const GURL& url) const; + bool IsTopSite(const GURL& url); // TabContentsWrapper we're created for. TabContentsWrapper* tab_; |