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

Unified Diff: chrome/common/thumbnail_score.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: add comments 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/common/thumbnail_score.h ('k') | chrome/common/thumbnail_score_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/thumbnail_score.cc
diff --git a/chrome/common/thumbnail_score.cc b/chrome/common/thumbnail_score.cc
index dc7856d101be598c7bfc4bbf2a0a5c415a8f5e46..f878e3100d0f9dea9b766b37dca7cb30be3e22f6 100644
--- a/chrome/common/thumbnail_score.cc
+++ b/chrome/common/thumbnail_score.cc
@@ -5,12 +5,15 @@
#include "chrome/common/thumbnail_score.h"
#include "base/logging.h"
+#include "base/stringprintf.h"
using base::Time;
using base::TimeDelta;
const TimeDelta ThumbnailScore::kUpdateThumbnailTime = TimeDelta::FromDays(1);
const double ThumbnailScore::kThumbnailMaximumBoringness = 0.94;
+// Per crbug.com/65936#c4, 91.83% of thumbnail scores are less than 0.70.
+const double ThumbnailScore::kThumbnailInterestingEnoughBoringness = 0.70;
const double ThumbnailScore::kThumbnailDegradePerHour = 0.01;
// Calculates a numeric score from traits about where a snapshot was
@@ -70,6 +73,16 @@ bool ThumbnailScore::Equals(const ThumbnailScore& rhs) const {
redirect_hops_from_dest == rhs.redirect_hops_from_dest;
}
+std::string ThumbnailScore::ToString() const {
+ return StringPrintf("boring_score: %f, at_top %d, good_clipping %d, "
+ "time_at_snapshot: %f, redirect_hops_from_dest: %d",
+ boring_score,
+ at_top,
+ good_clipping,
+ time_at_snapshot.ToDoubleT(),
+ redirect_hops_from_dest);
+}
+
bool ShouldReplaceThumbnailWith(const ThumbnailScore& current,
const ThumbnailScore& replacement) {
int current_type = GetThumbnailType(current.good_clipping, current.at_top);
@@ -116,3 +129,16 @@ bool ShouldReplaceThumbnailWith(const ThumbnailScore& current,
return current.boring_score >= ThumbnailScore::kThumbnailMaximumBoringness &&
replacement.boring_score < ThumbnailScore::kThumbnailMaximumBoringness;
}
+
+bool ThumbnailScore::ShouldConsiderUpdating() {
+ const TimeDelta time_elapsed = Time::Now() - time_at_snapshot;
+ // Consider the current thumbnail to be new and interesting enough if
+ // the following critera are met.
+ const bool new_and_interesting_enough =
+ (time_elapsed < kUpdateThumbnailTime &&
+ good_clipping && at_top &&
+ boring_score < kThumbnailInterestingEnoughBoringness);
+ // We want to generate a new thumbnail when the current thumbnail is
+ // sufficiently old or uninteresting.
+ return !new_and_interesting_enough;
+}
« no previous file with comments | « chrome/common/thumbnail_score.h ('k') | chrome/common/thumbnail_score_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698