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

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

Issue 2897293002: Adding CrHome-specific implementation for home page tile. (Closed)
Patch Set: Handle empty home page urls Created 3 years, 7 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 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,

Powered by Google App Engine
This is Rietveld 408576698