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

Unified Diff: chrome/browser/android/ntp/most_visited_sites_bridge.cc

Issue 2388783004: Ensure PopularSite icon availability in ntp_tiles. (Closed)
Patch Set: Merge branch 'master' into icons Created 4 years, 2 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/android/ntp/most_visited_sites_bridge.cc
diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
index dc7d7327af7347cce6207baa3bc1f0a8a1cf8698..63bbf35446ea317d78152e9924cc2554706e8e3d 100644
--- a/chrome/browser/android/ntp/most_visited_sites_bridge.cc
+++ b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
@@ -15,9 +15,11 @@
#include "base/memory/ptr_util.h"
#include "chrome/browser/android/ntp/popular_sites.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/favicon/favicon_service_factory.h"
#include "chrome/browser/history/top_sites_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 "chrome/browser/search/suggestions/suggestions_service_factory.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/browser/supervised_user/supervised_user_service.h"
@@ -25,6 +27,8 @@
#include "chrome/browser/supervised_user/supervised_user_url_filter.h"
#include "chrome/browser/thumbnails/thumbnail_list_source.h"
#include "components/history/core/browser/top_sites.h"
+#include "components/image_fetcher/image_fetcher_impl.h"
+#include "components/ntp_tiles/icon_cacher.h"
#include "components/ntp_tiles/metrics.h"
#include "components/ntp_tiles/popular_sites.h"
#include "components/safe_json/safe_json_parser.h"
@@ -36,6 +40,7 @@
using base::android::AttachCurrentThread;
using base::android::ConvertJavaStringToUTF8;
+using base::android::ConvertUTF8ToJavaString;
using base::android::JavaParamRef;
using base::android::ScopedJavaGlobalRef;
using base::android::ScopedJavaLocalRef;
@@ -104,8 +109,7 @@ class MostVisitedSitesBridge::JavaObserver : public MostVisitedSites::Observer {
void OnMostVisitedURLsAvailable(const NTPTilesVector& tiles) override;
- void OnPopularURLsAvailable(
- const MostVisitedSites::PopularSitesVector& sites) override;
+ void OnIconMadeAvailable(const GURL& site_url) override;
private:
ScopedJavaGlobalRef<jobject> observer_;
@@ -143,21 +147,11 @@ void MostVisitedSitesBridge::JavaObserver::OnMostVisitedURLsAvailable(
ToJavaIntArray(env, sources));
}
-void MostVisitedSitesBridge::JavaObserver::OnPopularURLsAvailable(
- const MostVisitedSites::PopularSitesVector& sites) {
+void MostVisitedSitesBridge::JavaObserver::OnIconMadeAvailable(
+ const GURL& site_url) {
JNIEnv* env = AttachCurrentThread();
- std::vector<std::string> urls;
- std::vector<std::string> favicon_urls;
- std::vector<std::string> large_icon_urls;
- for (const auto& site : sites) {
- urls.emplace_back(site.url.spec());
- favicon_urls.emplace_back(site.favicon_url.spec());
- large_icon_urls.emplace_back(site.large_icon_url.spec());
- }
- Java_MostVisitedURLsObserver_onPopularURLsAvailable(
- env, observer_, ToJavaArrayOfStrings(env, urls),
- ToJavaArrayOfStrings(env, favicon_urls),
- ToJavaArrayOfStrings(env, large_icon_urls));
+ Java_MostVisitedURLsObserver_onIconMadeAvailable(
+ env, observer_, ConvertUTF8ToJavaString(env, site_url.spec()));
}
MostVisitedSitesBridge::MostVisitedSitesBridge(Profile* profile)
@@ -173,10 +167,18 @@ MostVisitedSitesBridge::MostVisitedSitesBridge(Profile* profile)
profile->GetRequestContext(),
ChromePopularSites::GetDirectory(),
base::Bind(safe_json::SafeJsonParser::Parse)),
+ base::MakeUnique<ntp_tiles::IconCacher>(
+ FaviconServiceFactory::GetForProfile(
+ profile,
+ ServiceAccessType::IMPLICIT_ACCESS),
+ base::MakeUnique<image_fetcher::ImageFetcherImpl>(
+ base::MakeUnique<suggestions::ImageDecoderImpl>(),
+ profile->GetRequestContext())),
&supervisor_) {
// Register the thumbnails debugging page.
// TODO(sfiera): find thumbnails a home. They don't belong here.
content::URLDataSource::Add(profile, new ThumbnailListSource(profile));
+ DCHECK(!profile->IsOffTheRecord());
}
MostVisitedSitesBridge::~MostVisitedSitesBridge() {}
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/profiles/MostVisitedSites.java ('k') | components/ntp_tiles/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698