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

Unified Diff: chrome/browser/ui/webui/large_icon_source.cc

Issue 1092873002: [Icons NTP] Refactor large_icon_source to extract the logic shared between desktop and Android to f… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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
Index: chrome/browser/ui/webui/large_icon_source.cc
diff --git a/chrome/browser/ui/webui/large_icon_source.cc b/chrome/browser/ui/webui/large_icon_source.cc
index df1e285f6c307e717c86b2056980cffeed9f7785..b073c9787ee641e0820c72ba4e5f75bccd3e6733 100644
--- a/chrome/browser/ui/webui/large_icon_source.cc
+++ b/chrome/browser/ui/webui/large_icon_source.cc
@@ -13,15 +13,12 @@
#include "components/favicon_base/fallback_icon_style.h"
#include "net/url_request/url_request.h"
#include "third_party/skia/include/core/SkColor.h"
-#include "ui/gfx/color_analysis.h"
-#include "ui/gfx/color_utils.h"
namespace {
const int kDefaultLargeIconSize = 96;
const int kMaxLargeIconSize = 192; // Arbitrary bound to safeguard endpoint.
-const double kMaxBackgroundLuminance = 0.67;
const SkColor kDarkGray = SkColorSetRGB(0x78, 0x78, 0x78);
const SkColor kTextColor = SK_ColorWHITE;
const SkColor kDefaultBackgroundColor = kDarkGray;
@@ -48,9 +45,6 @@ LargeIconSource::LargeIconSource(
favicon::FallbackIconService* fallback_icon_service)
: favicon_service_(favicon_service),
fallback_icon_service_(fallback_icon_service) {
- large_icon_types_.push_back(favicon_base::IconType::FAVICON);
- large_icon_types_.push_back(favicon_base::IconType::TOUCH_ICON);
- large_icon_types_.push_back(favicon_base::IconType::TOUCH_PRECOMPOSED_ICON);
}
LargeIconSource::~LargeIconSource() {
@@ -85,9 +79,8 @@ void LargeIconSource::StartDataRequest(
return;
}
- favicon_service_->GetLargestRawFaviconForPageURL(
+ favicon_service_->getLargeIcon(
huangs 2015/04/17 03:55:17 NIT: GetLargeIcon()
beaudoin 2015/04/17 14:50:52 Done.
url,
- large_icon_types_,
parser.size_in_pixels(),
base::Bind(
&LargeIconSource::OnIconDataAvailable,
@@ -117,30 +110,18 @@ bool LargeIconSource::ShouldServiceRequest(
void LargeIconSource::OnIconDataAvailable(
const IconRequest& request,
- const favicon_base::FaviconRawBitmapResult& bitmap_result) {
- if (!bitmap_result.is_valid()) {
- SendDefaultFallbackIcon(request);
+ const favicon_base::LargeIconResult& result) {
+ if (result.bitmap.is_valid()) {
+ request.callback.Run(result.bitmap.bitmap_data.get());
return;
}
- // If we found a bitmap, but it's smaller than the requested size, we
- // generate a fallback using the dominant color from the too-small bitmap.
- // We adjust the luminance of the background so we can put light text over it.
- if (bitmap_result.pixel_size.width() < request.size ||
- bitmap_result.pixel_size.height() < request.size) {
- SkColor background =
- color_utils::CalculateKMeanColorOfPNG(bitmap_result.bitmap_data);
- color_utils::HSL background_hsl;
- color_utils::SkColorToHSL(background, &background_hsl);
- background_hsl.l = std::min(background_hsl.l, kMaxBackgroundLuminance);
- background = color_utils::HSLToSkColor(background_hsl, SK_AlphaOPAQUE);
-
- // Now we can construct the fallback icon.
- SendFallbackIcon(request, kTextColor, background);
+ if (result.is_color_valid()) {
+ SendFallbackIcon(request, kTextColor, result.dominant_color);
return;
}
- request.callback.Run(bitmap_result.bitmap_data.get());
+ SendDefaultFallbackIcon(request);
}
void LargeIconSource::SendDefaultFallbackIcon(const IconRequest& request) {

Powered by Google App Engine
This is Rietveld 408576698