| Index: chrome/browser/thumbnails/thumbnail_service_impl.cc
|
| diff --git a/chrome/browser/thumbnails/thumbnail_service_impl.cc b/chrome/browser/thumbnails/thumbnail_service_impl.cc
|
| index 21f7227925edeb7253ad9e1f1d3f713835f11d28..ab3ef6273a8a2de41c9f51b5f33e55d473cb4cb3 100644
|
| --- a/chrome/browser/thumbnails/thumbnail_service_impl.cc
|
| +++ b/chrome/browser/thumbnails/thumbnail_service_impl.cc
|
| @@ -4,10 +4,14 @@
|
|
|
| #include "chrome/browser/thumbnails/thumbnail_service_impl.h"
|
|
|
| +#include "base/command_line.h"
|
| #include "base/memory/ref_counted_memory.h"
|
| #include "chrome/browser/history/history_service.h"
|
| +#include "chrome/browser/search/search.h"
|
| +#include "chrome/browser/thumbnails/content_based_thumbnailing_algorithm.h"
|
| #include "chrome/browser/thumbnails/simple_thumbnail_crop.h"
|
| #include "chrome/browser/thumbnails/thumbnailing_context.h"
|
| +#include "chrome/common/chrome_switches.h"
|
|
|
| namespace {
|
|
|
| @@ -15,12 +19,22 @@ namespace {
|
| const int kThumbnailWidth = 212;
|
| const int kThumbnailHeight = 132;
|
|
|
| +// True if thumbnail retargeting feature is enabled (Finch/flags).
|
| +bool IsThumbnailRetargetingEnabled() {
|
| + if (!chrome::IsInstantExtendedAPIEnabled())
|
| + return false;
|
| +
|
| + return CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kEnableThumbnailRetargeting);
|
| +}
|
| +
|
| }
|
|
|
| namespace thumbnails {
|
|
|
| ThumbnailServiceImpl::ThumbnailServiceImpl(Profile* profile)
|
| - : top_sites_(profile->GetTopSites()) {
|
| + : top_sites_(profile->GetTopSites()),
|
| + use_thumbnail_retargeting_(IsThumbnailRetargetingEnabled()){
|
| }
|
|
|
| ThumbnailServiceImpl::~ThumbnailServiceImpl() {
|
| @@ -47,7 +61,10 @@ bool ThumbnailServiceImpl::GetPageThumbnail(
|
|
|
| ThumbnailingAlgorithm* ThumbnailServiceImpl::GetThumbnailingAlgorithm()
|
| const {
|
| - return new SimpleThumbnailCrop(gfx::Size(kThumbnailWidth, kThumbnailHeight));
|
| + const gfx::Size thumbnail_size(kThumbnailWidth, kThumbnailHeight);
|
| + if (use_thumbnail_retargeting_)
|
| + return new ContentBasedThumbnailingAlgorithm(thumbnail_size);
|
| + return new SimpleThumbnailCrop(thumbnail_size);
|
| }
|
|
|
| bool ThumbnailServiceImpl::ShouldAcquirePageThumbnail(const GURL& url) {
|
| @@ -84,4 +101,4 @@ void ThumbnailServiceImpl::ShutdownOnUIThread() {
|
| top_sites_ = NULL;
|
| }
|
|
|
| -}
|
| +} // namespace thumbnails
|
|
|