Chromium Code Reviews| Index: chrome/common/thumbnail_score.cc |
| diff --git a/chrome/common/thumbnail_score.cc b/chrome/common/thumbnail_score.cc |
| index dc7856d101be598c7bfc4bbf2a0a5c415a8f5e46..b136d2d06b907db9cf0f3d4b727b26350547932a 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,15 @@ bool ShouldReplaceThumbnailWith(const ThumbnailScore& current, |
| return current.boring_score >= ThumbnailScore::kThumbnailMaximumBoringness && |
| replacement.boring_score < ThumbnailScore::kThumbnailMaximumBoringness; |
| } |
| + |
| +bool ShouldGenerateThumbnail(const ThumbnailScore& current) { |
| + const TimeDelta time_elapsed = Time::Now() - current.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 < ThumbnailScore::kUpdateThumbnailTime && |
| + current.good_clipping && current.at_top && |
| + current.boring_score < |
| + ThumbnailScore::kThumbnailInterestingEnoughBoringness); |
| + return !new_and_interesting_enough; |
|
brettw
2011/01/26 05:55:20
Can you add a comment here like "We want to genera
satorux1
2011/01/26 08:14:46
Good point. Done.
|
| +} |