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 dde3d98e16ed4496093e33ac3cbc1690cbb98f8d..19cc7b3aace9b61be8f2babc55b8b8fa9261db2d 100644 |
--- a/chrome/browser/android/ntp/most_visited_sites_bridge.cc |
+++ b/chrome/browser/android/ntp/most_visited_sites_bridge.cc |
@@ -12,6 +12,7 @@ |
#include "base/android/scoped_java_ref.h" |
#include "base/bind.h" |
#include "base/callback.h" |
+#include "chrome/browser/android/ntp/popular_sites.h" |
#include "chrome/browser/profiles/profile_android.h" |
#include "jni/MostVisitedSites_jni.h" |
#include "ui/gfx/android/java_bitmap.h" |
@@ -40,19 +41,15 @@ void CallJavaWithBitmap( |
} // namespace |
class MostVisitedSitesBridge::Observer |
- : public MostVisitedSitesObserver { |
+ : public MostVisitedSites::Observer { |
public: |
Observer(JNIEnv* env, const 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; |
+ const MostVisitedSites::SuggestionsVector& suggestions) 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; |
+ const MostVisitedSites::PopularSitesVector& sites) override; |
private: |
ScopedJavaGlobalRef<jobject> observer_; |
@@ -65,12 +62,18 @@ MostVisitedSitesBridge::Observer::Observer( |
: observer_(env, obj) {} |
void MostVisitedSitesBridge::Observer::OnMostVisitedURLsAvailable( |
- const std::vector<base::string16>& titles, |
- const std::vector<std::string>& urls, |
- const std::vector<std::string>& whitelist_icon_paths) { |
+ const MostVisitedSites::SuggestionsVector& suggestions) { |
JNIEnv* env = AttachCurrentThread(); |
- DCHECK_EQ(titles.size(), urls.size()); |
- DCHECK_EQ(titles.size(), whitelist_icon_paths.size()); |
+ std::vector<base::string16> titles; |
+ std::vector<std::string> urls; |
+ std::vector<std::string> whitelist_icon_paths; |
+ titles.reserve(suggestions.size()); |
+ urls.reserve(suggestions.size()); |
Bernhard Bauer
2016/04/26 14:29:58
Why are we not doing that for |whitelist_icon_path
sfiera
2016/04/26 14:42:26
It looks like here I was just moving the old code
|
+ for (const auto& suggestion : suggestions) { |
+ titles.push_back(suggestion.title); |
+ urls.push_back(suggestion.url.spec()); |
+ whitelist_icon_paths.push_back(suggestion.whitelist_icon_path.value()); |
+ } |
Java_MostVisitedURLsObserver_onMostVisitedURLsAvailable( |
env, observer_.obj(), ToJavaArrayOfStrings(env, titles).obj(), |
ToJavaArrayOfStrings(env, urls).obj(), |
@@ -78,10 +81,16 @@ void MostVisitedSitesBridge::Observer::OnMostVisitedURLsAvailable( |
} |
void MostVisitedSitesBridge::Observer::OnPopularURLsAvailable( |
- const std::vector<std::string>& urls, |
- const std::vector<std::string>& favicon_urls, |
- const std::vector<std::string>& large_icon_urls) { |
+ const MostVisitedSites::PopularSitesVector& sites) { |
JNIEnv* env = AttachCurrentThread(); |
+ std::vector<std::string> urls; |
+ std::vector<std::string> favicon_urls; |
+ std::vector<std::string> large_icon_urls; |
+ for (const auto& site : sites) { |
+ urls.emplace_back(site.url.spec()); |
Bernhard Bauer
2016/04/26 14:29:58
Why emplace_back here, but push_back above?
sfiera
2016/04/26 14:42:26
...but here I wrote it myself.
So, the inefficien
Bernhard Bauer
2016/04/26 14:50:49
:-D
To be fair, the old code was written before e
|
+ favicon_urls.emplace_back(site.favicon_url.spec()); |
+ large_icon_urls.emplace_back(site.large_icon_url.spec()); |
+ } |
Java_MostVisitedURLsObserver_onPopularURLsAvailable( |
env, observer_.obj(), ToJavaArrayOfStrings(env, urls).obj(), |
ToJavaArrayOfStrings(env, favicon_urls).obj(), |