Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 29 #include "content/public/browser/url_data_source.h" | 29 #include "content/public/browser/url_data_source.h" |
| 30 #include "jni/MostVisitedSites_jni.h" | 30 #include "jni/MostVisitedSites_jni.h" |
| 31 #include "ui/gfx/android/java_bitmap.h" | 31 #include "ui/gfx/android/java_bitmap.h" |
| 32 #include "url/gurl.h" | 32 #include "url/gurl.h" |
| 33 | 33 |
| 34 using base::android::AttachCurrentThread; | 34 using base::android::AttachCurrentThread; |
| 35 using base::android::ConvertJavaStringToUTF8; | 35 using base::android::ConvertJavaStringToUTF8; |
| 36 using base::android::ScopedJavaGlobalRef; | 36 using base::android::ScopedJavaGlobalRef; |
| 37 using base::android::ScopedJavaLocalRef; | 37 using base::android::ScopedJavaLocalRef; |
| 38 using base::android::ToJavaArrayOfStrings; | 38 using base::android::ToJavaArrayOfStrings; |
| 39 using base::android::ToJavaIntArray; | |
| 39 using content::BrowserThread; | 40 using content::BrowserThread; |
| 40 using ntp_tiles::MostVisitedSites; | 41 using ntp_tiles::MostVisitedSites; |
| 41 using ntp_tiles::MostVisitedSitesSupervisor; | 42 using ntp_tiles::MostVisitedSitesSupervisor; |
| 42 using suggestions::SuggestionsServiceFactory; | 43 using suggestions::SuggestionsServiceFactory; |
| 43 | 44 |
| 44 MostVisitedSitesBridge::SupervisorBridge::SupervisorBridge(Profile* profile) | 45 MostVisitedSitesBridge::SupervisorBridge::SupervisorBridge(Profile* profile) |
| 45 : profile_(profile), | 46 : profile_(profile), |
| 46 supervisor_observer_(nullptr), | 47 supervisor_observer_(nullptr), |
| 47 register_observer_(this) { | 48 register_observer_(this) { |
| 48 register_observer_.Add(SupervisedUserServiceFactory::GetForProfile(profile_)); | 49 register_observer_.Add(SupervisedUserServiceFactory::GetForProfile(profile_)); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 111 JNIEnv* env, | 112 JNIEnv* env, |
| 112 const JavaParamRef<jobject>& obj) | 113 const JavaParamRef<jobject>& obj) |
| 113 : observer_(env, obj) {} | 114 : observer_(env, obj) {} |
| 114 | 115 |
| 115 void MostVisitedSitesBridge::JavaObserver::OnMostVisitedURLsAvailable( | 116 void MostVisitedSitesBridge::JavaObserver::OnMostVisitedURLsAvailable( |
| 116 const MostVisitedSites::SuggestionsVector& suggestions) { | 117 const MostVisitedSites::SuggestionsVector& suggestions) { |
| 117 JNIEnv* env = AttachCurrentThread(); | 118 JNIEnv* env = AttachCurrentThread(); |
| 118 std::vector<base::string16> titles; | 119 std::vector<base::string16> titles; |
| 119 std::vector<std::string> urls; | 120 std::vector<std::string> urls; |
| 120 std::vector<std::string> whitelist_icon_paths; | 121 std::vector<std::string> whitelist_icon_paths; |
| 122 std::vector<int> sources; | |
| 123 std::vector<int> provider_indexes; | |
| 124 | |
| 121 titles.reserve(suggestions.size()); | 125 titles.reserve(suggestions.size()); |
| 122 urls.reserve(suggestions.size()); | 126 urls.reserve(suggestions.size()); |
| 123 whitelist_icon_paths.reserve(suggestions.size()); | 127 whitelist_icon_paths.reserve(suggestions.size()); |
|
Marc Treib
2016/06/29 08:19:31
Also reserve sources and provider_indexes
dewittj
2016/06/30 17:48:54
Done.
| |
| 124 for (const auto& suggestion : suggestions) { | 128 for (const auto& suggestion : suggestions) { |
| 125 titles.emplace_back(suggestion.title); | 129 titles.emplace_back(suggestion.title); |
| 126 urls.emplace_back(suggestion.url.spec()); | 130 urls.emplace_back(suggestion.url.spec()); |
| 127 whitelist_icon_paths.emplace_back(suggestion.whitelist_icon_path.value()); | 131 whitelist_icon_paths.emplace_back(suggestion.whitelist_icon_path.value()); |
| 132 sources.emplace_back(suggestion.source); | |
| 133 provider_indexes.emplace_back(suggestion.provider_index); | |
| 128 } | 134 } |
| 129 Java_MostVisitedURLsObserver_onMostVisitedURLsAvailable( | 135 Java_MostVisitedURLsObserver_onMostVisitedURLsAvailable( |
| 130 env, observer_.obj(), ToJavaArrayOfStrings(env, titles).obj(), | 136 env, observer_.obj(), ToJavaArrayOfStrings(env, titles).obj(), |
| 131 ToJavaArrayOfStrings(env, urls).obj(), | 137 ToJavaArrayOfStrings(env, urls).obj(), |
| 132 ToJavaArrayOfStrings(env, whitelist_icon_paths).obj()); | 138 ToJavaArrayOfStrings(env, whitelist_icon_paths).obj(), |
| 139 ToJavaIntArray(env, sources).obj(), | |
| 140 ToJavaIntArray(env, provider_indexes).obj()); | |
| 133 } | 141 } |
| 134 | 142 |
| 135 void MostVisitedSitesBridge::JavaObserver::OnPopularURLsAvailable( | 143 void MostVisitedSitesBridge::JavaObserver::OnPopularURLsAvailable( |
| 136 const MostVisitedSites::PopularSitesVector& sites) { | 144 const MostVisitedSites::PopularSitesVector& sites) { |
| 137 JNIEnv* env = AttachCurrentThread(); | 145 JNIEnv* env = AttachCurrentThread(); |
| 138 std::vector<std::string> urls; | 146 std::vector<std::string> urls; |
| 139 std::vector<std::string> favicon_urls; | 147 std::vector<std::string> favicon_urls; |
| 140 std::vector<std::string> large_icon_urls; | 148 std::vector<std::string> large_icon_urls; |
| 141 for (const auto& site : sites) { | 149 for (const auto& site : sites) { |
| 142 urls.emplace_back(site.url.spec()); | 150 urls.emplace_back(site.url.spec()); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 183 | 191 |
| 184 void MostVisitedSitesBridge::AddOrRemoveBlacklistedUrl( | 192 void MostVisitedSitesBridge::AddOrRemoveBlacklistedUrl( |
| 185 JNIEnv* env, | 193 JNIEnv* env, |
| 186 const JavaParamRef<jobject>& obj, | 194 const JavaParamRef<jobject>& obj, |
| 187 const JavaParamRef<jstring>& j_url, | 195 const JavaParamRef<jstring>& j_url, |
| 188 jboolean add_url) { | 196 jboolean add_url) { |
| 189 GURL url(ConvertJavaStringToUTF8(env, j_url)); | 197 GURL url(ConvertJavaStringToUTF8(env, j_url)); |
| 190 most_visited_.AddOrRemoveBlacklistedUrl(url, add_url); | 198 most_visited_.AddOrRemoveBlacklistedUrl(url, add_url); |
| 191 } | 199 } |
| 192 | 200 |
| 193 void MostVisitedSitesBridge::RecordTileTypeMetrics( | |
| 194 JNIEnv* env, | |
| 195 const JavaParamRef<jobject>& obj, | |
| 196 const JavaParamRef<jintArray>& jtile_types) { | |
| 197 std::vector<int> tile_types; | |
| 198 base::android::JavaIntArrayToIntVector(env, jtile_types, &tile_types); | |
| 199 most_visited_.RecordTileTypeMetrics(tile_types); | |
| 200 } | |
| 201 | |
| 202 void MostVisitedSitesBridge::RecordOpenedMostVisitedItem( | 201 void MostVisitedSitesBridge::RecordOpenedMostVisitedItem( |
| 203 JNIEnv* env, | 202 JNIEnv* env, |
| 204 const JavaParamRef<jobject>& obj, | 203 const JavaParamRef<jobject>& obj, |
| 205 jint index, | 204 jint index, |
| 206 jint tile_type) { | 205 jint tile_type) { |
| 207 most_visited_.RecordOpenedMostVisitedItem(index, tile_type); | 206 most_visited_.RecordOpenedMostVisitedItem(index, tile_type); |
| 208 } | 207 } |
| 209 | 208 |
| 210 // static | 209 // static |
| 211 bool MostVisitedSitesBridge::Register(JNIEnv* env) { | 210 bool MostVisitedSitesBridge::Register(JNIEnv* env) { |
| 212 return RegisterNativesImpl(env); | 211 return RegisterNativesImpl(env); |
| 213 } | 212 } |
| 214 | 213 |
| 215 static jlong Init(JNIEnv* env, | 214 static jlong Init(JNIEnv* env, |
| 216 const JavaParamRef<jobject>& obj, | 215 const JavaParamRef<jobject>& obj, |
| 217 const JavaParamRef<jobject>& jprofile) { | 216 const JavaParamRef<jobject>& jprofile) { |
| 218 MostVisitedSitesBridge* most_visited_sites = | 217 MostVisitedSitesBridge* most_visited_sites = |
| 219 new MostVisitedSitesBridge( | 218 new MostVisitedSitesBridge( |
| 220 ProfileAndroid::FromProfileAndroid(jprofile)); | 219 ProfileAndroid::FromProfileAndroid(jprofile)); |
| 221 return reinterpret_cast<intptr_t>(most_visited_sites); | 220 return reinterpret_cast<intptr_t>(most_visited_sites); |
| 222 } | 221 } |
| OLD | NEW |