Index: chrome/browser/android/favicon_helper.cc |
diff --git a/chrome/browser/android/favicon_helper.cc b/chrome/browser/android/favicon_helper.cc |
index 201d451634411583117a3d260036eeda4ddf40c6..08c3dcfe1b1d9cd187634cc519277be016857465 100644 |
--- a/chrome/browser/android/favicon_helper.cc |
+++ b/chrome/browser/android/favicon_helper.cc |
@@ -39,16 +39,21 @@ namespace { |
void OnLocalFaviconAvailable( |
ScopedJavaGlobalRef<jobject>* j_favicon_image_callback, |
- const favicon_base::FaviconImageResult& favicon_image_result) { |
+ const favicon_base::FaviconRawBitmapResult& result) { |
JNIEnv* env = AttachCurrentThread(); |
// Convert favicon_image_result to java objects. |
ScopedJavaLocalRef<jstring> j_icon_url = |
- ConvertUTF8ToJavaString(env, favicon_image_result.icon_url.spec()); |
- SkBitmap favicon_bitmap = favicon_image_result.image.AsBitmap(); |
+ ConvertUTF8ToJavaString(env, result.icon_url.spec()); |
ScopedJavaLocalRef<jobject> j_favicon_bitmap; |
- if (!favicon_bitmap.isNull()) |
- j_favicon_bitmap = gfx::ConvertToJavaBitmap(&favicon_bitmap); |
+ if (result.is_valid()) { |
+ SkBitmap favicon_bitmap; |
+ gfx::PNGCodec::Decode(result.bitmap_data->front(), |
+ result.bitmap_data->size(), |
+ &favicon_bitmap); |
+ if (!favicon_bitmap.isNull()) |
+ j_favicon_bitmap = gfx::ConvertToJavaBitmap(&favicon_bitmap); |
+ } |
// Call java side OnLocalFaviconAvailable method. |
Java_FaviconImageCallback_onFaviconAvailable(env, |
@@ -103,7 +108,7 @@ jboolean FaviconHelper::GetLocalFaviconImageForURL( |
jobject j_profile, |
jstring j_page_url, |
jint j_icon_types, |
- jint j_desired_size_in_dip, |
+ jint j_desired_size_in_pixel, |
jobject j_favicon_image_callback) { |
Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile); |
DCHECK(profile); |
@@ -116,20 +121,18 @@ jboolean FaviconHelper::GetLocalFaviconImageForURL( |
if (!favicon_service) |
return false; |
- FaviconService::FaviconForPageURLParams params( |
- GURL(ConvertJavaStringToUTF16(env, j_page_url)), |
- static_cast<int>(j_icon_types), |
- static_cast<int>(j_desired_size_in_dip)); |
- |
ScopedJavaGlobalRef<jobject>* j_scoped_favicon_callback = |
new ScopedJavaGlobalRef<jobject>(); |
j_scoped_favicon_callback->Reset(env, j_favicon_image_callback); |
- favicon_base::FaviconImageCallback callback_runner = base::Bind( |
+ favicon_base::FaviconRawBitmapCallback callback_runner = base::Bind( |
&OnLocalFaviconAvailable, base::Owned(j_scoped_favicon_callback)); |
- favicon_service->GetFaviconImageForPageURL( |
- params, callback_runner, |
+ favicon_service->GetRawFaviconForPageURL( |
+ GURL(ConvertJavaStringToUTF16(env, j_page_url)), |
+ static_cast<int>(j_icon_types), |
+ static_cast<int>(j_desired_size_in_pixel), |
+ callback_runner, |
cancelable_task_tracker_.get()); |
return true; |