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

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

Issue 1596273003: [Android] Use fallback icon if there is no large favicon on the history page (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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
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 82ad0c473a711a66abe5aa4eb2eb190b7a6c269b..47d7c0663debd1620b8f253f3810a04ab632ae1a 100644
--- a/chrome/browser/ui/webui/large_icon_source.cc
+++ b/chrome/browser/ui/webui/large_icon_source.cc
@@ -15,6 +15,8 @@
#include "components/favicon_base/favicon_types.h"
#include "components/favicon_base/large_icon_url_parser.h"
#include "net/url_request/url_request.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+#include "ui/gfx/codec/png_codec.h"
namespace {
@@ -106,9 +108,23 @@ void LargeIconSource::OnLargeIconDataAvailable(
SendNotFoundResponse(callback);
return;
}
+
+#if defined(OS_ANDROID)
+ // RenderFallbackIconBitmap() cannot draw fallback icons on Android. See
newt (away) 2016/01/25 19:43:35 Instead of sending a 1x1 bitmap, could you send th
Dan Beam 2016/02/05 20:42:12 how would it be read?
+ // crbug.com/580922 for details. Return a 1x1 bitmap so that JavaScript can
+ // detect that it needs to generate a fallback icon.
+ SkBitmap bitmap;
+ bitmap.allocN32Pixels(1, 1);
Dan Beam 2016/02/05 20:42:12 why not a 0x0?
pkotwicz 2016/02/06 02:59:55 See my other comment about sending the dominant co
+ bitmap.eraseColor(result.fallback_icon_style->background_color);
+ std::vector<unsigned char> bitmap_data;
+ if (!gfx::PNGCodec::EncodeBGRASkBitmap(bitmap, false, &bitmap_data))
+ bitmap_data.clear();
+#else
std::vector<unsigned char> bitmap_data =
fallback_icon_service_->RenderFallbackIconBitmap(
url, size, *result.fallback_icon_style);
+#endif
+
callback.Run(base::RefCountedBytes::TakeVector(&bitmap_data));
}

Powered by Google App Engine
This is Rietveld 408576698