Index: chrome/browser/android/logo_bridge.cc |
diff --git a/chrome/browser/android/logo_bridge.cc b/chrome/browser/android/logo_bridge.cc |
index 95780e1e1fdaa176e2ca54d21d21bec4212b2835..09cd4ee327f5c6872fec81538195f3fcb50b9ee0 100644 |
--- a/chrome/browser/android/logo_bridge.cc |
+++ b/chrome/browser/android/logo_bridge.cc |
@@ -19,8 +19,6 @@ |
#include "chrome/browser/doodle/doodle_service_factory.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/profiles/profile_android.h" |
-#include "chrome/browser/search/suggestions/image_decoder_impl.h" |
-#include "components/image_fetcher/core/image_fetcher_impl.h" |
#include "components/search_provider_logos/logo_tracker.h" |
#include "jni/LogoBridge_jni.h" |
#include "net/url_request/url_fetcher.h" |
@@ -40,8 +38,6 @@ using base::android::ToJavaByteArray; |
namespace { |
-const int64_t kMaxImageDownloadBytes = 1024 * 1024; |
- |
ScopedJavaLocalRef<jobject> MakeJavaLogo(JNIEnv* env, |
const SkBitmap* bitmap, |
const GURL& on_click_url, |
@@ -200,11 +196,6 @@ LogoBridge::LogoBridge(jobject j_profile) |
if (base::FeatureList::IsEnabled(chrome::android::kUseNewDoodleApi)) { |
doodle_service_ = DoodleServiceFactory::GetForProfile(profile); |
- image_fetcher_ = base::MakeUnique<image_fetcher::ImageFetcherImpl>( |
- base::MakeUnique<suggestions::ImageDecoderImpl>(), |
- profile->GetRequestContext()); |
- image_fetcher_->SetImageDownloadLimit(kMaxImageDownloadBytes); |
- |
doodle_observer_.Add(doodle_service_); |
} else { |
logo_service_ = LogoServiceFactory::GetForProfile(profile); |
@@ -284,47 +275,32 @@ void LogoBridge::FetchDoodleImage(const doodle::DoodleConfig& doodle_config, |
bool from_cache) { |
DCHECK(!j_logo_observer_.is_null()); |
- // If there is a CTA image, that means the main image is animated. Show the |
+ // If there is a CTA image, that means the main image is animated. We show the |
// non-animated CTA image first, and load the animated one only when the |
// user requests it. |
bool has_cta = doodle_config.large_cta_image.has_value(); |
- const GURL& image_url = has_cta ? doodle_config.large_cta_image->url |
- : doodle_config.large_image.url; |
const GURL& animated_image_url = |
has_cta ? doodle_config.large_image.url : GURL::EmptyGURL(); |
- // TODO(treib): For interactive doodles, use |fullpage_interactive_url| |
- // instead of |target_url|? |
const GURL& on_click_url = doodle_config.target_url; |
const std::string& alt_text = doodle_config.alt_text; |
- image_fetcher_->StartOrQueueNetworkRequest( |
- image_url.spec(), image_url, |
+ doodle_service_->GetImage( |
base::Bind(&LogoBridge::DoodleImageFetched, base::Unretained(this), |
from_cache, on_click_url, alt_text, animated_image_url)); |
} |
-void LogoBridge::DoodleImageFetched( |
- bool config_from_cache, |
- const GURL& on_click_url, |
- const std::string& alt_text, |
- const GURL& animated_image_url, |
- const std::string& image_fetch_id, |
- const gfx::Image& image, |
- const image_fetcher::RequestMetadata& metadata) { |
+void LogoBridge::DoodleImageFetched(bool config_from_cache, |
+ const GURL& on_click_url, |
+ const std::string& alt_text, |
+ const GURL& animated_image_url, |
+ const gfx::Image& image) { |
JNIEnv* env = base::android::AttachCurrentThread(); |
- if (image.IsEmpty()) { |
- DLOG(WARNING) << "Failed to download doodle image"; |
- Java_LogoObserver_onLogoAvailable(env, j_logo_observer_, |
- ScopedJavaLocalRef<jobject>(), |
- config_from_cache); |
- return; |
+ ScopedJavaLocalRef<jobject> j_logo; |
+ if (!image.IsEmpty()) { |
+ j_logo = MakeJavaLogo(env, image.ToSkBitmap(), on_click_url, alt_text, |
+ animated_image_url); |
} |
- UMA_HISTOGRAM_BOOLEAN("NewTabPage.LogoImageDownloaded", |
- metadata.from_http_cache); |
- |
- ScopedJavaLocalRef<jobject> j_logo = MakeJavaLogo( |
- env, image.ToSkBitmap(), on_click_url, alt_text, animated_image_url); |
Java_LogoObserver_onLogoAvailable(env, j_logo_observer_, j_logo, |
config_from_cache); |
} |