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

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

Issue 2388783004: Ensure PopularSite icon availability in ntp_tiles. (Closed)
Patch Set: Fix comments, variable names. 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 aef8e0730b5a20b78f7bbb674c3786cf04125988..233478daa2c204a1728dfd9a181949bd8c3fd9ae 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/popular_sites.h"
#include "components/safe_json/safe_json_parser.h"
#include "content/public/browser/browser_thread.h"
@@ -35,6 +39,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;
@@ -102,8 +107,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_;
@@ -141,21 +145,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)
@@ -171,6 +165,13 @@ 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),
Marc Treib 2016/10/12 09:11:27 This will return nullptr in incognito, and IconCac
sfiera 2016/10/13 09:06:45 Is that really the case? You can still see already
Marc Treib 2016/10/13 12:31:15 See https://cs.chromium.org/chromium/src/chrome/br
sfiera 2016/10/14 06:27:32 …after NOTREACHED(). So it's not valid to get a Fa
Marc Treib 2016/10/14 08:46:21 d'oh, obviously I'm blind.
+ 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.

Powered by Google App Engine
This is Rietveld 408576698