| 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 1cb8f84ff327b6822c5d8fcb3c5c4fd49f2e73fa..cbb5bcb64447850a2e06e04193bf6aa242ac73bd 100644 | 
| --- a/chrome/browser/android/ntp/most_visited_sites_bridge.cc | 
| +++ b/chrome/browser/android/ntp/most_visited_sites_bridge.cc | 
| @@ -31,6 +31,7 @@ | 
| #include "components/ntp_tiles/icon_cacher.h" | 
| #include "components/ntp_tiles/metrics.h" | 
| #include "components/ntp_tiles/popular_sites.h" | 
| +#include "components/rappor/rappor_service_impl.h" | 
| #include "components/safe_json/safe_json_parser.h" | 
| #include "content/public/browser/browser_thread.h" | 
| #include "content/public/browser/url_data_source.h" | 
| @@ -48,6 +49,7 @@ using base::android::ToJavaArrayOfStrings; | 
| using base::android::ToJavaIntArray; | 
| using content::BrowserThread; | 
| using ntp_tiles::metrics::MostVisitedTileType; | 
| +using ntp_tiles::metrics::TileImpression; | 
| using ntp_tiles::MostVisitedSites; | 
| using ntp_tiles::MostVisitedSitesSupervisor; | 
| using ntp_tiles::NTPTileSource; | 
| @@ -203,22 +205,29 @@ void MostVisitedSitesBridge::RecordPageImpression( | 
| JNIEnv* env, | 
| const JavaParamRef<jobject>& obj, | 
| const JavaParamRef<jintArray>& jtile_types, | 
| -    const JavaParamRef<jintArray>& jsources) { | 
| +    const JavaParamRef<jintArray>& jsources, | 
| +    const JavaParamRef<jobjectArray>& jtile_urls) { | 
| std::vector<int> int_sources; | 
| base::android::JavaIntArrayToIntVector(env, jsources, &int_sources); | 
| std::vector<int> int_tile_types; | 
| base::android::JavaIntArrayToIntVector(env, jtile_types, &int_tile_types); | 
| +  std::vector<std::string> string_tile_urls; | 
| +  base::android::AppendJavaStringArrayToStringVector(env, jtile_urls, | 
| +                                                     &string_tile_urls); | 
|  | 
| DCHECK_EQ(int_sources.size(), int_tile_types.size()); | 
| +  DCHECK_EQ(int_sources.size(), string_tile_urls.size()); | 
|  | 
| -  std::vector<std::pair<NTPTileSource, MostVisitedTileType>> tiles; | 
| +  std::vector<TileImpression> tiles; | 
| for (size_t i = 0; i < int_sources.size(); i++) { | 
| NTPTileSource source = static_cast<NTPTileSource>(int_sources[i]); | 
| MostVisitedTileType tile_type = | 
| static_cast<MostVisitedTileType>(int_tile_types[i]); | 
| -    tiles.emplace_back(source, tile_type); | 
| + | 
| +    tiles.emplace_back(source, tile_type, GURL(string_tile_urls[i])); | 
| } | 
| -  ntp_tiles::metrics::RecordPageImpression(tiles); | 
| +  ntp_tiles::metrics::RecordPageImpression(tiles, | 
| +                                           g_browser_process->rappor_service()); | 
| } | 
|  | 
| void MostVisitedSitesBridge::RecordOpenedMostVisitedItem( | 
|  |