| 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 64074f8cf54d51c5cbb2b77046974c166a555bd3..3adfff786e2c107e033fc951315230d12684c0d1 100644
|
| --- a/chrome/browser/android/ntp/most_visited_sites_bridge.cc
|
| +++ b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
|
| @@ -36,6 +36,46 @@ using ntp_tiles::NTPTilesVector;
|
| using ntp_tiles::TileVisualType;
|
| using ntp_tiles::metrics::TileImpression;
|
|
|
| +namespace {
|
| +
|
| +class JavaHomePageClient : public MostVisitedSites::HomePageClient {
|
| + public:
|
| + JavaHomePageClient(JNIEnv* env, const JavaParamRef<jobject>& obj);
|
| +
|
| + bool IsHomePageEnabled() const override;
|
| + bool IsNewTabPageUsedAsHomePage() const override;
|
| + GURL GetHomepageUrl() const override;
|
| +
|
| + private:
|
| + ScopedJavaGlobalRef<jobject> client_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(JavaHomePageClient);
|
| +};
|
| +
|
| +JavaHomePageClient::JavaHomePageClient(JNIEnv* env,
|
| + const JavaParamRef<jobject>& obj)
|
| + : client_(env, obj) {}
|
| +
|
| +bool JavaHomePageClient::IsHomePageEnabled() const {
|
| + return Java_HomePageClient_isHomePageEnabled(AttachCurrentThread(), client_);
|
| +}
|
| +
|
| +bool JavaHomePageClient::IsNewTabPageUsedAsHomePage() const {
|
| + return Java_HomePageClient_isNewTabPageUsedAsHomePage(AttachCurrentThread(),
|
| + client_);
|
| +}
|
| +
|
| +GURL JavaHomePageClient::GetHomepageUrl() const {
|
| + base::android::ScopedJavaLocalRef<jstring> url =
|
| + Java_HomePageClient_getHomePageUrl(AttachCurrentThread(), client_);
|
| + if (url.is_null()) {
|
| + return GURL();
|
| + }
|
| + return GURL(ConvertJavaStringToUTF8(url));
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| class MostVisitedSitesBridge::JavaObserver : public MostVisitedSites::Observer {
|
| public:
|
| JavaObserver(JNIEnv* env, const JavaParamRef<jobject>& obj);
|
| @@ -111,6 +151,14 @@ void MostVisitedSitesBridge::SetObserver(
|
| most_visited_->SetMostVisitedURLsObserver(java_observer_.get(), num_sites);
|
| }
|
|
|
| +void MostVisitedSitesBridge::SetClient(
|
| + JNIEnv* env,
|
| + const base::android::JavaParamRef<jobject>& obj,
|
| + const base::android::JavaParamRef<jobject>& j_client) {
|
| + most_visited_->SetHomePageClient(
|
| + base::MakeUnique<JavaHomePageClient>(env, j_client));
|
| +}
|
| +
|
| void MostVisitedSitesBridge::AddOrRemoveBlacklistedUrl(
|
| JNIEnv* env,
|
| const JavaParamRef<jobject>& obj,
|
|
|