| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/android/favicon_helper.h" | 5 #include "chrome/browser/android/favicon_helper.h" |
| 6 | 6 |
| 7 #include <jni.h> | 7 #include <jni.h> |
| 8 | 8 |
| 9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
| 10 #include "base/android/jni_array.h" | 10 #include "base/android/jni_array.h" |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 if (!favicon_bitmap.isNull()) | 50 if (!favicon_bitmap.isNull()) |
| 51 j_favicon_bitmap = gfx::ConvertToJavaBitmap(&favicon_bitmap); | 51 j_favicon_bitmap = gfx::ConvertToJavaBitmap(&favicon_bitmap); |
| 52 | 52 |
| 53 // Call java side OnLocalFaviconAvailable method. | 53 // Call java side OnLocalFaviconAvailable method. |
| 54 Java_FaviconImageCallback_onFaviconAvailable(env, | 54 Java_FaviconImageCallback_onFaviconAvailable(env, |
| 55 j_favicon_image_callback->obj(), | 55 j_favicon_image_callback->obj(), |
| 56 j_favicon_bitmap.obj(), | 56 j_favicon_bitmap.obj(), |
| 57 j_icon_url.obj()); | 57 j_icon_url.obj()); |
| 58 } | 58 } |
| 59 | 59 |
| 60 void OnFaviconBitmapResultAvailable( | 60 void OnFaviconRawBitmapResultAvailable( |
| 61 ScopedJavaGlobalRef<jobject>* j_favicon_image_callback, | 61 ScopedJavaGlobalRef<jobject>* j_favicon_image_callback, |
| 62 const favicon_base::FaviconBitmapResult& favicon_bitmap_result) { | 62 const favicon_base::FaviconRawBitmapResult& favicon_bitmap_result) { |
| 63 JNIEnv* env = AttachCurrentThread(); | 63 JNIEnv* env = AttachCurrentThread(); |
| 64 | 64 |
| 65 // Convert favicon_image_result to java objects. | 65 // Convert favicon_image_result to java objects. |
| 66 ScopedJavaLocalRef<jstring> j_icon_url = | 66 ScopedJavaLocalRef<jstring> j_icon_url = |
| 67 ConvertUTF8ToJavaString(env, favicon_bitmap_result.icon_url.spec()); | 67 ConvertUTF8ToJavaString(env, favicon_bitmap_result.icon_url.spec()); |
| 68 | 68 |
| 69 SkBitmap favicon_bitmap; | 69 SkBitmap favicon_bitmap; |
| 70 if (favicon_bitmap_result.is_valid()) { | 70 if (favicon_bitmap_result.is_valid()) { |
| 71 gfx::PNGCodec::Decode(favicon_bitmap_result.bitmap_data->front(), | 71 gfx::PNGCodec::Decode(favicon_bitmap_result.bitmap_data->front(), |
| 72 favicon_bitmap_result.bitmap_data->size(), | 72 favicon_bitmap_result.bitmap_data->size(), |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 if (!favicon_service) | 154 if (!favicon_service) |
| 155 return; | 155 return; |
| 156 | 156 |
| 157 std::vector<int> icon_types; | 157 std::vector<int> icon_types; |
| 158 base::android::JavaIntArrayToIntVector(env, j_icon_types, &icon_types); | 158 base::android::JavaIntArrayToIntVector(env, j_icon_types, &icon_types); |
| 159 | 159 |
| 160 ScopedJavaGlobalRef<jobject>* j_scoped_favicon_callback = | 160 ScopedJavaGlobalRef<jobject>* j_scoped_favicon_callback = |
| 161 new ScopedJavaGlobalRef<jobject>(); | 161 new ScopedJavaGlobalRef<jobject>(); |
| 162 j_scoped_favicon_callback->Reset(env, j_favicon_image_callback); | 162 j_scoped_favicon_callback->Reset(env, j_favicon_image_callback); |
| 163 | 163 |
| 164 favicon_base::FaviconRawCallback callback_runner = base::Bind( | 164 favicon_base::FaviconRawBitmapCallback callback_runner = |
| 165 &OnFaviconBitmapResultAvailable, base::Owned(j_scoped_favicon_callback)); | 165 base::Bind(&OnFaviconRawBitmapResultAvailable, |
| 166 base::Owned(j_scoped_favicon_callback)); |
| 166 favicon_service->GetLargestRawFaviconForURL( | 167 favicon_service->GetLargestRawFaviconForURL( |
| 167 profile, | 168 profile, |
| 168 GURL(ConvertJavaStringToUTF16(env, j_page_url)), | 169 GURL(ConvertJavaStringToUTF16(env, j_page_url)), |
| 169 icon_types, | 170 icon_types, |
| 170 static_cast<int>(j_min_size_threshold_px), | 171 static_cast<int>(j_min_size_threshold_px), |
| 171 callback_runner, | 172 callback_runner, |
| 172 cancelable_task_tracker_.get()); | 173 cancelable_task_tracker_.get()); |
| 173 } | 174 } |
| 174 | 175 |
| 175 ScopedJavaLocalRef<jobject> FaviconHelper::GetSyncedFaviconImageForURL( | 176 ScopedJavaLocalRef<jobject> FaviconHelper::GetSyncedFaviconImageForURL( |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 | 216 |
| 216 gfx::JavaBitmap bitmap_lock(bitmap); | 217 gfx::JavaBitmap bitmap_lock(bitmap); |
| 217 SkBitmap skbitmap = gfx::CreateSkBitmapFromJavaBitmap(bitmap_lock); | 218 SkBitmap skbitmap = gfx::CreateSkBitmapFromJavaBitmap(bitmap_lock); |
| 218 return color_utils::CalculateKMeanColorOfBitmap(skbitmap); | 219 return color_utils::CalculateKMeanColorOfBitmap(skbitmap); |
| 219 } | 220 } |
| 220 | 221 |
| 221 // static | 222 // static |
| 222 bool FaviconHelper::RegisterFaviconHelper(JNIEnv* env) { | 223 bool FaviconHelper::RegisterFaviconHelper(JNIEnv* env) { |
| 223 return RegisterNativesImpl(env); | 224 return RegisterNativesImpl(env); |
| 224 } | 225 } |
| OLD | NEW |