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

Side by Side Diff: chrome/browser/android/ntp/most_visited_sites_bridge.cc

Issue 2897293002: Adding CrHome-specific implementation for home page tile. (Closed)
Patch Set: Created 3 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/android/ntp/most_visited_sites_bridge.h" 5 #include "chrome/browser/android/ntp/most_visited_sites_bridge.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/android/jni_android.h" 9 #include "base/android/jni_android.h"
10 #include "base/android/jni_array.h" 10 #include "base/android/jni_array.h"
(...skipping 18 matching lines...) Expand all
29 using base::android::ScopedJavaGlobalRef; 29 using base::android::ScopedJavaGlobalRef;
30 using base::android::ScopedJavaLocalRef; 30 using base::android::ScopedJavaLocalRef;
31 using base::android::ToJavaArrayOfStrings; 31 using base::android::ToJavaArrayOfStrings;
32 using base::android::ToJavaIntArray; 32 using base::android::ToJavaIntArray;
33 using ntp_tiles::MostVisitedSites; 33 using ntp_tiles::MostVisitedSites;
34 using ntp_tiles::TileSource; 34 using ntp_tiles::TileSource;
35 using ntp_tiles::NTPTilesVector; 35 using ntp_tiles::NTPTilesVector;
36 using ntp_tiles::TileVisualType; 36 using ntp_tiles::TileVisualType;
37 using ntp_tiles::metrics::TileImpression; 37 using ntp_tiles::metrics::TileImpression;
38 38
39 namespace {
40
41 class JavaClient : public MostVisitedSites::HomePageClient {
42 public:
43 JavaClient(JNIEnv* env, const JavaParamRef<jobject>& obj);
44
45 bool IsHomePageEnabled() const override;
46 bool IsNewTabPageUsedAsHomePage() const override;
47 GURL GetHomepageUrl() const override;
48
49 private:
50 ScopedJavaGlobalRef<jobject> client_;
51
52 DISALLOW_COPY_AND_ASSIGN(JavaClient);
53 };
54
55 JavaClient::JavaClient(JNIEnv* env, const JavaParamRef<jobject>& obj)
56 : client_(env, obj) {}
57
58 bool JavaClient::IsHomePageEnabled() const {
59 return Java_Client_isHomePageEnabled(AttachCurrentThread(), client_);
60 }
61
62 bool JavaClient::IsNewTabPageUsedAsHomePage() const {
63 return Java_Client_isNewTabPageUsedAsHomePage(AttachCurrentThread(), client_);
64 }
65
66 GURL JavaClient::GetHomepageUrl() const {
67 base::android::ScopedJavaLocalRef<jstring> url =
68 Java_Client_getHomePageUrl(AttachCurrentThread(), client_);
69 return GURL(ConvertJavaStringToUTF8(url));
70 }
71
72 } // namespace
73
39 class MostVisitedSitesBridge::JavaObserver : public MostVisitedSites::Observer { 74 class MostVisitedSitesBridge::JavaObserver : public MostVisitedSites::Observer {
40 public: 75 public:
41 JavaObserver(JNIEnv* env, const JavaParamRef<jobject>& obj); 76 JavaObserver(JNIEnv* env, const JavaParamRef<jobject>& obj);
42 77
43 void OnMostVisitedURLsAvailable(const NTPTilesVector& tiles) override; 78 void OnMostVisitedURLsAvailable(const NTPTilesVector& tiles) override;
44 79
45 void OnIconMadeAvailable(const GURL& site_url) override; 80 void OnIconMadeAvailable(const GURL& site_url) override;
46 81
47 private: 82 private:
48 ScopedJavaGlobalRef<jobject> observer_; 83 ScopedJavaGlobalRef<jobject> observer_;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 139
105 void MostVisitedSitesBridge::SetObserver( 140 void MostVisitedSitesBridge::SetObserver(
106 JNIEnv* env, 141 JNIEnv* env,
107 const JavaParamRef<jobject>& obj, 142 const JavaParamRef<jobject>& obj,
108 const JavaParamRef<jobject>& j_observer, 143 const JavaParamRef<jobject>& j_observer,
109 jint num_sites) { 144 jint num_sites) {
110 java_observer_.reset(new JavaObserver(env, j_observer)); 145 java_observer_.reset(new JavaObserver(env, j_observer));
111 most_visited_->SetMostVisitedURLsObserver(java_observer_.get(), num_sites); 146 most_visited_->SetMostVisitedURLsObserver(java_observer_.get(), num_sites);
112 } 147 }
113 148
149 void MostVisitedSitesBridge::SetClient(
150 JNIEnv* env,
151 const base::android::JavaParamRef<jobject>& obj,
152 const base::android::JavaParamRef<jobject>& j_client) {
153 most_visited_->SetHomePageClient(base::MakeUnique<JavaClient>(env, j_client));
154 }
155
114 void MostVisitedSitesBridge::AddOrRemoveBlacklistedUrl( 156 void MostVisitedSitesBridge::AddOrRemoveBlacklistedUrl(
115 JNIEnv* env, 157 JNIEnv* env,
116 const JavaParamRef<jobject>& obj, 158 const JavaParamRef<jobject>& obj,
117 const JavaParamRef<jstring>& j_url, 159 const JavaParamRef<jstring>& j_url,
118 jboolean add_url) { 160 jboolean add_url) {
119 GURL url(ConvertJavaStringToUTF8(env, j_url)); 161 GURL url(ConvertJavaStringToUTF8(env, j_url));
120 most_visited_->AddOrRemoveBlacklistedUrl(url, add_url); 162 most_visited_->AddOrRemoveBlacklistedUrl(url, add_url);
121 } 163 }
122 164
123 void MostVisitedSitesBridge::RecordPageImpression( 165 void MostVisitedSitesBridge::RecordPageImpression(
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 return RegisterNativesImpl(env); 205 return RegisterNativesImpl(env);
164 } 206 }
165 207
166 static jlong Init(JNIEnv* env, 208 static jlong Init(JNIEnv* env,
167 const JavaParamRef<jobject>& obj, 209 const JavaParamRef<jobject>& obj,
168 const JavaParamRef<jobject>& jprofile) { 210 const JavaParamRef<jobject>& jprofile) {
169 MostVisitedSitesBridge* most_visited_sites = 211 MostVisitedSitesBridge* most_visited_sites =
170 new MostVisitedSitesBridge(ProfileAndroid::FromProfileAndroid(jprofile)); 212 new MostVisitedSitesBridge(ProfileAndroid::FromProfileAndroid(jprofile));
171 return reinterpret_cast<intptr_t>(most_visited_sites); 213 return reinterpret_cast<intptr_t>(most_visited_sites);
172 } 214 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698