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

Unified Diff: chrome/browser/android/logo_bridge.cc

Issue 2886443002: [Doodle] Move image fetching from LogoBridge to DoodleService (Closed)
Patch Set: comment Created 3 years, 7 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
« no previous file with comments | « chrome/browser/android/logo_bridge.h ('k') | chrome/browser/doodle/doodle_service_factory.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
}
« no previous file with comments | « chrome/browser/android/logo_bridge.h ('k') | chrome/browser/doodle/doodle_service_factory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698