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

Unified Diff: chrome/browser/android/ntp/most_visited_sites.h

Issue 1884203002: NTP tiles: split methods into C++ and Java parts. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 | « no previous file | chrome/browser/android/ntp/most_visited_sites.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/android/ntp/most_visited_sites.h
diff --git a/chrome/browser/android/ntp/most_visited_sites.h b/chrome/browser/android/ntp/most_visited_sites.h
index 548db8c3353925cec8f5d2b4a83e110ff2fd0608..f16b5ead7c6b89e5eb6e7ec773da10020d7a2004 100644
--- a/chrome/browser/android/ntp/most_visited_sites.h
+++ b/chrome/browser/android/ntp/most_visited_sites.h
@@ -37,22 +37,41 @@ class PrefRegistrySyncable;
class PopularSites;
class Profile;
+// The observer to be notified when the list of most visited sites changes.
+class MostVisitedSitesObserver {
+ public:
+ virtual ~MostVisitedSitesObserver() {}
+
+ virtual void OnMostVisitedURLsAvailable(
+ const std::vector<base::string16>& titles,
+ const std::vector<std::string>& urls,
+ const std::vector<std::string>& whitelist_icon_paths) = 0;
+ virtual void OnPopularURLsAvailable(
+ const std::vector<std::string>& urls,
+ const std::vector<std::string>& favicon_urls,
+ const std::vector<std::string>& large_icon_urls) = 0;
+};
+
// Provides the list of most visited sites and their thumbnails to Java.
class MostVisitedSites : public history::TopSitesObserver,
public SupervisedUserServiceObserver {
public:
explicit MostVisitedSites(Profile* profile);
void Destroy(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
+
+ // Java methods
+
void SetMostVisitedURLsObserver(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
const base::android::JavaParamRef<jobject>& j_observer,
jint num_sites);
- void GetURLThumbnail(JNIEnv* env,
- const base::android::JavaParamRef<jobject>& obj,
- const base::android::JavaParamRef<jstring>& url,
- const base::android::JavaParamRef<jobject>& j_callback);
+ void GetURLThumbnail(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& obj,
+ const base::android::JavaParamRef<jstring>& url,
+ const base::android::JavaParamRef<jobject>& j_callback);
void AddOrRemoveBlacklistedUrl(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
@@ -68,6 +87,18 @@ class MostVisitedSites : public history::TopSitesObserver,
jint index,
jint tile_type);
+ // C++ methods
+
+ void SetMostVisitedURLsObserver(
+ std::unique_ptr<MostVisitedSitesObserver> observer, int num_sites);
+
+ using ThumbnailCallback = base::Callback<
+ void(bool /* is_local_thumbnail */, const SkBitmap* /* bitmap */)>;
+ void GetURLThumbnail(const GURL& url, const ThumbnailCallback& callback);
+ void AddOrRemoveBlacklistedUrl(const GURL& url, bool add_url);
+ void RecordTileTypeMetrics(const std::vector<int>& tile_types);
+ void RecordOpenedMostVisitedItem(int index, int tile_type);
+
// SupervisedUserServiceObserver implementation.
void OnURLFilterChanged() override;
@@ -173,7 +204,7 @@ class MostVisitedSites : public history::TopSitesObserver,
SuggestionsVector* src_suggestions,
SuggestionsVector* dst_suggestions);
- // Notifies the Java side observer about the availability of suggestions.
+ // Notifies the observer about the availability of suggestions.
// Also records impressions UMA if not done already.
void NotifyMostVisitedURLsObserver();
@@ -182,14 +213,14 @@ class MostVisitedSites : public history::TopSitesObserver,
// Runs on the UI Thread.
void OnLocalThumbnailFetched(
const GURL& url,
- std::unique_ptr<base::android::ScopedJavaGlobalRef<jobject>> j_callback,
+ const ThumbnailCallback& callback,
std::unique_ptr<SkBitmap> bitmap);
// Callback for when the thumbnail lookup is complete.
// Runs on the UI Thread.
void OnObtainedThumbnail(
bool is_local_thumbnail,
- std::unique_ptr<base::android::ScopedJavaGlobalRef<jobject>> j_callback,
+ const ThumbnailCallback& callback,
const GURL& url,
const SkBitmap* bitmap);
@@ -207,8 +238,7 @@ class MostVisitedSites : public history::TopSitesObserver,
// The profile whose most visited sites will be queried.
Profile* profile_;
- // The observer to be notified when the list of most visited sites changes.
- base::android::ScopedJavaGlobalRef<jobject> observer_;
+ std::unique_ptr<MostVisitedSitesObserver> observer_;
// The maximum number of most visited sites to return.
int num_sites_;
« no previous file with comments | « no previous file | chrome/browser/android/ntp/most_visited_sites.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698