Chromium Code Reviews| Index: chrome/browser/android/ntp/most_visited_sites_bridge.h |
| diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.h b/chrome/browser/android/ntp/most_visited_sites_bridge.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..f81d62a6cf7785b0c8235e35c17c91470b0adfc4 |
| --- /dev/null |
| +++ b/chrome/browser/android/ntp/most_visited_sites_bridge.h |
| @@ -0,0 +1,86 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CHROME_BROWSER_ANDROID_NTP_MOST_VISITED_SITES_BRIDGE_H_ |
| +#define CHROME_BROWSER_ANDROID_NTP_MOST_VISITED_SITES_BRIDGE_H_ |
| + |
| +#include <jni.h> |
| +#include <stddef.h> |
| + |
| +#include <memory> |
| +#include <string> |
| +#include <vector> |
| + |
| +#include "base/android/scoped_java_ref.h" |
| +#include "base/macros.h" |
| +#include "chrome/browser/android/ntp/most_visited_sites.h" |
| + |
| +class Profile; |
| + |
| +// Provides the list of most visited sites and their thumbnails to Java. |
| +class MostVisitedSitesBridge { |
| + public: |
| + explicit MostVisitedSitesBridge(Profile* profile); |
| + |
| + void Destroy(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); |
| + |
| + 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 AddOrRemoveBlacklistedUrl( |
| + JNIEnv* env, |
| + const base::android::JavaParamRef<jobject>& obj, |
| + const base::android::JavaParamRef<jstring>& j_url, |
| + jboolean add_url); |
| + void RecordTileTypeMetrics( |
| + JNIEnv* env, |
| + const base::android::JavaParamRef<jobject>& obj, |
| + const base::android::JavaParamRef<jintArray>& jtile_types); |
| + void RecordOpenedMostVisitedItem( |
| + JNIEnv* env, |
| + const base::android::JavaParamRef<jobject>& obj, |
| + jint index, |
| + jint tile_type); |
| + |
| + // Registers JNI methods. |
| + static bool Register(JNIEnv* env); |
| + |
| + private: |
| + ~MostVisitedSitesBridge(); |
| + |
| + class Observer : public MostVisitedSitesObserver { |
|
Bernhard Bauer
2016/04/20 13:35:11
You can forward-declare the class here, and move t
sfiera
2016/04/20 14:11:20
Done.
|
| + public: |
| + Observer(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); |
| + |
| + void OnMostVisitedURLsAvailable( |
| + const std::vector<base::string16>& titles, |
| + const std::vector<std::string>& urls, |
| + const std::vector<std::string>& whitelist_icon_paths) override; |
| + |
| + void OnPopularURLsAvailable( |
| + const std::vector<std::string>& urls, |
| + const std::vector<std::string>& favicon_urls, |
| + const std::vector<std::string>& large_icon_urls) override; |
| + |
| + private: |
| + base::android::ScopedJavaGlobalRef<jobject> observer_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(Observer); |
| + }; |
| + std::unique_ptr<Observer> observer_; |
| + |
| + MostVisitedSites most_visited_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(MostVisitedSitesBridge); |
| +}; |
| + |
| +#endif // CHROME_BROWSER_ANDROID_NTP_MOST_VISITED_SITES_BRIDGE_H_ |