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 |