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

Unified Diff: chrome/browser/history/top_sites.cc

Issue 6389001: Add heuristics to skip thumbnail generation when it's unnecessary. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix debug unit tests Created 9 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/history/top_sites.h ('k') | chrome/browser/history/top_sites_cache.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/history/top_sites.cc
diff --git a/chrome/browser/history/top_sites.cc b/chrome/browser/history/top_sites.cc
index 668c4df50e0e98d0f767663733edfb86b3f268ca..328ca77bb9e64b79689d3cebec99aa0aa1ff89d6 100644
--- a/chrome/browser/history/top_sites.cc
+++ b/chrome/browser/history/top_sites.cc
@@ -127,7 +127,7 @@ class LoadThumbnailsFromHistoryTask : public HistoryDBTask {
} // namespace
TopSites::TopSites(Profile* profile)
- : backend_(new TopSitesBackend()),
+ : backend_(NULL),
cache_(new TopSitesCache()),
thread_safe_cache_(new TopSitesCache()),
profile_(profile),
@@ -154,6 +154,7 @@ TopSites::TopSites(Profile* profile)
}
void TopSites::Init(const FilePath& db_name) {
+ backend_ = new TopSitesBackend;
satorux1 2011/01/26 10:53:59 Moved instantiation here.
brettw 2011/01/26 16:40:32 Can you add a comment why it's here rather than in
satorux1 2011/01/27 02:02:11 Good point. Added a comment.
backend_->Init(db_name);
backend_->GetMostVisitedThumbnails(
&cancelable_consumer_,
@@ -181,8 +182,8 @@ bool TopSites::SetPageThumbnail(const GURL& url,
}
bool add_temp_thumbnail = false;
- if (!cache_->IsKnownURL(url)) {
- if (cache_->top_sites().size() < kTopSitesNumber) {
+ if (!IsKnownURL(url)) {
+ if (!IsFull()) {
add_temp_thumbnail = true;
} else {
return false; // This URL is not known to us.
@@ -237,6 +238,13 @@ bool TopSites::GetPageThumbnail(const GURL& url,
return thread_safe_cache_->GetPageThumbnail(url, bytes);
}
+bool TopSites::GetPageThumbnailScore(const GURL& url,
+ ThumbnailScore* score) {
+ // WARNING: this may be invoked on any thread.
+ base::AutoLock lock(lock_);
+ return thread_safe_cache_->GetPageThumbnailScore(url, score);
+}
+
// Returns the index of |url| in |urls|, or -1 if not found.
static int IndexOf(const MostVisitedURLList& urls, const GURL& url) {
for (size_t i = 0; i < urls.size(); i++) {
@@ -449,6 +457,14 @@ CancelableRequestProvider::Handle TopSites::StartQueryForMostVisited() {
return 0;
}
+bool TopSites::IsKnownURL(const GURL& url) {
+ return loaded_ && cache_->IsKnownURL(url);
+}
+
+bool TopSites::IsFull() {
+ return loaded_ && cache_->top_sites().size() >= kTopSitesNumber;
+}
+
TopSites::~TopSites() {
}
@@ -724,7 +740,7 @@ void TopSites::Observe(NotificationType type,
}
StartQueryForMostVisited();
} else if (type == NotificationType::NAV_ENTRY_COMMITTED) {
- if (cache_->top_sites().size() < kTopSitesNumber) {
+ if (!IsFull()) {
NavigationController::LoadCommittedDetails* load_details =
Details<NavigationController::LoadCommittedDetails>(details).ptr();
if (!load_details)
« no previous file with comments | « chrome/browser/history/top_sites.h ('k') | chrome/browser/history/top_sites_cache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698