| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "base/strings/stringprintf.h" | 5 #include "base/strings/stringprintf.h" |
| 6 #include "chrome/browser/chrome_notification_types.h" | 6 #include "chrome/browser/chrome_notification_types.h" |
| 7 #include "chrome/browser/download/download_prefs.h" | 7 #include "chrome/browser/download/download_prefs.h" |
| 8 #include "chrome/browser/profiles/profile.h" | 8 #include "chrome/browser/profiles/profile.h" |
| 9 #include "chrome/browser/safe_browsing/download_protection_service.h" | 9 #include "chrome/browser/safe_browsing/download_protection_service.h" |
| 10 #include "chrome/browser/safe_browsing/safe_browsing_navigation_observer.h" | 10 #include "chrome/browser/safe_browsing/safe_browsing_navigation_observer.h" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 #include "content/public/test/test_utils.h" | 26 #include "content/public/test/test_utils.h" |
| 27 #include "net/dns/mock_host_resolver.h" | 27 #include "net/dns/mock_host_resolver.h" |
| 28 #include "net/test/embedded_test_server/embedded_test_server.h" | 28 #include "net/test/embedded_test_server/embedded_test_server.h" |
| 29 #include "url/gurl.h" | 29 #include "url/gurl.h" |
| 30 #include "url/url_canon.h" | 30 #include "url/url_canon.h" |
| 31 | 31 |
| 32 using content::DownloadItem; | 32 using content::DownloadItem; |
| 33 | 33 |
| 34 namespace safe_browsing { | 34 namespace safe_browsing { |
| 35 | 35 |
| 36 typedef SafeBrowsingNavigationObserverManager::ReferrerChain ReferrerChain; |
| 37 |
| 36 const char kSingleFrameTestURL[] = | 38 const char kSingleFrameTestURL[] = |
| 37 "/safe_browsing/download_protection/navigation_observer/" | 39 "/safe_browsing/download_protection/navigation_observer/" |
| 38 "navigation_observer_tests.html"; | 40 "navigation_observer_tests.html"; |
| 39 const char kMultiFrameTestURL[] = | 41 const char kMultiFrameTestURL[] = |
| 40 "/safe_browsing/download_protection/navigation_observer/" | 42 "/safe_browsing/download_protection/navigation_observer/" |
| 41 "navigation_observer_multi_frame_tests.html"; | 43 "navigation_observer_multi_frame_tests.html"; |
| 42 const char kRedirectURL[] = | 44 const char kRedirectURL[] = |
| 43 "/safe_browsing/download_protection/navigation_observer/redirect.html"; | 45 "/safe_browsing/download_protection/navigation_observer/redirect.html"; |
| 44 const char kDownloadDataURL[] = | 46 const char kDownloadDataURL[] = |
| 45 "data:application/octet-stream;base64,a2poYWxrc2hkbGtoYXNka2xoYXNsa2RoYWxra" | 47 "data:application/octet-stream;base64,a2poYWxrc2hkbGtoYXNka2xoYXNsa2RoYWxra" |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 227 EXPECT_EQ(expected_has_server_redirect, | 229 EXPECT_EQ(expected_has_server_redirect, |
| 228 actual_nav_event.has_server_redirect); | 230 actual_nav_event.has_server_redirect); |
| 229 } | 231 } |
| 230 | 232 |
| 231 void VerifyReferrerChainEntry(const GURL& expected_url, | 233 void VerifyReferrerChainEntry(const GURL& expected_url, |
| 232 ReferrerChainEntry::URLType expected_type, | 234 ReferrerChainEntry::URLType expected_type, |
| 233 const std::string& expected_ip_address, | 235 const std::string& expected_ip_address, |
| 234 const GURL& expected_referrer_url, | 236 const GURL& expected_referrer_url, |
| 235 const GURL& expected_referrer_main_frame_url, | 237 const GURL& expected_referrer_main_frame_url, |
| 236 bool expected_is_retargeting, | 238 bool expected_is_retargeting, |
| 237 ReferrerChainEntry actual_entry) { | 239 ReferrerChainEntry* actual_entry) { |
| 238 EXPECT_EQ(expected_url.spec(), actual_entry.url()); | 240 EXPECT_EQ(expected_url.spec(), actual_entry->url()); |
| 239 EXPECT_EQ(expected_type, actual_entry.type()); | 241 EXPECT_EQ(expected_type, actual_entry->type()); |
| 240 if (expected_ip_address.empty()) { | 242 if (expected_ip_address.empty()) { |
| 241 ASSERT_EQ(0, actual_entry.ip_addresses_size()); | 243 ASSERT_EQ(0, actual_entry->ip_addresses_size()); |
| 242 } else { | 244 } else { |
| 243 ASSERT_EQ(1, actual_entry.ip_addresses_size()); | 245 ASSERT_EQ(1, actual_entry->ip_addresses_size()); |
| 244 EXPECT_EQ(expected_ip_address, actual_entry.ip_addresses(0)); | 246 EXPECT_EQ(expected_ip_address, actual_entry->ip_addresses(0)); |
| 245 } | 247 } |
| 246 EXPECT_EQ(expected_referrer_url.spec(), actual_entry.referrer_url()); | 248 EXPECT_EQ(expected_referrer_url.spec(), actual_entry->referrer_url()); |
| 247 EXPECT_EQ(expected_referrer_main_frame_url.spec(), | 249 EXPECT_EQ(expected_referrer_main_frame_url.spec(), |
| 248 actual_entry.referrer_main_frame_url()); | 250 actual_entry->referrer_main_frame_url()); |
| 249 EXPECT_EQ(expected_is_retargeting, actual_entry.is_retargeting()); | 251 EXPECT_EQ(expected_is_retargeting, actual_entry->is_retargeting()); |
| 250 } | 252 } |
| 251 | 253 |
| 252 std::vector<ReferrerChainEntry> IdentifyReferrerChainForDownload( | 254 // Identify referrer chain of a DownloadItem and populate |referrer_chain|. |
| 253 DownloadItem* download) { | 255 void IdentifyReferrerChainForDownload( |
| 254 std::vector<ReferrerChainEntry> referrer_chain; | 256 DownloadItem* download, |
| 257 ReferrerChain* referrer_chain) { |
| 255 int download_tab_id = | 258 int download_tab_id = |
| 256 SessionTabHelper::IdForTab(download->GetWebContents()); | 259 SessionTabHelper::IdForTab(download->GetWebContents()); |
| 257 // IdentifyReferrerChain should return SUCCESS(1), SUCCESS_LANDING_PAGE(2), | 260 // IdentifyReferrerChain should return SUCCESS(1), SUCCESS_LANDING_PAGE(2), |
| 258 // or SUCCESS_LANDING_REFERRER(3) in all these tests. | 261 // or SUCCESS_LANDING_REFERRER(3) in all these tests. |
| 259 EXPECT_LE(observer_manager_->IdentifyReferrerChainForDownload( | 262 EXPECT_LE(observer_manager_->IdentifyReferrerChainForDownload( |
| 260 download->GetURL(), download_tab_id, | 263 download->GetURL(), download_tab_id, |
| 261 2, // kDownloadAttributionUserGestureLimit | 264 2, // kDownloadAttributionUserGestureLimit |
| 262 &referrer_chain), | 265 referrer_chain), |
| 263 SafeBrowsingNavigationObserverManager::SUCCESS_LANDING_REFERRER); | 266 SafeBrowsingNavigationObserverManager::SUCCESS_LANDING_REFERRER); |
| 264 return referrer_chain; | |
| 265 } | 267 } |
| 266 | 268 |
| 267 std::vector<ReferrerChainEntry> IdentifyReferrerChainForPPAPIDownload( | 269 // Identify referrer chain of a PPAPI download and populate |referrer_chain|. |
| 270 void IdentifyReferrerChainForPPAPIDownload( |
| 268 const GURL& initiating_frame_url, | 271 const GURL& initiating_frame_url, |
| 269 content::WebContents* web_contents) { | 272 content::WebContents* web_contents, |
| 270 std::vector<ReferrerChainEntry> referrer_chain; | 273 ReferrerChain* referrer_chain) { |
| 271 int tab_id = SessionTabHelper::IdForTab(web_contents); | 274 int tab_id = SessionTabHelper::IdForTab(web_contents); |
| 272 bool has_user_gesture = observer_manager_->HasUserGesture(web_contents); | 275 bool has_user_gesture = observer_manager_->HasUserGesture(web_contents); |
| 273 observer_manager_->OnUserGestureConsumed(web_contents, base::Time::Now()); | 276 observer_manager_->OnUserGestureConsumed(web_contents, base::Time::Now()); |
| 274 EXPECT_LE(observer_manager_->IdentifyReferrerChainForPPAPIDownload( | 277 EXPECT_LE(observer_manager_->IdentifyReferrerChainForPPAPIDownload( |
| 275 initiating_frame_url, | 278 initiating_frame_url, |
| 276 tab_id, | 279 tab_id, |
| 277 has_user_gesture, | 280 has_user_gesture, |
| 278 2, // kDownloadAttributionUserGestureLimit) | 281 2, // kDownloadAttributionUserGestureLimit) |
| 279 &referrer_chain), | 282 referrer_chain), |
| 280 SafeBrowsingNavigationObserverManager::SUCCESS_LANDING_REFERRER); | 283 SafeBrowsingNavigationObserverManager::SUCCESS_LANDING_REFERRER); |
| 281 return referrer_chain; | |
| 282 } | 284 } |
| 283 | 285 |
| 284 void VerifyHostToIpMap() { | 286 void VerifyHostToIpMap() { |
| 285 // Since all testing pages have the same host, there is only one entry in | 287 // Since all testing pages have the same host, there is only one entry in |
| 286 // host_to_ip_map_. | 288 // host_to_ip_map_. |
| 287 SafeBrowsingNavigationObserverManager::HostToIpMap* actual_host_ip_map = | 289 SafeBrowsingNavigationObserverManager::HostToIpMap* actual_host_ip_map = |
| 288 host_to_ip_map(); | 290 host_to_ip_map(); |
| 289 ASSERT_EQ(1U, actual_host_ip_map->size()); | 291 ASSERT_EQ(1U, actual_host_ip_map->size()); |
| 290 auto ip_list = | 292 auto ip_list = |
| 291 actual_host_ip_map->at(embedded_test_server()->base_url().host()); | 293 actual_host_ip_map->at(embedded_test_server()->base_url().host()); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 339 VerifyNavigationEvent(GURL(), // source_url | 341 VerifyNavigationEvent(GURL(), // source_url |
| 340 GURL(), // source_main_frame_url | 342 GURL(), // source_main_frame_url |
| 341 download_url, // original_request_url | 343 download_url, // original_request_url |
| 342 download_url, // destination_url | 344 download_url, // destination_url |
| 343 true, // is_user_initiated, | 345 true, // is_user_initiated, |
| 344 false, // has_committed | 346 false, // has_committed |
| 345 false, // has_server_redirect | 347 false, // has_server_redirect |
| 346 nav_map->at(download_url).at(0)); | 348 nav_map->at(download_url).at(0)); |
| 347 VerifyHostToIpMap(); | 349 VerifyHostToIpMap(); |
| 348 | 350 |
| 349 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 351 ReferrerChain referrer_chain; |
| 352 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 350 ASSERT_EQ(1U, referrer_chain.size()); | 353 ASSERT_EQ(1U, referrer_chain.size()); |
| 351 VerifyReferrerChainEntry(download_url, // url | 354 VerifyReferrerChainEntry(download_url, // url |
| 352 ReferrerChainEntry::DOWNLOAD_URL, // type | 355 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 353 test_server_ip, // ip_address | 356 test_server_ip, // ip_address |
| 354 GURL(), // referrer_url | 357 GURL(), // referrer_url |
| 355 GURL(), // referrer_main_frame_url | 358 GURL(), // referrer_main_frame_url |
| 356 false, // is_retargeting | 359 false, // is_retargeting |
| 357 referrer_chain[0]); | 360 referrer_chain[0].get()); |
| 358 } | 361 } |
| 359 // Click on a link and start download on the same page. | 362 // Click on a link and start download on the same page. |
| 360 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, DirectDownload) { | 363 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, DirectDownload) { |
| 361 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 364 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 362 ClickTestLink("direct_download", 1, initial_url); | 365 ClickTestLink("direct_download", 1, initial_url); |
| 363 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 366 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 364 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 367 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 365 auto nav_map = navigation_map(); | 368 auto nav_map = navigation_map(); |
| 366 ASSERT_TRUE(nav_map); | 369 ASSERT_TRUE(nav_map); |
| 367 ASSERT_EQ(2U, nav_map->size()); | 370 ASSERT_EQ(2U, nav_map->size()); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 378 VerifyNavigationEvent(initial_url, // source_url | 381 VerifyNavigationEvent(initial_url, // source_url |
| 379 initial_url, // source_main_frame_url | 382 initial_url, // source_main_frame_url |
| 380 download_url, // original_request_url | 383 download_url, // original_request_url |
| 381 download_url, // destination_url | 384 download_url, // destination_url |
| 382 true, // is_user_initiated, | 385 true, // is_user_initiated, |
| 383 false, // has_committed | 386 false, // has_committed |
| 384 false, // has_server_redirect | 387 false, // has_server_redirect |
| 385 nav_map->at(download_url).at(0)); | 388 nav_map->at(download_url).at(0)); |
| 386 VerifyHostToIpMap(); | 389 VerifyHostToIpMap(); |
| 387 | 390 |
| 388 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 391 ReferrerChain referrer_chain; |
| 392 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 389 ASSERT_EQ(2U, referrer_chain.size()); | 393 ASSERT_EQ(2U, referrer_chain.size()); |
| 390 VerifyReferrerChainEntry(download_url, // url | 394 VerifyReferrerChainEntry(download_url, // url |
| 391 ReferrerChainEntry::DOWNLOAD_URL, // type | 395 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 392 test_server_ip, // ip_address | 396 test_server_ip, // ip_address |
| 393 initial_url, // referrer_url | 397 initial_url, // referrer_url |
| 394 initial_url, // referrer_main_frame_url | 398 initial_url, // referrer_main_frame_url |
| 395 false, // is_retargeting | 399 false, // is_retargeting |
| 396 referrer_chain[0]); | 400 referrer_chain[0].get()); |
| 397 VerifyReferrerChainEntry(initial_url, // url | 401 VerifyReferrerChainEntry(initial_url, // url |
| 398 ReferrerChainEntry::LANDING_PAGE, // type | 402 ReferrerChainEntry::LANDING_PAGE, // type |
| 399 test_server_ip, // ip_address | 403 test_server_ip, // ip_address |
| 400 GURL(), // referrer_url | 404 GURL(), // referrer_url |
| 401 GURL(), // referrer_main_frame_url | 405 GURL(), // referrer_main_frame_url |
| 402 false, // is_retargeting | 406 false, // is_retargeting |
| 403 referrer_chain[1]); | 407 referrer_chain[1].get()); |
| 404 } | 408 } |
| 405 | 409 |
| 406 // Click on a link with rel="noreferrer" attribute, and start download on the | 410 // Click on a link with rel="noreferrer" attribute, and start download on the |
| 407 // same page. | 411 // same page. |
| 408 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 412 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 409 DirectDownloadNoReferrer) { | 413 DirectDownloadNoReferrer) { |
| 410 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 414 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 411 ClickTestLink("direct_download_noreferrer", 1, initial_url); | 415 ClickTestLink("direct_download_noreferrer", 1, initial_url); |
| 412 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 416 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 413 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 417 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 427 VerifyNavigationEvent(initial_url, // source_url | 431 VerifyNavigationEvent(initial_url, // source_url |
| 428 initial_url, // source_main_frame_url | 432 initial_url, // source_main_frame_url |
| 429 download_url, // original_request_url | 433 download_url, // original_request_url |
| 430 download_url, // destination_url | 434 download_url, // destination_url |
| 431 true, // is_user_initiated, | 435 true, // is_user_initiated, |
| 432 false, // has_committed | 436 false, // has_committed |
| 433 false, // has_server_redirect | 437 false, // has_server_redirect |
| 434 nav_map->at(download_url).at(0)); | 438 nav_map->at(download_url).at(0)); |
| 435 VerifyHostToIpMap(); | 439 VerifyHostToIpMap(); |
| 436 | 440 |
| 437 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 441 ReferrerChain referrer_chain; |
| 442 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 438 ASSERT_EQ(2U, referrer_chain.size()); | 443 ASSERT_EQ(2U, referrer_chain.size()); |
| 439 VerifyReferrerChainEntry(download_url, // url | 444 VerifyReferrerChainEntry(download_url, // url |
| 440 ReferrerChainEntry::DOWNLOAD_URL, // type | 445 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 441 test_server_ip, // ip_address | 446 test_server_ip, // ip_address |
| 442 initial_url, // referrer_url | 447 initial_url, // referrer_url |
| 443 initial_url, // referrer_main_frame_url | 448 initial_url, // referrer_main_frame_url |
| 444 false, // is_retargeting | 449 false, // is_retargeting |
| 445 referrer_chain[0]); | 450 referrer_chain[0].get()); |
| 446 VerifyReferrerChainEntry(initial_url, // url | 451 VerifyReferrerChainEntry(initial_url, // url |
| 447 ReferrerChainEntry::LANDING_PAGE, // type | 452 ReferrerChainEntry::LANDING_PAGE, // type |
| 448 test_server_ip, // ip_address | 453 test_server_ip, // ip_address |
| 449 GURL(), // referrer_url | 454 GURL(), // referrer_url |
| 450 GURL(), // referrer_main_frame_url | 455 GURL(), // referrer_main_frame_url |
| 451 false, // is_retargeting | 456 false, // is_retargeting |
| 452 referrer_chain[1]); | 457 referrer_chain[1].get()); |
| 453 } | 458 } |
| 454 | 459 |
| 455 // Click on a link with rel="noreferrer" attribute, and start download in a | 460 // Click on a link with rel="noreferrer" attribute, and start download in a |
| 456 // new tab using target=_blank. | 461 // new tab using target=_blank. |
| 457 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 462 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 458 DirectDownloadNoReferrerTargetBlank) { | 463 DirectDownloadNoReferrerTargetBlank) { |
| 459 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 464 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 460 ClickTestLink("direct_download_noreferrer_target_blank", 1, initial_url); | 465 ClickTestLink("direct_download_noreferrer_target_blank", 1, initial_url); |
| 461 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 466 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 462 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 467 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 490 VerifyNavigationEvent(GURL(), // source_url | 495 VerifyNavigationEvent(GURL(), // source_url |
| 491 GURL(), // source_main_frame_url | 496 GURL(), // source_main_frame_url |
| 492 download_url, // original_request_url | 497 download_url, // original_request_url |
| 493 download_url, // destination_url | 498 download_url, // destination_url |
| 494 false, // is_user_initiated, | 499 false, // is_user_initiated, |
| 495 false, // has_committed | 500 false, // has_committed |
| 496 false, // has_server_redirect | 501 false, // has_server_redirect |
| 497 nav_map->at(download_url).at(1)); | 502 nav_map->at(download_url).at(1)); |
| 498 VerifyHostToIpMap(); | 503 VerifyHostToIpMap(); |
| 499 | 504 |
| 500 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 505 ReferrerChain referrer_chain; |
| 506 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 501 ASSERT_EQ(2U, referrer_chain.size()); | 507 ASSERT_EQ(2U, referrer_chain.size()); |
| 502 VerifyReferrerChainEntry(download_url, // url | 508 VerifyReferrerChainEntry(download_url, // url |
| 503 ReferrerChainEntry::DOWNLOAD_URL, // type | 509 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 504 test_server_ip, // ip_address | 510 test_server_ip, // ip_address |
| 505 initial_url, // referrer_url | 511 initial_url, // referrer_url |
| 506 initial_url, // referrer_main_frame_url | 512 initial_url, // referrer_main_frame_url |
| 507 true, // is_retargeting | 513 true, // is_retargeting |
| 508 referrer_chain[0]); | 514 referrer_chain[0].get()); |
| 509 VerifyReferrerChainEntry(initial_url, // url | 515 VerifyReferrerChainEntry(initial_url, // url |
| 510 ReferrerChainEntry::LANDING_PAGE, // type | 516 ReferrerChainEntry::LANDING_PAGE, // type |
| 511 test_server_ip, // ip_address | 517 test_server_ip, // ip_address |
| 512 GURL(), // referrer_url | 518 GURL(), // referrer_url |
| 513 GURL(), // referrer_main_frame_url | 519 GURL(), // referrer_main_frame_url |
| 514 false, // is_retargeting | 520 false, // is_retargeting |
| 515 referrer_chain[1]); | 521 referrer_chain[1].get()); |
| 516 } | 522 } |
| 517 | 523 |
| 518 // Click on a link which navigates to a page then redirects to a download using | 524 // Click on a link which navigates to a page then redirects to a download using |
| 519 // META HTTP-EQUIV="refresh". All transitions happen in the same tab. | 525 // META HTTP-EQUIV="refresh". All transitions happen in the same tab. |
| 520 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 526 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 521 SingleMetaRefreshRedirect) { | 527 SingleMetaRefreshRedirect) { |
| 522 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 528 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 523 ClickTestLink("single_meta_refresh_redirect", 2, initial_url); | 529 ClickTestLink("single_meta_refresh_redirect", 2, initial_url); |
| 524 GURL redirect_url = embedded_test_server()->GetURL(kRedirectURL); | 530 GURL redirect_url = embedded_test_server()->GetURL(kRedirectURL); |
| 525 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 531 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 526 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 532 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 527 auto nav_map = navigation_map(); | 533 auto nav_map = navigation_map(); |
| 528 ASSERT_TRUE(nav_map); | 534 ASSERT_TRUE(nav_map); |
| 529 // Since unlike server redirects client redirects commit and then generate a | 535 // Since unlike server redirects client redirects commit and then generate a |
| 530 // second navigation, our observer records two NavigationEvents for this test. | 536 // second navigation, our observer records two NavigationEvents for this test. |
| 531 ASSERT_EQ(std::size_t(3), nav_map->size()); | 537 ASSERT_EQ(3U, nav_map->size()); |
| 532 ASSERT_EQ(1U, nav_map->at(redirect_url).size()); | 538 ASSERT_EQ(1U, nav_map->at(redirect_url).size()); |
| 533 ASSERT_EQ(1U, nav_map->at(download_url).size()); | 539 ASSERT_EQ(1U, nav_map->at(download_url).size()); |
| 534 ASSERT_EQ(1U, nav_map->at(initial_url).size()); | 540 ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
| 535 VerifyNavigationEvent(GURL(), // source_url | 541 VerifyNavigationEvent(GURL(), // source_url |
| 536 GURL(), // source_main_frame_url | 542 GURL(), // source_main_frame_url |
| 537 initial_url, // original_request_url | 543 initial_url, // original_request_url |
| 538 initial_url, // destination_url | 544 initial_url, // destination_url |
| 539 true, // is_user_initiated, | 545 true, // is_user_initiated, |
| 540 true, // has_committed | 546 true, // has_committed |
| 541 false, // has_server_redirect | 547 false, // has_server_redirect |
| 542 nav_map->at(initial_url).at(0)); | 548 nav_map->at(initial_url).at(0)); |
| 543 VerifyNavigationEvent(initial_url, // source_url | 549 VerifyNavigationEvent(initial_url, // source_url |
| 544 initial_url, // source_main_frame_url | 550 initial_url, // source_main_frame_url |
| 545 redirect_url, // original_request_url | 551 redirect_url, // original_request_url |
| 546 redirect_url, // destination_url | 552 redirect_url, // destination_url |
| 547 true, // is_user_initiated, | 553 true, // is_user_initiated, |
| 548 true, // has_committed | 554 true, // has_committed |
| 549 false, // has_server_redirect | 555 false, // has_server_redirect |
| 550 nav_map->at(redirect_url).at(0)); | 556 nav_map->at(redirect_url).at(0)); |
| 551 VerifyNavigationEvent(redirect_url, // source_url | 557 VerifyNavigationEvent(redirect_url, // source_url |
| 552 redirect_url, // source_main_frame_url | 558 redirect_url, // source_main_frame_url |
| 553 download_url, // original_request_url | 559 download_url, // original_request_url |
| 554 download_url, // destination_url | 560 download_url, // destination_url |
| 555 false, // is_user_initiated, | 561 false, // is_user_initiated, |
| 556 false, // has_committed | 562 false, // has_committed |
| 557 false, // has_server_redirect | 563 false, // has_server_redirect |
| 558 nav_map->at(download_url).at(0)); | 564 nav_map->at(download_url).at(0)); |
| 559 VerifyHostToIpMap(); | 565 VerifyHostToIpMap(); |
| 560 | 566 |
| 561 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 567 ReferrerChain referrer_chain; |
| 562 ASSERT_EQ(std::size_t(3), referrer_chain.size()); | 568 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 569 ASSERT_EQ(3U, referrer_chain.size()); |
| 563 VerifyReferrerChainEntry(download_url, // url | 570 VerifyReferrerChainEntry(download_url, // url |
| 564 ReferrerChainEntry::DOWNLOAD_URL, // type | 571 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 565 test_server_ip, // ip_address | 572 test_server_ip, // ip_address |
| 566 redirect_url, // referrer_url | 573 redirect_url, // referrer_url |
| 567 redirect_url, // referrer_main_frame_url | 574 redirect_url, // referrer_main_frame_url |
| 568 false, // is_retargeting | 575 false, // is_retargeting |
| 569 referrer_chain[0]); | 576 referrer_chain[0].get()); |
| 570 VerifyReferrerChainEntry(redirect_url, // url | 577 VerifyReferrerChainEntry(redirect_url, // url |
| 571 ReferrerChainEntry::CLIENT_REDIRECT, // type | 578 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 572 test_server_ip, // ip_address | 579 test_server_ip, // ip_address |
| 573 initial_url, // referrer_url | 580 initial_url, // referrer_url |
| 574 initial_url, // referrer_main_frame_url | 581 initial_url, // referrer_main_frame_url |
| 575 false, // is_retargeting | 582 false, // is_retargeting |
| 576 referrer_chain[1]); | 583 referrer_chain[1].get()); |
| 577 VerifyReferrerChainEntry(initial_url, // url | 584 VerifyReferrerChainEntry(initial_url, // url |
| 578 ReferrerChainEntry::LANDING_PAGE, // type | 585 ReferrerChainEntry::LANDING_PAGE, // type |
| 579 test_server_ip, // ip_address | 586 test_server_ip, // ip_address |
| 580 GURL(), // referrer_url | 587 GURL(), // referrer_url |
| 581 GURL(), // referrer_main_frame_url | 588 GURL(), // referrer_main_frame_url |
| 582 false, // is_retargeting | 589 false, // is_retargeting |
| 583 referrer_chain[2]); | 590 referrer_chain[2].get()); |
| 584 } | 591 } |
| 585 | 592 |
| 586 // Click on a link which navigates to a page then redirects to a download using | 593 // Click on a link which navigates to a page then redirects to a download using |
| 587 // META HTTP-EQUIV="refresh". First navigation happens in target blank. | 594 // META HTTP-EQUIV="refresh". First navigation happens in target blank. |
| 588 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 595 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 589 SingleMetaRefreshRedirectTargetBlank) { | 596 SingleMetaRefreshRedirectTargetBlank) { |
| 590 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 597 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 591 ClickTestLink("single_meta_refresh_redirect_target_blank", 2, initial_url); | 598 ClickTestLink("single_meta_refresh_redirect_target_blank", 2, initial_url); |
| 592 GURL redirect_url = embedded_test_server()->GetURL(kRedirectURL); | 599 GURL redirect_url = embedded_test_server()->GetURL(kRedirectURL); |
| 593 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 600 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 594 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 601 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 595 auto nav_map = navigation_map(); | 602 auto nav_map = navigation_map(); |
| 596 ASSERT_TRUE(nav_map); | 603 ASSERT_TRUE(nav_map); |
| 597 ASSERT_EQ(std::size_t(3), nav_map->size()); | 604 ASSERT_EQ(3U, nav_map->size()); |
| 598 ASSERT_EQ(2U, nav_map->at(redirect_url).size()); | 605 ASSERT_EQ(2U, nav_map->at(redirect_url).size()); |
| 599 ASSERT_EQ(1U, nav_map->at(download_url).size()); | 606 ASSERT_EQ(1U, nav_map->at(download_url).size()); |
| 600 ASSERT_EQ(1U, nav_map->at(initial_url).size()); | 607 ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
| 601 VerifyNavigationEvent(GURL(), // source_url | 608 VerifyNavigationEvent(GURL(), // source_url |
| 602 GURL(), // source_main_frame_url | 609 GURL(), // source_main_frame_url |
| 603 initial_url, // original_request_url | 610 initial_url, // original_request_url |
| 604 initial_url, // destination_url | 611 initial_url, // destination_url |
| 605 true, // is_user_initiated, | 612 true, // is_user_initiated, |
| 606 true, // has_committed | 613 true, // has_committed |
| 607 false, // has_server_redirect | 614 false, // has_server_redirect |
| (...skipping 20 matching lines...) Expand all Loading... |
| 628 VerifyNavigationEvent(redirect_url, // source_url | 635 VerifyNavigationEvent(redirect_url, // source_url |
| 629 redirect_url, // source_main_frame_url | 636 redirect_url, // source_main_frame_url |
| 630 download_url, // original_request_url | 637 download_url, // original_request_url |
| 631 download_url, // destination_url | 638 download_url, // destination_url |
| 632 false, // is_user_initiated, | 639 false, // is_user_initiated, |
| 633 false, // has_committed | 640 false, // has_committed |
| 634 false, // has_server_redirect | 641 false, // has_server_redirect |
| 635 nav_map->at(download_url).at(0)); | 642 nav_map->at(download_url).at(0)); |
| 636 VerifyHostToIpMap(); | 643 VerifyHostToIpMap(); |
| 637 | 644 |
| 638 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 645 ReferrerChain referrer_chain; |
| 639 ASSERT_EQ(std::size_t(3), referrer_chain.size()); | 646 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 647 ASSERT_EQ(3U, referrer_chain.size()); |
| 640 VerifyReferrerChainEntry(download_url, // url | 648 VerifyReferrerChainEntry(download_url, // url |
| 641 ReferrerChainEntry::DOWNLOAD_URL, // type | 649 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 642 test_server_ip, // ip_address | 650 test_server_ip, // ip_address |
| 643 redirect_url, // referrer_url | 651 redirect_url, // referrer_url |
| 644 redirect_url, // referrer_main_frame_url | 652 redirect_url, // referrer_main_frame_url |
| 645 false, // is_retargeting | 653 false, // is_retargeting |
| 646 referrer_chain[0]); | 654 referrer_chain[0].get()); |
| 647 VerifyReferrerChainEntry(redirect_url, // url | 655 VerifyReferrerChainEntry(redirect_url, // url |
| 648 ReferrerChainEntry::CLIENT_REDIRECT, // type | 656 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 649 test_server_ip, // ip_address | 657 test_server_ip, // ip_address |
| 650 initial_url, // referrer_url | 658 initial_url, // referrer_url |
| 651 initial_url, // referrer_main_frame_url | 659 initial_url, // referrer_main_frame_url |
| 652 true, // is_retargeting | 660 true, // is_retargeting |
| 653 referrer_chain[1]); | 661 referrer_chain[1].get()); |
| 654 VerifyReferrerChainEntry(initial_url, // url | 662 VerifyReferrerChainEntry(initial_url, // url |
| 655 ReferrerChainEntry::LANDING_PAGE, // type | 663 ReferrerChainEntry::LANDING_PAGE, // type |
| 656 test_server_ip, // ip_address | 664 test_server_ip, // ip_address |
| 657 GURL(), // referrer_url | 665 GURL(), // referrer_url |
| 658 GURL(), // referrer_main_frame_url | 666 GURL(), // referrer_main_frame_url |
| 659 false, // is_retargeting | 667 false, // is_retargeting |
| 660 referrer_chain[2]); | 668 referrer_chain[2].get()); |
| 661 } | 669 } |
| 662 | 670 |
| 663 // Click on a link which redirects twice before reaching download using | 671 // Click on a link which redirects twice before reaching download using |
| 664 // META HTTP-EQUIV="refresh". All transitions happen in the same tab. | 672 // META HTTP-EQUIV="refresh". All transitions happen in the same tab. |
| 665 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 673 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 666 MultiMetaRefreshRedirects) { | 674 MultiMetaRefreshRedirects) { |
| 667 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 675 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 668 ClickTestLink("multiple_meta_refresh_redirects", 3, initial_url); | 676 ClickTestLink("multiple_meta_refresh_redirects", 3, initial_url); |
| 669 GURL first_redirect_url = embedded_test_server()->GetURL( | 677 GURL first_redirect_url = embedded_test_server()->GetURL( |
| 670 "/safe_browsing/download_protection/navigation_observer/" | 678 "/safe_browsing/download_protection/navigation_observer/" |
| 671 "double_redirect.html"); | 679 "double_redirect.html"); |
| 672 GURL second_redirect_url = embedded_test_server()->GetURL(kRedirectURL); | 680 GURL second_redirect_url = embedded_test_server()->GetURL(kRedirectURL); |
| 673 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 681 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 674 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 682 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 675 auto nav_map = navigation_map(); | 683 auto nav_map = navigation_map(); |
| 676 ASSERT_TRUE(nav_map); | 684 ASSERT_TRUE(nav_map); |
| 677 ASSERT_EQ(std::size_t(4), nav_map->size()); | 685 ASSERT_EQ(4U, nav_map->size()); |
| 678 ASSERT_EQ(1U, nav_map->at(first_redirect_url).size()); | 686 ASSERT_EQ(1U, nav_map->at(first_redirect_url).size()); |
| 679 ASSERT_EQ(1U, nav_map->at(second_redirect_url).size()); | 687 ASSERT_EQ(1U, nav_map->at(second_redirect_url).size()); |
| 680 ASSERT_EQ(1U, nav_map->at(download_url).size()); | 688 ASSERT_EQ(1U, nav_map->at(download_url).size()); |
| 681 ASSERT_EQ(1U, nav_map->at(initial_url).size()); | 689 ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
| 682 VerifyNavigationEvent(GURL(), // source_url | 690 VerifyNavigationEvent(GURL(), // source_url |
| 683 GURL(), // source_main_frame_url | 691 GURL(), // source_main_frame_url |
| 684 initial_url, // original_request_url | 692 initial_url, // original_request_url |
| 685 initial_url, // destination_url | 693 initial_url, // destination_url |
| 686 true, // is_user_initiated, | 694 true, // is_user_initiated, |
| 687 true, // has_committed | 695 true, // has_committed |
| (...skipping 18 matching lines...) Expand all Loading... |
| 706 VerifyNavigationEvent(second_redirect_url, // source_url | 714 VerifyNavigationEvent(second_redirect_url, // source_url |
| 707 second_redirect_url, // source_main_frame_url | 715 second_redirect_url, // source_main_frame_url |
| 708 download_url, // original_request_url | 716 download_url, // original_request_url |
| 709 download_url, // destination_url | 717 download_url, // destination_url |
| 710 false, // is_user_initiated, | 718 false, // is_user_initiated, |
| 711 false, // has_committed | 719 false, // has_committed |
| 712 false, // has_server_redirect | 720 false, // has_server_redirect |
| 713 nav_map->at(download_url).at(0)); | 721 nav_map->at(download_url).at(0)); |
| 714 VerifyHostToIpMap(); | 722 VerifyHostToIpMap(); |
| 715 | 723 |
| 716 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 724 ReferrerChain referrer_chain; |
| 717 ASSERT_EQ(std::size_t(4), referrer_chain.size()); | 725 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 726 ASSERT_EQ(4U, referrer_chain.size()); |
| 718 VerifyReferrerChainEntry(download_url, // url | 727 VerifyReferrerChainEntry(download_url, // url |
| 719 ReferrerChainEntry::DOWNLOAD_URL, // type | 728 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 720 test_server_ip, // ip_address | 729 test_server_ip, // ip_address |
| 721 second_redirect_url, // referrer_url | 730 second_redirect_url, // referrer_url |
| 722 second_redirect_url, // referrer_main_frame_url | 731 second_redirect_url, // referrer_main_frame_url |
| 723 false, // is_retargeting | 732 false, // is_retargeting |
| 724 referrer_chain[0]); | 733 referrer_chain[0].get()); |
| 725 VerifyReferrerChainEntry(second_redirect_url, // url | 734 VerifyReferrerChainEntry(second_redirect_url, // url |
| 726 ReferrerChainEntry::CLIENT_REDIRECT, // type | 735 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 727 test_server_ip, // ip_address | 736 test_server_ip, // ip_address |
| 728 first_redirect_url, // referrer_url | 737 first_redirect_url, // referrer_url |
| 729 first_redirect_url, // referrer_main_frame_url | 738 first_redirect_url, // referrer_main_frame_url |
| 730 false, // is_retargeting | 739 false, // is_retargeting |
| 731 referrer_chain[1]); | 740 referrer_chain[1].get()); |
| 732 VerifyReferrerChainEntry(first_redirect_url, // url | 741 VerifyReferrerChainEntry(first_redirect_url, // url |
| 733 ReferrerChainEntry::CLIENT_REDIRECT, // type | 742 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 734 test_server_ip, // ip_address | 743 test_server_ip, // ip_address |
| 735 initial_url, // referrer_url | 744 initial_url, // referrer_url |
| 736 initial_url, // referrer_main_frame_url | 745 initial_url, // referrer_main_frame_url |
| 737 false, // is_retargeting | 746 false, // is_retargeting |
| 738 referrer_chain[2]); | 747 referrer_chain[2].get()); |
| 739 VerifyReferrerChainEntry(initial_url, // url | 748 VerifyReferrerChainEntry(initial_url, // url |
| 740 ReferrerChainEntry::LANDING_PAGE, // type | 749 ReferrerChainEntry::LANDING_PAGE, // type |
| 741 test_server_ip, // ip_address | 750 test_server_ip, // ip_address |
| 742 GURL(), // referrer_url | 751 GURL(), // referrer_url |
| 743 GURL(), // referrer_main_frame_url | 752 GURL(), // referrer_main_frame_url |
| 744 false, // is_retargeting | 753 false, // is_retargeting |
| 745 referrer_chain[3]); | 754 referrer_chain[3].get()); |
| 746 } | 755 } |
| 747 | 756 |
| 748 // Click on a link which redirects to download using window.location. | 757 // Click on a link which redirects to download using window.location. |
| 749 // All transitions happen in the same tab. | 758 // All transitions happen in the same tab. |
| 750 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 759 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 751 WindowLocationRedirect) { | 760 WindowLocationRedirect) { |
| 752 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 761 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 753 ClickTestLink("window_location_redirection", 1, initial_url); | 762 ClickTestLink("window_location_redirection", 1, initial_url); |
| 754 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 763 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 755 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 764 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 768 nav_map->at(initial_url).at(0)); | 777 nav_map->at(initial_url).at(0)); |
| 769 VerifyNavigationEvent(initial_url, // source_url | 778 VerifyNavigationEvent(initial_url, // source_url |
| 770 initial_url, // source_main_frame_url | 779 initial_url, // source_main_frame_url |
| 771 download_url, // original_request_url | 780 download_url, // original_request_url |
| 772 download_url, // destination_url | 781 download_url, // destination_url |
| 773 true, // is_user_initiated, | 782 true, // is_user_initiated, |
| 774 false, // has_committed | 783 false, // has_committed |
| 775 false, // has_server_redirect | 784 false, // has_server_redirect |
| 776 nav_map->at(download_url).at(0)); | 785 nav_map->at(download_url).at(0)); |
| 777 | 786 |
| 778 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 787 ReferrerChain referrer_chain; |
| 788 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 779 ASSERT_EQ(2U, referrer_chain.size()); | 789 ASSERT_EQ(2U, referrer_chain.size()); |
| 780 VerifyReferrerChainEntry(download_url, // url | 790 VerifyReferrerChainEntry(download_url, // url |
| 781 ReferrerChainEntry::DOWNLOAD_URL, // type | 791 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 782 test_server_ip, // ip_address | 792 test_server_ip, // ip_address |
| 783 initial_url, // referrer_url | 793 initial_url, // referrer_url |
| 784 initial_url, // referrer_main_frame_url | 794 initial_url, // referrer_main_frame_url |
| 785 false, // is_retargeting | 795 false, // is_retargeting |
| 786 referrer_chain[0]); | 796 referrer_chain[0].get()); |
| 787 VerifyReferrerChainEntry(initial_url, // url | 797 VerifyReferrerChainEntry(initial_url, // url |
| 788 ReferrerChainEntry::LANDING_PAGE, // type | 798 ReferrerChainEntry::LANDING_PAGE, // type |
| 789 test_server_ip, // ip_address | 799 test_server_ip, // ip_address |
| 790 GURL(), // referrer_url | 800 GURL(), // referrer_url |
| 791 GURL(), // referrer_main_frame_url | 801 GURL(), // referrer_main_frame_url |
| 792 false, // is_retargeting | 802 false, // is_retargeting |
| 793 referrer_chain[1]); | 803 referrer_chain[1].get()); |
| 794 } | 804 } |
| 795 | 805 |
| 796 // Click on a link which redirects twice until it reaches download using a | 806 // Click on a link which redirects twice until it reaches download using a |
| 797 // mixture of meta refresh and window.location. All transitions happen in the | 807 // mixture of meta refresh and window.location. All transitions happen in the |
| 798 // same tab. | 808 // same tab. |
| 799 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, MixRedirects) { | 809 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, MixRedirects) { |
| 800 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 810 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 801 ClickTestLink("mix_redirects", 2, initial_url); | 811 ClickTestLink("mix_redirects", 2, initial_url); |
| 802 GURL redirect_url = embedded_test_server()->GetURL(kRedirectURL); | 812 GURL redirect_url = embedded_test_server()->GetURL(kRedirectURL); |
| 803 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 813 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 804 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 814 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 805 auto nav_map = navigation_map(); | 815 auto nav_map = navigation_map(); |
| 806 ASSERT_TRUE(nav_map); | 816 ASSERT_TRUE(nav_map); |
| 807 ASSERT_EQ(std::size_t(3), nav_map->size()); | 817 ASSERT_EQ(3U, nav_map->size()); |
| 808 ASSERT_EQ(1U, nav_map->at(redirect_url).size()); | 818 ASSERT_EQ(1U, nav_map->at(redirect_url).size()); |
| 809 ASSERT_EQ(1U, nav_map->at(download_url).size()); | 819 ASSERT_EQ(1U, nav_map->at(download_url).size()); |
| 810 ASSERT_EQ(1U, nav_map->at(initial_url).size()); | 820 ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
| 811 VerifyNavigationEvent(GURL(), // source_url | 821 VerifyNavigationEvent(GURL(), // source_url |
| 812 GURL(), // source_main_frame_url | 822 GURL(), // source_main_frame_url |
| 813 initial_url, // original_request_url | 823 initial_url, // original_request_url |
| 814 initial_url, // destination_url | 824 initial_url, // destination_url |
| 815 true, // is_user_initiated, | 825 true, // is_user_initiated, |
| 816 true, // has_committed | 826 true, // has_committed |
| 817 false, // has_server_redirect | 827 false, // has_server_redirect |
| 818 nav_map->at(initial_url).at(0)); | 828 nav_map->at(initial_url).at(0)); |
| 819 VerifyNavigationEvent(initial_url, // source_url | 829 VerifyNavigationEvent(initial_url, // source_url |
| 820 initial_url, // source_main_frame_url | 830 initial_url, // source_main_frame_url |
| 821 redirect_url, // original_request_url | 831 redirect_url, // original_request_url |
| 822 redirect_url, // destination_url | 832 redirect_url, // destination_url |
| 823 true, // is_user_initiated, | 833 true, // is_user_initiated, |
| 824 true, // has_committed | 834 true, // has_committed |
| 825 false, // has_server_redirect | 835 false, // has_server_redirect |
| 826 nav_map->at(redirect_url).at(0)); | 836 nav_map->at(redirect_url).at(0)); |
| 827 VerifyNavigationEvent(redirect_url, // source_url | 837 VerifyNavigationEvent(redirect_url, // source_url |
| 828 redirect_url, // source_main_frame_url | 838 redirect_url, // source_main_frame_url |
| 829 download_url, // original_request_url | 839 download_url, // original_request_url |
| 830 download_url, // destination_url | 840 download_url, // destination_url |
| 831 false, // is_user_initiated, | 841 false, // is_user_initiated, |
| 832 false, // has_committed | 842 false, // has_committed |
| 833 false, // has_server_redirect | 843 false, // has_server_redirect |
| 834 nav_map->at(download_url).at(0)); | 844 nav_map->at(download_url).at(0)); |
| 835 VerifyHostToIpMap(); | 845 VerifyHostToIpMap(); |
| 836 | 846 |
| 837 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 847 ReferrerChain referrer_chain; |
| 838 ASSERT_EQ(std::size_t(3), referrer_chain.size()); | 848 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 849 ASSERT_EQ(3U, referrer_chain.size()); |
| 839 VerifyReferrerChainEntry(download_url, // url | 850 VerifyReferrerChainEntry(download_url, // url |
| 840 ReferrerChainEntry::DOWNLOAD_URL, // type | 851 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 841 test_server_ip, // ip_address | 852 test_server_ip, // ip_address |
| 842 redirect_url, // referrer_url | 853 redirect_url, // referrer_url |
| 843 redirect_url, // referrer_main_frame_url | 854 redirect_url, // referrer_main_frame_url |
| 844 false, // is_retargeting | 855 false, // is_retargeting |
| 845 referrer_chain[0]); | 856 referrer_chain[0].get()); |
| 846 VerifyReferrerChainEntry(redirect_url, // url | 857 VerifyReferrerChainEntry(redirect_url, // url |
| 847 ReferrerChainEntry::CLIENT_REDIRECT, // type | 858 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 848 test_server_ip, // ip_address | 859 test_server_ip, // ip_address |
| 849 initial_url, // referrer_url | 860 initial_url, // referrer_url |
| 850 initial_url, // referrer_main_frame_url | 861 initial_url, // referrer_main_frame_url |
| 851 false, // is_retargeting | 862 false, // is_retargeting |
| 852 referrer_chain[1]); | 863 referrer_chain[1].get()); |
| 853 VerifyReferrerChainEntry(initial_url, // url | 864 VerifyReferrerChainEntry(initial_url, // url |
| 854 ReferrerChainEntry::LANDING_PAGE, // type | 865 ReferrerChainEntry::LANDING_PAGE, // type |
| 855 test_server_ip, // ip_address | 866 test_server_ip, // ip_address |
| 856 GURL(), // referrer_url | 867 GURL(), // referrer_url |
| 857 GURL(), // referrer_main_frame_url | 868 GURL(), // referrer_main_frame_url |
| 858 false, // is_retargeting | 869 false, // is_retargeting |
| 859 referrer_chain[2]); | 870 referrer_chain[2].get()); |
| 860 } | 871 } |
| 861 | 872 |
| 862 // Use javascript to open download in a new tab. | 873 // Use javascript to open download in a new tab. |
| 863 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, NewTabDownload) { | 874 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, NewTabDownload) { |
| 864 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 875 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 865 ClickTestLink("new_tab_download", 2, initial_url); | 876 ClickTestLink("new_tab_download", 2, initial_url); |
| 866 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 877 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 867 GURL blank_url = GURL(url::kAboutBlankURL); | 878 GURL blank_url = GURL(url::kAboutBlankURL); |
| 868 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 879 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 869 auto nav_map = navigation_map(); | 880 auto nav_map = navigation_map(); |
| 870 ASSERT_TRUE(nav_map); | 881 ASSERT_TRUE(nav_map); |
| 871 ASSERT_EQ(std::size_t(3), nav_map->size()); | 882 ASSERT_EQ(3U, nav_map->size()); |
| 872 ASSERT_EQ(2U, nav_map->at(blank_url).size()); | 883 ASSERT_EQ(2U, nav_map->at(blank_url).size()); |
| 873 ASSERT_EQ(1U, nav_map->at(download_url).size()); | 884 ASSERT_EQ(1U, nav_map->at(download_url).size()); |
| 874 ASSERT_EQ(1U, nav_map->at(initial_url).size()); | 885 ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
| 875 VerifyNavigationEvent(GURL(), // source_url | 886 VerifyNavigationEvent(GURL(), // source_url |
| 876 GURL(), // source_main_frame_url | 887 GURL(), // source_main_frame_url |
| 877 initial_url, // original_request_url | 888 initial_url, // original_request_url |
| 878 initial_url, // destination_url | 889 initial_url, // destination_url |
| 879 true, // is_user_initiated, | 890 true, // is_user_initiated, |
| 880 true, // has_committed | 891 true, // has_committed |
| 881 false, // has_server_redirect | 892 false, // has_server_redirect |
| (...skipping 24 matching lines...) Expand all Loading... |
| 906 download_url, // original_request_url | 917 download_url, // original_request_url |
| 907 download_url, // destination_url | 918 download_url, // destination_url |
| 908 false, // is_user_initiated, | 919 false, // is_user_initiated, |
| 909 false, // has_committed | 920 false, // has_committed |
| 910 false, // has_server_redirect | 921 false, // has_server_redirect |
| 911 nav_map->at(download_url).at(0)); | 922 nav_map->at(download_url).at(0)); |
| 912 EXPECT_EQ(nav_map->at(download_url).at(0).source_tab_id, | 923 EXPECT_EQ(nav_map->at(download_url).at(0).source_tab_id, |
| 913 nav_map->at(download_url).at(0).target_tab_id); | 924 nav_map->at(download_url).at(0).target_tab_id); |
| 914 VerifyHostToIpMap(); | 925 VerifyHostToIpMap(); |
| 915 | 926 |
| 916 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 927 ReferrerChain referrer_chain; |
| 917 ASSERT_EQ(std::size_t(3), referrer_chain.size()); | 928 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 929 ASSERT_EQ(3U, referrer_chain.size()); |
| 918 VerifyReferrerChainEntry(download_url, // url | 930 VerifyReferrerChainEntry(download_url, // url |
| 919 ReferrerChainEntry::DOWNLOAD_URL, // type | 931 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 920 test_server_ip, // ip_address | 932 test_server_ip, // ip_address |
| 921 blank_url, // referrer_url | 933 blank_url, // referrer_url |
| 922 blank_url, // referrer_main_frame_url | 934 blank_url, // referrer_main_frame_url |
| 923 false, // is_retargeting | 935 false, // is_retargeting |
| 924 referrer_chain[0]); | 936 referrer_chain[0].get()); |
| 925 VerifyReferrerChainEntry(blank_url, // url | 937 VerifyReferrerChainEntry(blank_url, // url |
| 926 ReferrerChainEntry::CLIENT_REDIRECT, // type | 938 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 927 "", // ip_address | 939 "", // ip_address |
| 928 initial_url, // referrer_url | 940 initial_url, // referrer_url |
| 929 initial_url, // referrer_main_frame_url | 941 initial_url, // referrer_main_frame_url |
| 930 true, // is_retargeting | 942 true, // is_retargeting |
| 931 referrer_chain[1]); | 943 referrer_chain[1].get()); |
| 932 VerifyReferrerChainEntry(initial_url, // url | 944 VerifyReferrerChainEntry(initial_url, // url |
| 933 ReferrerChainEntry::LANDING_PAGE, // type | 945 ReferrerChainEntry::LANDING_PAGE, // type |
| 934 test_server_ip, // ip_address | 946 test_server_ip, // ip_address |
| 935 GURL(), // referrer_url | 947 GURL(), // referrer_url |
| 936 GURL(), // referrer_main_frame_url | 948 GURL(), // referrer_main_frame_url |
| 937 false, // is_retargeting | 949 false, // is_retargeting |
| 938 referrer_chain[2]); | 950 referrer_chain[2].get()); |
| 939 } | 951 } |
| 940 | 952 |
| 941 // Use javascript to open download in a new tab and download has a data url. | 953 // Use javascript to open download in a new tab and download has a data url. |
| 942 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 954 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 943 NewTabDownloadWithDataURL) { | 955 NewTabDownloadWithDataURL) { |
| 944 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 956 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 945 ClickTestLink("new_tab_download_with_data_url", 2, initial_url); | 957 ClickTestLink("new_tab_download_with_data_url", 2, initial_url); |
| 946 GURL download_url = GURL(kDownloadDataURL); | 958 GURL download_url = GURL(kDownloadDataURL); |
| 947 GURL blank_url = GURL(url::kAboutBlankURL); | 959 GURL blank_url = GURL(url::kAboutBlankURL); |
| 948 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 960 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 949 auto nav_map = navigation_map(); | 961 auto nav_map = navigation_map(); |
| 950 ASSERT_TRUE(nav_map); | 962 ASSERT_TRUE(nav_map); |
| 951 ASSERT_EQ(std::size_t(3), nav_map->size()); | 963 ASSERT_EQ(3U, nav_map->size()); |
| 952 ASSERT_EQ(2U, nav_map->at(blank_url).size()); | 964 ASSERT_EQ(2U, nav_map->at(blank_url).size()); |
| 953 ASSERT_EQ(1U, nav_map->at(download_url).size()); | 965 ASSERT_EQ(1U, nav_map->at(download_url).size()); |
| 954 ASSERT_EQ(1U, nav_map->at(initial_url).size()); | 966 ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
| 955 VerifyNavigationEvent(GURL(), // source_url | 967 VerifyNavigationEvent(GURL(), // source_url |
| 956 GURL(), // source_main_frame_url | 968 GURL(), // source_main_frame_url |
| 957 initial_url, // original_request_url | 969 initial_url, // original_request_url |
| 958 initial_url, // destination_url | 970 initial_url, // destination_url |
| 959 true, // is_user_initiated, | 971 true, // is_user_initiated, |
| 960 true, // has_committed | 972 true, // has_committed |
| 961 false, // has_server_redirect | 973 false, // has_server_redirect |
| (...skipping 25 matching lines...) Expand all Loading... |
| 987 download_url, // original_request_url | 999 download_url, // original_request_url |
| 988 download_url, // destination_url | 1000 download_url, // destination_url |
| 989 false, // is_user_initiated, | 1001 false, // is_user_initiated, |
| 990 false, // has_committed | 1002 false, // has_committed |
| 991 false, // has_server_redirect | 1003 false, // has_server_redirect |
| 992 nav_map->at(download_url).at(0)); | 1004 nav_map->at(download_url).at(0)); |
| 993 EXPECT_TRUE(nav_map->at(download_url).at(0).source_tab_id == | 1005 EXPECT_TRUE(nav_map->at(download_url).at(0).source_tab_id == |
| 994 nav_map->at(download_url).at(0).target_tab_id); | 1006 nav_map->at(download_url).at(0).target_tab_id); |
| 995 VerifyHostToIpMap(); | 1007 VerifyHostToIpMap(); |
| 996 | 1008 |
| 997 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 1009 ReferrerChain referrer_chain; |
| 998 ASSERT_EQ(std::size_t(3), referrer_chain.size()); | 1010 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1011 ASSERT_EQ(3U, referrer_chain.size()); |
| 999 VerifyReferrerChainEntry(download_url, // url | 1012 VerifyReferrerChainEntry(download_url, // url |
| 1000 ReferrerChainEntry::DOWNLOAD_URL, // type | 1013 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1001 "", // ip_address | 1014 "", // ip_address |
| 1002 blank_url, // referrer_url | 1015 blank_url, // referrer_url |
| 1003 blank_url, // referrer_main_frame_url | 1016 blank_url, // referrer_main_frame_url |
| 1004 false, // is_retargeting | 1017 false, // is_retargeting |
| 1005 referrer_chain[0]); | 1018 referrer_chain[0].get()); |
| 1006 VerifyReferrerChainEntry(blank_url, // url | 1019 VerifyReferrerChainEntry(blank_url, // url |
| 1007 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1020 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1008 "", // ip_address | 1021 "", // ip_address |
| 1009 initial_url, // referrer_url | 1022 initial_url, // referrer_url |
| 1010 initial_url, // referrer_main_frame_url | 1023 initial_url, // referrer_main_frame_url |
| 1011 true, // is_retargeting | 1024 true, // is_retargeting |
| 1012 referrer_chain[1]); | 1025 referrer_chain[1].get()); |
| 1013 VerifyReferrerChainEntry(initial_url, // url | 1026 VerifyReferrerChainEntry(initial_url, // url |
| 1014 ReferrerChainEntry::LANDING_PAGE, // type | 1027 ReferrerChainEntry::LANDING_PAGE, // type |
| 1015 test_server_ip, // ip_address | 1028 test_server_ip, // ip_address |
| 1016 GURL(), // referrer_url | 1029 GURL(), // referrer_url |
| 1017 GURL(), // referrer_main_frame_url | 1030 GURL(), // referrer_main_frame_url |
| 1018 false, // is_retargeting | 1031 false, // is_retargeting |
| 1019 referrer_chain[2]); | 1032 referrer_chain[2].get()); |
| 1020 } | 1033 } |
| 1021 | 1034 |
| 1022 // TODO(jialiul): Need to figure out why this test is failing on Windows and | 1035 // TODO(jialiul): Need to figure out why this test is failing on Windows and |
| 1023 // flaky on other platforms. | 1036 // flaky on other platforms. |
| 1024 #define MAYBE_DownloadViaHTML5FileApi DISABLED_DownloadViaHTML5FileApi | 1037 #define MAYBE_DownloadViaHTML5FileApi DISABLED_DownloadViaHTML5FileApi |
| 1025 // Download via html5 file API. | 1038 // Download via html5 file API. |
| 1026 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 1039 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1027 MAYBE_DownloadViaHTML5FileApi) { | 1040 MAYBE_DownloadViaHTML5FileApi) { |
| 1028 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1041 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1029 ClickTestLink("html5_file_api", 1, initial_url); | 1042 ClickTestLink("html5_file_api", 1, initial_url); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1048 VerifyNavigationEvent(initial_url, // source_url | 1061 VerifyNavigationEvent(initial_url, // source_url |
| 1049 initial_url, // source_main_frame_url | 1062 initial_url, // source_main_frame_url |
| 1050 download_url, // original_request_url | 1063 download_url, // original_request_url |
| 1051 download_url, // destination_url | 1064 download_url, // destination_url |
| 1052 true, // is_user_initiated, | 1065 true, // is_user_initiated, |
| 1053 false, // has_committed | 1066 false, // has_committed |
| 1054 false, // has_server_redirect | 1067 false, // has_server_redirect |
| 1055 nav_map->at(download_url).at(0)); | 1068 nav_map->at(download_url).at(0)); |
| 1056 VerifyHostToIpMap(); | 1069 VerifyHostToIpMap(); |
| 1057 | 1070 |
| 1058 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 1071 ReferrerChain referrer_chain; |
| 1072 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1059 ASSERT_EQ(2U, referrer_chain.size()); | 1073 ASSERT_EQ(2U, referrer_chain.size()); |
| 1060 VerifyReferrerChainEntry(download_url, // url | 1074 VerifyReferrerChainEntry(download_url, // url |
| 1061 ReferrerChainEntry::DOWNLOAD_URL, // type | 1075 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1062 "", // ip_address | 1076 "", // ip_address |
| 1063 initial_url, // referrer_url | 1077 initial_url, // referrer_url |
| 1064 initial_url, // referrer_main_frame_url | 1078 initial_url, // referrer_main_frame_url |
| 1065 false, // is_retargeting | 1079 false, // is_retargeting |
| 1066 referrer_chain[0]); | 1080 referrer_chain[0].get()); |
| 1067 VerifyReferrerChainEntry(initial_url, // url | 1081 VerifyReferrerChainEntry(initial_url, // url |
| 1068 ReferrerChainEntry::LANDING_PAGE, // type | 1082 ReferrerChainEntry::LANDING_PAGE, // type |
| 1069 test_server_ip, // ip_address | 1083 test_server_ip, // ip_address |
| 1070 GURL(), // referrer_url | 1084 GURL(), // referrer_url |
| 1071 GURL(), // referrer_main_frame_url | 1085 GURL(), // referrer_main_frame_url |
| 1072 false, // is_retargeting | 1086 false, // is_retargeting |
| 1073 referrer_chain[1]); | 1087 referrer_chain[1].get()); |
| 1074 } | 1088 } |
| 1075 | 1089 |
| 1076 // Click a link in a subframe and start download. | 1090 // Click a link in a subframe and start download. |
| 1077 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 1091 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1078 SubFrameDirectDownload) { | 1092 SubFrameDirectDownload) { |
| 1079 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1093 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1080 ClickTestLink("sub_frame_download_attribution", 1, initial_url); | 1094 ClickTestLink("sub_frame_download_attribution", 1, initial_url); |
| 1081 std::string test_name = | 1095 std::string test_name = |
| 1082 base::StringPrintf("%s', '%s", "iframe1", "iframe_direct_download"); | 1096 base::StringPrintf("%s', '%s", "iframe1", "iframe_direct_download"); |
| 1083 GURL multi_frame_test_url = | 1097 GURL multi_frame_test_url = |
| 1084 embedded_test_server()->GetURL(kMultiFrameTestURL); | 1098 embedded_test_server()->GetURL(kMultiFrameTestURL); |
| 1085 GURL iframe_url = embedded_test_server()->GetURL(kIframeDirectDownloadURL); | 1099 GURL iframe_url = embedded_test_server()->GetURL(kIframeDirectDownloadURL); |
| 1086 ClickTestLink(test_name.c_str(), 1, iframe_url); | 1100 ClickTestLink(test_name.c_str(), 1, iframe_url); |
| 1087 GURL iframe_retargeting_url = | 1101 GURL iframe_retargeting_url = |
| 1088 embedded_test_server()->GetURL(kIframeRetargetingURL); | 1102 embedded_test_server()->GetURL(kIframeRetargetingURL); |
| 1089 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 1103 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 1090 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 1104 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 1091 auto nav_map = navigation_map(); | 1105 auto nav_map = navigation_map(); |
| 1092 ASSERT_TRUE(nav_map); | 1106 ASSERT_TRUE(nav_map); |
| 1093 ASSERT_EQ(std::size_t(5), nav_map->size()); | 1107 ASSERT_EQ(5U, nav_map->size()); |
| 1094 ASSERT_EQ(1U, nav_map->at(multi_frame_test_url).size()); | 1108 ASSERT_EQ(1U, nav_map->at(multi_frame_test_url).size()); |
| 1095 ASSERT_EQ(1U, nav_map->at(iframe_url).size()); | 1109 ASSERT_EQ(1U, nav_map->at(iframe_url).size()); |
| 1096 ASSERT_EQ(1U, nav_map->at(iframe_retargeting_url).size()); | 1110 ASSERT_EQ(1U, nav_map->at(iframe_retargeting_url).size()); |
| 1097 ASSERT_EQ(1U, nav_map->at(download_url).size()); | 1111 ASSERT_EQ(1U, nav_map->at(download_url).size()); |
| 1098 ASSERT_EQ(1U, nav_map->at(initial_url).size()); | 1112 ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
| 1099 VerifyNavigationEvent(GURL(), // source_url | 1113 VerifyNavigationEvent(GURL(), // source_url |
| 1100 GURL(), // source_main_frame_url | 1114 GURL(), // source_main_frame_url |
| 1101 initial_url, // original_request_url | 1115 initial_url, // original_request_url |
| 1102 initial_url, // destination_url | 1116 initial_url, // destination_url |
| 1103 true, // is_user_initiated, | 1117 true, // is_user_initiated, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 1131 VerifyNavigationEvent(iframe_url, // source_url | 1145 VerifyNavigationEvent(iframe_url, // source_url |
| 1132 multi_frame_test_url, // source_main_frame_url | 1146 multi_frame_test_url, // source_main_frame_url |
| 1133 download_url, // original_request_url | 1147 download_url, // original_request_url |
| 1134 download_url, // destination_url | 1148 download_url, // destination_url |
| 1135 true, // is_user_initiated, | 1149 true, // is_user_initiated, |
| 1136 false, // has_committed | 1150 false, // has_committed |
| 1137 false, // has_server_redirect | 1151 false, // has_server_redirect |
| 1138 nav_map->at(download_url).at(0)); | 1152 nav_map->at(download_url).at(0)); |
| 1139 VerifyHostToIpMap(); | 1153 VerifyHostToIpMap(); |
| 1140 | 1154 |
| 1141 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 1155 ReferrerChain referrer_chain; |
| 1156 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1142 ASSERT_EQ(4U, referrer_chain.size()); | 1157 ASSERT_EQ(4U, referrer_chain.size()); |
| 1143 VerifyReferrerChainEntry(download_url, // url | 1158 VerifyReferrerChainEntry(download_url, // url |
| 1144 ReferrerChainEntry::DOWNLOAD_URL, // type | 1159 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1145 test_server_ip, // ip_address | 1160 test_server_ip, // ip_address |
| 1146 iframe_url, // referrer_url | 1161 iframe_url, // referrer_url |
| 1147 multi_frame_test_url, // referrer_main_frame_url | 1162 multi_frame_test_url, // referrer_main_frame_url |
| 1148 false, // is_retargeting | 1163 false, // is_retargeting |
| 1149 referrer_chain[0]); | 1164 referrer_chain[0].get()); |
| 1150 VerifyReferrerChainEntry(iframe_url, // url | 1165 VerifyReferrerChainEntry(iframe_url, // url |
| 1151 ReferrerChainEntry::LANDING_PAGE, // type | 1166 ReferrerChainEntry::LANDING_PAGE, // type |
| 1152 test_server_ip, // ip_address | 1167 test_server_ip, // ip_address |
| 1153 GURL(), // referrer_url | 1168 GURL(), // referrer_url |
| 1154 multi_frame_test_url, // referrer_main_frame_url | 1169 multi_frame_test_url, // referrer_main_frame_url |
| 1155 false, // is_retargeting | 1170 false, // is_retargeting |
| 1156 referrer_chain[1]); | 1171 referrer_chain[1].get()); |
| 1157 VerifyReferrerChainEntry(multi_frame_test_url, // url | 1172 VerifyReferrerChainEntry(multi_frame_test_url, // url |
| 1158 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1173 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1159 test_server_ip, // ip_address | 1174 test_server_ip, // ip_address |
| 1160 initial_url, // referrer_url | 1175 initial_url, // referrer_url |
| 1161 initial_url, // referrer_main_frame_url | 1176 initial_url, // referrer_main_frame_url |
| 1162 false, // is_retargeting | 1177 false, // is_retargeting |
| 1163 referrer_chain[2]); | 1178 referrer_chain[2].get()); |
| 1164 VerifyReferrerChainEntry(initial_url, // url | 1179 VerifyReferrerChainEntry(initial_url, // url |
| 1165 ReferrerChainEntry::LANDING_REFERRER, // type | 1180 ReferrerChainEntry::LANDING_REFERRER, // type |
| 1166 test_server_ip, // ip_address | 1181 test_server_ip, // ip_address |
| 1167 GURL(), // referrer_url | 1182 GURL(), // referrer_url |
| 1168 GURL(), // referrer_main_frame_url | 1183 GURL(), // referrer_main_frame_url |
| 1169 false, // is_retargeting | 1184 false, // is_retargeting |
| 1170 referrer_chain[3]); | 1185 referrer_chain[3].get()); |
| 1171 } | 1186 } |
| 1172 | 1187 |
| 1173 // Click a link in a subframe and open download in a new tab. | 1188 // Click a link in a subframe and open download in a new tab. |
| 1174 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 1189 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1175 SubFrameNewTabDownload) { | 1190 SubFrameNewTabDownload) { |
| 1176 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1191 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1177 ClickTestLink("sub_frame_download_attribution", 1, initial_url); | 1192 ClickTestLink("sub_frame_download_attribution", 1, initial_url); |
| 1178 std::string test_name = | 1193 std::string test_name = |
| 1179 base::StringPrintf("%s', '%s", "iframe2", "iframe_new_tab_download"); | 1194 base::StringPrintf("%s', '%s", "iframe2", "iframe_new_tab_download"); |
| 1180 GURL multi_frame_test_url = | 1195 GURL multi_frame_test_url = |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1246 VerifyNavigationEvent(blank_url, // source_url | 1261 VerifyNavigationEvent(blank_url, // source_url |
| 1247 blank_url, // source_main_frame_url | 1262 blank_url, // source_main_frame_url |
| 1248 download_url, // original_request_url | 1263 download_url, // original_request_url |
| 1249 download_url, // destination_url | 1264 download_url, // destination_url |
| 1250 false, // is_user_initiated, | 1265 false, // is_user_initiated, |
| 1251 false, // has_committed | 1266 false, // has_committed |
| 1252 false, // has_server_redirect | 1267 false, // has_server_redirect |
| 1253 nav_map->at(download_url).at(0)); | 1268 nav_map->at(download_url).at(0)); |
| 1254 VerifyHostToIpMap(); | 1269 VerifyHostToIpMap(); |
| 1255 | 1270 |
| 1256 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 1271 ReferrerChain referrer_chain; |
| 1272 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1257 EXPECT_EQ(5U, referrer_chain.size()); | 1273 EXPECT_EQ(5U, referrer_chain.size()); |
| 1258 VerifyReferrerChainEntry(download_url, // url | 1274 VerifyReferrerChainEntry(download_url, // url |
| 1259 ReferrerChainEntry::DOWNLOAD_URL, // type | 1275 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1260 test_server_ip, // ip_address | 1276 test_server_ip, // ip_address |
| 1261 blank_url, // referrer_url | 1277 blank_url, // referrer_url |
| 1262 blank_url, // referrer_main_frame_url | 1278 blank_url, // referrer_main_frame_url |
| 1263 false, // is_retargeting | 1279 false, // is_retargeting |
| 1264 referrer_chain[0]); | 1280 referrer_chain[0].get()); |
| 1265 VerifyReferrerChainEntry(blank_url, // url | 1281 VerifyReferrerChainEntry(blank_url, // url |
| 1266 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1282 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1267 "", // ip_address | 1283 "", // ip_address |
| 1268 iframe_retargeting_url, // referrer_url | 1284 iframe_retargeting_url, // referrer_url |
| 1269 multi_frame_test_url, // referrer_main_frame_url | 1285 multi_frame_test_url, // referrer_main_frame_url |
| 1270 true, // is_retargeting | 1286 true, // is_retargeting |
| 1271 referrer_chain[1]); | 1287 referrer_chain[1].get()); |
| 1272 VerifyReferrerChainEntry(iframe_retargeting_url, // url | 1288 VerifyReferrerChainEntry(iframe_retargeting_url, // url |
| 1273 ReferrerChainEntry::LANDING_PAGE, // type | 1289 ReferrerChainEntry::LANDING_PAGE, // type |
| 1274 test_server_ip, // ip_address | 1290 test_server_ip, // ip_address |
| 1275 GURL(), // referrer_url | 1291 GURL(), // referrer_url |
| 1276 multi_frame_test_url, // referrer_main_frame_url | 1292 multi_frame_test_url, // referrer_main_frame_url |
| 1277 false, // is_retargeting | 1293 false, // is_retargeting |
| 1278 referrer_chain[2]); | 1294 referrer_chain[2].get()); |
| 1279 VerifyReferrerChainEntry(multi_frame_test_url, // url | 1295 VerifyReferrerChainEntry(multi_frame_test_url, // url |
| 1280 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1296 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1281 test_server_ip, // ip_address | 1297 test_server_ip, // ip_address |
| 1282 initial_url, // referrer_url | 1298 initial_url, // referrer_url |
| 1283 initial_url, // referrer_main_frame_url | 1299 initial_url, // referrer_main_frame_url |
| 1284 false, // is_retargeting | 1300 false, // is_retargeting |
| 1285 referrer_chain[3]); | 1301 referrer_chain[3].get()); |
| 1286 VerifyReferrerChainEntry(initial_url, // url | 1302 VerifyReferrerChainEntry(initial_url, // url |
| 1287 ReferrerChainEntry::LANDING_REFERRER, // type | 1303 ReferrerChainEntry::LANDING_REFERRER, // type |
| 1288 test_server_ip, // ip_address | 1304 test_server_ip, // ip_address |
| 1289 GURL(), // referrer_url | 1305 GURL(), // referrer_url |
| 1290 GURL(), // referrer_main_frame_url | 1306 GURL(), // referrer_main_frame_url |
| 1291 false, // is_retargeting | 1307 false, // is_retargeting |
| 1292 referrer_chain[4]); | 1308 referrer_chain[4].get()); |
| 1293 } | 1309 } |
| 1294 | 1310 |
| 1295 // Click a link which redirects to the landing page, and then click on the | 1311 // Click a link which redirects to the landing page, and then click on the |
| 1296 // landing page to trigger download. | 1312 // landing page to trigger download. |
| 1297 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, CompleteReferrerChain) { | 1313 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, CompleteReferrerChain) { |
| 1298 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1314 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1299 ClickTestLink("complete_referrer_chain", 2, initial_url); | 1315 ClickTestLink("complete_referrer_chain", 2, initial_url); |
| 1300 GURL redirect_url = embedded_test_server()->GetURL(kRedirectToLandingURL); | 1316 GURL redirect_url = embedded_test_server()->GetURL(kRedirectToLandingURL); |
| 1301 GURL landing_url = embedded_test_server()->GetURL(kLandingURL); | 1317 GURL landing_url = embedded_test_server()->GetURL(kLandingURL); |
| 1302 ClickTestLink("download_on_landing_page", 1, landing_url); | 1318 ClickTestLink("download_on_landing_page", 1, landing_url); |
| 1303 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 1319 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 1304 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 1320 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 1305 auto nav_map = navigation_map(); | 1321 auto nav_map = navigation_map(); |
| 1306 ASSERT_TRUE(nav_map); | 1322 ASSERT_TRUE(nav_map); |
| 1307 ASSERT_EQ(std::size_t(4), nav_map->size()); | 1323 ASSERT_EQ(4U, nav_map->size()); |
| 1308 ASSERT_EQ(1U, nav_map->at(redirect_url).size()); | 1324 ASSERT_EQ(1U, nav_map->at(redirect_url).size()); |
| 1309 ASSERT_EQ(1U, nav_map->at(landing_url).size()); | 1325 ASSERT_EQ(1U, nav_map->at(landing_url).size()); |
| 1310 ASSERT_EQ(1U, nav_map->at(download_url).size()); | 1326 ASSERT_EQ(1U, nav_map->at(download_url).size()); |
| 1311 ASSERT_EQ(1U, nav_map->at(initial_url).size()); | 1327 ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
| 1312 VerifyNavigationEvent(GURL(), // source_url | 1328 VerifyNavigationEvent(GURL(), // source_url |
| 1313 GURL(), // source_main_frame_url | 1329 GURL(), // source_main_frame_url |
| 1314 initial_url, // original_request_url | 1330 initial_url, // original_request_url |
| 1315 initial_url, // destination_url | 1331 initial_url, // destination_url |
| 1316 true, // is_user_initiated, | 1332 true, // is_user_initiated, |
| 1317 true, // has_committed | 1333 true, // has_committed |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1336 VerifyNavigationEvent(landing_url, // source_url | 1352 VerifyNavigationEvent(landing_url, // source_url |
| 1337 landing_url, // source_main_frame_url | 1353 landing_url, // source_main_frame_url |
| 1338 download_url, // original_request_url | 1354 download_url, // original_request_url |
| 1339 download_url, // destination_url | 1355 download_url, // destination_url |
| 1340 true, // is_user_initiated, | 1356 true, // is_user_initiated, |
| 1341 false, // has_committed | 1357 false, // has_committed |
| 1342 false, // has_server_redirect | 1358 false, // has_server_redirect |
| 1343 nav_map->at(download_url).at(0)); | 1359 nav_map->at(download_url).at(0)); |
| 1344 VerifyHostToIpMap(); | 1360 VerifyHostToIpMap(); |
| 1345 | 1361 |
| 1346 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 1362 ReferrerChain referrer_chain; |
| 1347 EXPECT_EQ(std::size_t(4), referrer_chain.size()); | 1363 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1364 EXPECT_EQ(4U, referrer_chain.size()); |
| 1348 VerifyReferrerChainEntry(download_url, // url | 1365 VerifyReferrerChainEntry(download_url, // url |
| 1349 ReferrerChainEntry::DOWNLOAD_URL, // type | 1366 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1350 test_server_ip, // ip_address | 1367 test_server_ip, // ip_address |
| 1351 landing_url, // referrer_url | 1368 landing_url, // referrer_url |
| 1352 landing_url, // referrer_main_frame_url | 1369 landing_url, // referrer_main_frame_url |
| 1353 false, // is_retargeting | 1370 false, // is_retargeting |
| 1354 referrer_chain[0]); | 1371 referrer_chain[0].get()); |
| 1355 VerifyReferrerChainEntry(landing_url, // url | 1372 VerifyReferrerChainEntry(landing_url, // url |
| 1356 ReferrerChainEntry::LANDING_PAGE, // type | 1373 ReferrerChainEntry::LANDING_PAGE, // type |
| 1357 test_server_ip, // ip_address | 1374 test_server_ip, // ip_address |
| 1358 redirect_url, // referrer_url | 1375 redirect_url, // referrer_url |
| 1359 redirect_url, // referrer_main_frame_url | 1376 redirect_url, // referrer_main_frame_url |
| 1360 false, // is_retargeting | 1377 false, // is_retargeting |
| 1361 referrer_chain[1]); | 1378 referrer_chain[1].get()); |
| 1362 VerifyReferrerChainEntry(redirect_url, // url | 1379 VerifyReferrerChainEntry(redirect_url, // url |
| 1363 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1380 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1364 test_server_ip, // ip_address | 1381 test_server_ip, // ip_address |
| 1365 initial_url, // referrer_url | 1382 initial_url, // referrer_url |
| 1366 initial_url, // referrer_main_frame_url | 1383 initial_url, // referrer_main_frame_url |
| 1367 false, // is_retargeting | 1384 false, // is_retargeting |
| 1368 referrer_chain[2]); | 1385 referrer_chain[2].get()); |
| 1369 VerifyReferrerChainEntry( | 1386 VerifyReferrerChainEntry( |
| 1370 initial_url, // url | 1387 initial_url, // url |
| 1371 ReferrerChainEntry::LANDING_REFERRER, // type | 1388 ReferrerChainEntry::LANDING_REFERRER, // type |
| 1372 test_server_ip, // ip_address | 1389 test_server_ip, // ip_address |
| 1373 GURL(), // referrer_url is empty since this beyonds 2 clicks. | 1390 GURL(), // referrer_url is empty since this beyonds 2 clicks. |
| 1374 GURL(), // referrer_main_frame_url is empty for the same reason. | 1391 GURL(), // referrer_main_frame_url is empty for the same reason. |
| 1375 false, // is_retargeting | 1392 false, // is_retargeting |
| 1376 referrer_chain[3]); | 1393 referrer_chain[3].get()); |
| 1377 } | 1394 } |
| 1378 | 1395 |
| 1379 // Click three links before reaching download. | 1396 // Click three links before reaching download. |
| 1380 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 1397 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1381 ReferrerAttributionWithinTwoUserGestures) { | 1398 ReferrerAttributionWithinTwoUserGestures) { |
| 1382 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1399 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1383 ClickTestLink("attribution_within_two_user_gestures", 1, initial_url); | 1400 ClickTestLink("attribution_within_two_user_gestures", 1, initial_url); |
| 1384 GURL page_before_landing_referrer_url = | 1401 GURL page_before_landing_referrer_url = |
| 1385 embedded_test_server()->GetURL(kPageBeforeLandingReferrerURL); | 1402 embedded_test_server()->GetURL(kPageBeforeLandingReferrerURL); |
| 1386 ClickTestLink("link_to_landing_referrer", 1, | 1403 ClickTestLink("link_to_landing_referrer", 1, |
| 1387 page_before_landing_referrer_url); | 1404 page_before_landing_referrer_url); |
| 1388 GURL landing_referrer_url = | 1405 GURL landing_referrer_url = |
| 1389 embedded_test_server()->GetURL(kLandingReferrerURL); | 1406 embedded_test_server()->GetURL(kLandingReferrerURL); |
| 1390 ClickTestLink("link_to_landing", 1, landing_referrer_url); | 1407 ClickTestLink("link_to_landing", 1, landing_referrer_url); |
| 1391 GURL landing_url = embedded_test_server()->GetURL(kLandingURL); | 1408 GURL landing_url = embedded_test_server()->GetURL(kLandingURL); |
| 1392 ClickTestLink("download_on_landing_page", 1, landing_url); | 1409 ClickTestLink("download_on_landing_page", 1, landing_url); |
| 1393 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 1410 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 1394 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 1411 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 1395 auto nav_map = navigation_map(); | 1412 auto nav_map = navigation_map(); |
| 1396 ASSERT_TRUE(nav_map); | 1413 ASSERT_TRUE(nav_map); |
| 1397 ASSERT_EQ(std::size_t(5), nav_map->size()); | 1414 ASSERT_EQ(5U, nav_map->size()); |
| 1398 ASSERT_EQ(1U, nav_map->at(initial_url).size()); | 1415 ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
| 1399 ASSERT_EQ(1U, nav_map->at(page_before_landing_referrer_url).size()); | 1416 ASSERT_EQ(1U, nav_map->at(page_before_landing_referrer_url).size()); |
| 1400 ASSERT_EQ(1U, nav_map->at(landing_referrer_url).size()); | 1417 ASSERT_EQ(1U, nav_map->at(landing_referrer_url).size()); |
| 1401 ASSERT_EQ(1U, nav_map->at(landing_url).size()); | 1418 ASSERT_EQ(1U, nav_map->at(landing_url).size()); |
| 1402 ASSERT_EQ(1U, nav_map->at(download_url).size()); | 1419 ASSERT_EQ(1U, nav_map->at(download_url).size()); |
| 1403 VerifyNavigationEvent(GURL(), // source_url | 1420 VerifyNavigationEvent(GURL(), // source_url |
| 1404 GURL(), // source_main_frame_url | 1421 GURL(), // source_main_frame_url |
| 1405 initial_url, // original_request_url | 1422 initial_url, // original_request_url |
| 1406 initial_url, // destination_url | 1423 initial_url, // destination_url |
| 1407 true, // is_user_initiated, | 1424 true, // is_user_initiated, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 1435 VerifyNavigationEvent(landing_url, // source_url | 1452 VerifyNavigationEvent(landing_url, // source_url |
| 1436 landing_url, // source_main_frame_url | 1453 landing_url, // source_main_frame_url |
| 1437 download_url, // original_request_url | 1454 download_url, // original_request_url |
| 1438 download_url, // destination_url | 1455 download_url, // destination_url |
| 1439 true, // is_user_initiated, | 1456 true, // is_user_initiated, |
| 1440 false, // has_committed | 1457 false, // has_committed |
| 1441 false, // has_server_redirect | 1458 false, // has_server_redirect |
| 1442 nav_map->at(download_url).at(0)); | 1459 nav_map->at(download_url).at(0)); |
| 1443 VerifyHostToIpMap(); | 1460 VerifyHostToIpMap(); |
| 1444 | 1461 |
| 1445 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 1462 ReferrerChain referrer_chain; |
| 1446 EXPECT_EQ(std::size_t(3), referrer_chain.size()); | 1463 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1464 EXPECT_EQ(3U, referrer_chain.size()); |
| 1447 VerifyReferrerChainEntry(download_url, // url | 1465 VerifyReferrerChainEntry(download_url, // url |
| 1448 ReferrerChainEntry::DOWNLOAD_URL, // type | 1466 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1449 test_server_ip, // ip_address | 1467 test_server_ip, // ip_address |
| 1450 landing_url, // referrer_url | 1468 landing_url, // referrer_url |
| 1451 landing_url, // referrer_main_frame_url | 1469 landing_url, // referrer_main_frame_url |
| 1452 false, // is_retargeting | 1470 false, // is_retargeting |
| 1453 referrer_chain[0]); | 1471 referrer_chain[0].get()); |
| 1454 VerifyReferrerChainEntry(landing_url, // url | 1472 VerifyReferrerChainEntry(landing_url, // url |
| 1455 ReferrerChainEntry::LANDING_PAGE, // type | 1473 ReferrerChainEntry::LANDING_PAGE, // type |
| 1456 test_server_ip, // ip_address | 1474 test_server_ip, // ip_address |
| 1457 landing_referrer_url, // referrer_url | 1475 landing_referrer_url, // referrer_url |
| 1458 landing_referrer_url, // referrer_main_frame_url | 1476 landing_referrer_url, // referrer_main_frame_url |
| 1459 false, // is_retargeting | 1477 false, // is_retargeting |
| 1460 referrer_chain[1]); | 1478 referrer_chain[1].get()); |
| 1461 VerifyReferrerChainEntry( | 1479 VerifyReferrerChainEntry( |
| 1462 landing_referrer_url, // url | 1480 landing_referrer_url, // url |
| 1463 ReferrerChainEntry::LANDING_REFERRER, // type | 1481 ReferrerChainEntry::LANDING_REFERRER, // type |
| 1464 test_server_ip, // ip_address | 1482 test_server_ip, // ip_address |
| 1465 GURL(), // referrer_url is empty since this beyonds 2 clicks. | 1483 GURL(), // referrer_url is empty since this beyonds 2 clicks. |
| 1466 GURL(), // referrer_main_frame_url is empty for the same reason. | 1484 GURL(), // referrer_main_frame_url is empty for the same reason. |
| 1467 false, // is_retargeting | 1485 false, // is_retargeting |
| 1468 referrer_chain[2]); | 1486 referrer_chain[2].get()); |
| 1469 // page_before_landing_referrer_url is not in referrer chain. | 1487 // page_before_landing_referrer_url is not in referrer chain. |
| 1470 } | 1488 } |
| 1471 | 1489 |
| 1472 // Click a link which redirects to a PPAPI landing page. | 1490 // Click a link which redirects to a PPAPI landing page. |
| 1473 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 1491 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1474 PPAPIDownloadWithUserGestureOnHostingFrame) { | 1492 PPAPIDownloadWithUserGestureOnHostingFrame) { |
| 1475 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1493 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1476 ClickTestLink("complete_referrer_chain", 2, initial_url); | 1494 ClickTestLink("complete_referrer_chain", 2, initial_url); |
| 1477 GURL redirect_url = embedded_test_server()->GetURL(kRedirectToLandingURL); | 1495 GURL redirect_url = embedded_test_server()->GetURL(kRedirectToLandingURL); |
| 1478 GURL landing_url = embedded_test_server()->GetURL(kLandingURL); | 1496 GURL landing_url = embedded_test_server()->GetURL(kLandingURL); |
| 1479 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 1497 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 1480 | 1498 |
| 1481 // Simulate a user gesture on landing page. | 1499 // Simulate a user gesture on landing page. |
| 1482 SimulateUserGesture(); | 1500 SimulateUserGesture(); |
| 1483 auto nav_map = navigation_map(); | 1501 auto nav_map = navigation_map(); |
| 1484 ASSERT_TRUE(nav_map); | 1502 ASSERT_TRUE(nav_map); |
| 1485 ASSERT_EQ(std::size_t(3), nav_map->size()); | 1503 ASSERT_EQ(3U, nav_map->size()); |
| 1486 ASSERT_EQ(1U, nav_map->at(redirect_url).size()); | 1504 ASSERT_EQ(1U, nav_map->at(redirect_url).size()); |
| 1487 ASSERT_EQ(1U, nav_map->at(landing_url).size()); | 1505 ASSERT_EQ(1U, nav_map->at(landing_url).size()); |
| 1488 ASSERT_EQ(1U, nav_map->at(initial_url).size()); | 1506 ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
| 1489 VerifyNavigationEvent(GURL(), // source_url | 1507 VerifyNavigationEvent(GURL(), // source_url |
| 1490 GURL(), // source_main_frame_url | 1508 GURL(), // source_main_frame_url |
| 1491 initial_url, // original_request_url | 1509 initial_url, // original_request_url |
| 1492 initial_url, // destination_url | 1510 initial_url, // destination_url |
| 1493 true, // is_user_initiated, | 1511 true, // is_user_initiated, |
| 1494 true, // has_committed | 1512 true, // has_committed |
| 1495 false, // has_server_redirect | 1513 false, // has_server_redirect |
| 1496 nav_map->at(initial_url).at(0)); | 1514 nav_map->at(initial_url).at(0)); |
| 1497 VerifyNavigationEvent(initial_url, // source_url | 1515 VerifyNavigationEvent(initial_url, // source_url |
| 1498 initial_url, // source_main_frame_url | 1516 initial_url, // source_main_frame_url |
| 1499 redirect_url, // original_request_url | 1517 redirect_url, // original_request_url |
| 1500 redirect_url, // destination_url | 1518 redirect_url, // destination_url |
| 1501 true, // is_user_initiated, | 1519 true, // is_user_initiated, |
| 1502 true, // has_committed | 1520 true, // has_committed |
| 1503 false, // has_server_redirect | 1521 false, // has_server_redirect |
| 1504 nav_map->at(redirect_url).at(0)); | 1522 nav_map->at(redirect_url).at(0)); |
| 1505 VerifyNavigationEvent(redirect_url, // source_url | 1523 VerifyNavigationEvent(redirect_url, // source_url |
| 1506 redirect_url, // source_main_frame_url | 1524 redirect_url, // source_main_frame_url |
| 1507 landing_url, // original_request_url | 1525 landing_url, // original_request_url |
| 1508 landing_url, // destination_url | 1526 landing_url, // destination_url |
| 1509 false, // is_user_initiated, | 1527 false, // is_user_initiated, |
| 1510 true, // has_committed | 1528 true, // has_committed |
| 1511 false, // has_server_redirect | 1529 false, // has_server_redirect |
| 1512 nav_map->at(landing_url).at(0)); | 1530 nav_map->at(landing_url).at(0)); |
| 1513 VerifyHostToIpMap(); | 1531 VerifyHostToIpMap(); |
| 1514 | 1532 |
| 1515 auto referrer_chain = IdentifyReferrerChainForPPAPIDownload( | 1533 ReferrerChain referrer_chain; |
| 1516 landing_url, browser()->tab_strip_model()->GetActiveWebContents()); | 1534 IdentifyReferrerChainForPPAPIDownload( |
| 1517 | 1535 landing_url, |
| 1518 EXPECT_EQ(std::size_t(3), referrer_chain.size()); | 1536 browser()->tab_strip_model()->GetActiveWebContents(), |
| 1537 &referrer_chain); |
| 1538 EXPECT_EQ(3U, referrer_chain.size()); |
| 1519 VerifyReferrerChainEntry(landing_url, // url | 1539 VerifyReferrerChainEntry(landing_url, // url |
| 1520 ReferrerChainEntry::LANDING_PAGE, // type | 1540 ReferrerChainEntry::LANDING_PAGE, // type |
| 1521 test_server_ip, // ip_address | 1541 test_server_ip, // ip_address |
| 1522 redirect_url, // referrer_url | 1542 redirect_url, // referrer_url |
| 1523 redirect_url, // referrer_main_frame_url | 1543 redirect_url, // referrer_main_frame_url |
| 1524 false, // is_retargeting | 1544 false, // is_retargeting |
| 1525 referrer_chain[0]); | 1545 referrer_chain[0].get()); |
| 1526 VerifyReferrerChainEntry(redirect_url, // url | 1546 VerifyReferrerChainEntry(redirect_url, // url |
| 1527 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1547 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1528 test_server_ip, // ip_address | 1548 test_server_ip, // ip_address |
| 1529 initial_url, // referrer_url | 1549 initial_url, // referrer_url |
| 1530 initial_url, // referrer_main_frame_url | 1550 initial_url, // referrer_main_frame_url |
| 1531 false, // is_retargeting | 1551 false, // is_retargeting |
| 1532 referrer_chain[1]); | 1552 referrer_chain[1].get()); |
| 1533 VerifyReferrerChainEntry( | 1553 VerifyReferrerChainEntry( |
| 1534 initial_url, // url | 1554 initial_url, // url |
| 1535 ReferrerChainEntry::LANDING_REFERRER, // type | 1555 ReferrerChainEntry::LANDING_REFERRER, // type |
| 1536 test_server_ip, // ip_address | 1556 test_server_ip, // ip_address |
| 1537 GURL(), // referrer_url is empty since this beyonds 2 clicks. | 1557 GURL(), // referrer_url is empty since this beyonds 2 clicks. |
| 1538 GURL(), // referrer_main_frame_url is empty for the same reason. | 1558 GURL(), // referrer_main_frame_url is empty for the same reason. |
| 1539 false, // is_retargeting | 1559 false, // is_retargeting |
| 1540 referrer_chain[2]); | 1560 referrer_chain[2].get()); |
| 1541 } | 1561 } |
| 1542 | 1562 |
| 1543 // Click a link which redirects to a page that triggers PPAPI download without | 1563 // Click a link which redirects to a page that triggers PPAPI download without |
| 1544 // user gesture (a.k.a not a landing page). | 1564 // user gesture (a.k.a not a landing page). |
| 1545 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 1565 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1546 PPAPIDownloadWithoutUserGestureOnHostingFrame) { | 1566 PPAPIDownloadWithoutUserGestureOnHostingFrame) { |
| 1547 GURL landing_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1567 GURL landing_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1548 ClickTestLink("complete_referrer_chain", 2, landing_url); | 1568 ClickTestLink("complete_referrer_chain", 2, landing_url); |
| 1549 GURL redirect_url = embedded_test_server()->GetURL(kRedirectToLandingURL); | 1569 GURL redirect_url = embedded_test_server()->GetURL(kRedirectToLandingURL); |
| 1550 GURL hosting_url = embedded_test_server()->GetURL(kLandingURL); | 1570 GURL hosting_url = embedded_test_server()->GetURL(kLandingURL); |
| 1551 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 1571 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 1552 | 1572 |
| 1553 auto nav_map = navigation_map(); | 1573 auto nav_map = navigation_map(); |
| 1554 ASSERT_TRUE(nav_map); | 1574 ASSERT_TRUE(nav_map); |
| 1555 ASSERT_EQ(std::size_t(3), nav_map->size()); | 1575 ASSERT_EQ(3U, nav_map->size()); |
| 1556 ASSERT_EQ(1U, nav_map->at(redirect_url).size()); | 1576 ASSERT_EQ(1U, nav_map->at(redirect_url).size()); |
| 1557 ASSERT_EQ(1U, nav_map->at(hosting_url).size()); | 1577 ASSERT_EQ(1U, nav_map->at(hosting_url).size()); |
| 1558 ASSERT_EQ(1U, nav_map->at(landing_url).size()); | 1578 ASSERT_EQ(1U, nav_map->at(landing_url).size()); |
| 1559 VerifyNavigationEvent(GURL(), // source_url | 1579 VerifyNavigationEvent(GURL(), // source_url |
| 1560 GURL(), // source_main_frame_url | 1580 GURL(), // source_main_frame_url |
| 1561 landing_url, // original_request_url | 1581 landing_url, // original_request_url |
| 1562 landing_url, // destination_url | 1582 landing_url, // destination_url |
| 1563 true, // is_user_initiated, | 1583 true, // is_user_initiated, |
| 1564 true, // has_committed | 1584 true, // has_committed |
| 1565 false, // has_server_redirect | 1585 false, // has_server_redirect |
| 1566 nav_map->at(landing_url).at(0)); | 1586 nav_map->at(landing_url).at(0)); |
| 1567 VerifyNavigationEvent(landing_url, // source_url | 1587 VerifyNavigationEvent(landing_url, // source_url |
| 1568 landing_url, // source_main_frame_url | 1588 landing_url, // source_main_frame_url |
| 1569 redirect_url, // original_request_url | 1589 redirect_url, // original_request_url |
| 1570 redirect_url, // destination_url | 1590 redirect_url, // destination_url |
| 1571 true, // is_user_initiated, | 1591 true, // is_user_initiated, |
| 1572 true, // has_committed | 1592 true, // has_committed |
| 1573 false, // has_server_redirect | 1593 false, // has_server_redirect |
| 1574 nav_map->at(redirect_url).at(0)); | 1594 nav_map->at(redirect_url).at(0)); |
| 1575 VerifyNavigationEvent(redirect_url, // source_url | 1595 VerifyNavigationEvent(redirect_url, // source_url |
| 1576 redirect_url, // source_main_frame_url | 1596 redirect_url, // source_main_frame_url |
| 1577 hosting_url, // original_request_url | 1597 hosting_url, // original_request_url |
| 1578 hosting_url, // destination_url | 1598 hosting_url, // destination_url |
| 1579 false, // is_user_initiated, | 1599 false, // is_user_initiated, |
| 1580 true, // has_committed | 1600 true, // has_committed |
| 1581 false, // has_server_redirect | 1601 false, // has_server_redirect |
| 1582 nav_map->at(hosting_url).at(0)); | 1602 nav_map->at(hosting_url).at(0)); |
| 1583 VerifyHostToIpMap(); | 1603 VerifyHostToIpMap(); |
| 1584 | 1604 |
| 1585 auto referrer_chain = IdentifyReferrerChainForPPAPIDownload( | 1605 ReferrerChain referrer_chain; |
| 1586 hosting_url, browser()->tab_strip_model()->GetActiveWebContents()); | 1606 IdentifyReferrerChainForPPAPIDownload( |
| 1587 | 1607 hosting_url, |
| 1588 EXPECT_EQ(std::size_t(3), referrer_chain.size()); | 1608 browser()->tab_strip_model()->GetActiveWebContents(), |
| 1609 &referrer_chain); |
| 1610 EXPECT_EQ(3U, referrer_chain.size()); |
| 1589 VerifyReferrerChainEntry(hosting_url, // url | 1611 VerifyReferrerChainEntry(hosting_url, // url |
| 1590 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1612 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1591 test_server_ip, // ip_address | 1613 test_server_ip, // ip_address |
| 1592 redirect_url, // referrer_url | 1614 redirect_url, // referrer_url |
| 1593 redirect_url, // referrer_main_frame_url | 1615 redirect_url, // referrer_main_frame_url |
| 1594 false, // is_retargeting | 1616 false, // is_retargeting |
| 1595 referrer_chain[0]); | 1617 referrer_chain[0].get()); |
| 1596 VerifyReferrerChainEntry(redirect_url, // url | 1618 VerifyReferrerChainEntry(redirect_url, // url |
| 1597 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1619 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1598 test_server_ip, // ip_address | 1620 test_server_ip, // ip_address |
| 1599 landing_url, // referrer_url | 1621 landing_url, // referrer_url |
| 1600 landing_url, // referrer_main_frame_url | 1622 landing_url, // referrer_main_frame_url |
| 1601 false, // is_retargeting | 1623 false, // is_retargeting |
| 1602 referrer_chain[1]); | 1624 referrer_chain[1].get()); |
| 1603 VerifyReferrerChainEntry(landing_url, // url | 1625 VerifyReferrerChainEntry(landing_url, // url |
| 1604 ReferrerChainEntry::LANDING_PAGE, // type | 1626 ReferrerChainEntry::LANDING_PAGE, // type |
| 1605 test_server_ip, // ip_address | 1627 test_server_ip, // ip_address |
| 1606 GURL(), // no more referrer before landing_url | 1628 GURL(), // no more referrer before landing_url |
| 1607 GURL(), | 1629 GURL(), |
| 1608 false, // is_retargeting | 1630 false, // is_retargeting |
| 1609 referrer_chain[2]); | 1631 referrer_chain[2].get()); |
| 1610 } | 1632 } |
| 1611 | 1633 |
| 1612 // Server-side redirect. | 1634 // Server-side redirect. |
| 1613 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, ServerRedirect) { | 1635 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, ServerRedirect) { |
| 1614 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1636 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1615 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 1637 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 1616 GURL request_url = | 1638 GURL request_url = |
| 1617 embedded_test_server()->GetURL("/server-redirect?" + download_url.spec()); | 1639 embedded_test_server()->GetURL("/server-redirect?" + download_url.spec()); |
| 1618 ui_test_utils::NavigateToURL(browser(), request_url); | 1640 ui_test_utils::NavigateToURL(browser(), request_url); |
| 1619 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 1641 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1632 nav_map->at(initial_url).at(0)); | 1654 nav_map->at(initial_url).at(0)); |
| 1633 VerifyNavigationEvent(GURL(), // source_url | 1655 VerifyNavigationEvent(GURL(), // source_url |
| 1634 GURL(), // source_main_frame_url | 1656 GURL(), // source_main_frame_url |
| 1635 request_url, // original_request_url | 1657 request_url, // original_request_url |
| 1636 download_url, // destination_url | 1658 download_url, // destination_url |
| 1637 true, // is_user_initiated, | 1659 true, // is_user_initiated, |
| 1638 false, // has_committed | 1660 false, // has_committed |
| 1639 true, // has_server_redirect | 1661 true, // has_server_redirect |
| 1640 nav_map->at(download_url).at(0)); | 1662 nav_map->at(download_url).at(0)); |
| 1641 | 1663 |
| 1642 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 1664 ReferrerChain referrer_chain; |
| 1665 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1643 ASSERT_EQ(1U, referrer_chain.size()); | 1666 ASSERT_EQ(1U, referrer_chain.size()); |
| 1644 VerifyReferrerChainEntry(download_url, // url | 1667 VerifyReferrerChainEntry(download_url, // url |
| 1645 ReferrerChainEntry::DOWNLOAD_URL, // type | 1668 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1646 test_server_ip, // ip_address | 1669 test_server_ip, // ip_address |
| 1647 GURL(), // referrer_url | 1670 GURL(), // referrer_url |
| 1648 GURL(), // referrer_main_frame_url | 1671 GURL(), // referrer_main_frame_url |
| 1649 false, // is_retargeting | 1672 false, // is_retargeting |
| 1650 referrer_chain[0]); | 1673 referrer_chain[0].get()); |
| 1651 } | 1674 } |
| 1652 | 1675 |
| 1653 // Retargeting immediately followed by server-side redirect. | 1676 // Retargeting immediately followed by server-side redirect. |
| 1654 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 1677 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1655 RetargetingAndServerRedirect) { | 1678 RetargetingAndServerRedirect) { |
| 1656 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1679 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1657 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 1680 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 1658 GURL request_url = | 1681 GURL request_url = |
| 1659 embedded_test_server()->GetURL("/server-redirect?" + download_url.spec()); | 1682 embedded_test_server()->GetURL("/server-redirect?" + download_url.spec()); |
| 1660 ClickTestLink("new_tab_download_with_server_redirect", 1, initial_url); | 1683 ClickTestLink("new_tab_download_with_server_redirect", 1, initial_url); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1683 nav_map->at(request_url).at(0)); | 1706 nav_map->at(request_url).at(0)); |
| 1684 VerifyNavigationEvent(GURL(), // source_url | 1707 VerifyNavigationEvent(GURL(), // source_url |
| 1685 GURL(), // source_main_frame_url | 1708 GURL(), // source_main_frame_url |
| 1686 request_url, // original_request_url | 1709 request_url, // original_request_url |
| 1687 download_url, // destination_url | 1710 download_url, // destination_url |
| 1688 false, // is_user_initiated, | 1711 false, // is_user_initiated, |
| 1689 false, // has_committed | 1712 false, // has_committed |
| 1690 true, // has_server_redirect | 1713 true, // has_server_redirect |
| 1691 nav_map->at(download_url).at(0)); | 1714 nav_map->at(download_url).at(0)); |
| 1692 | 1715 |
| 1693 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); | 1716 ReferrerChain referrer_chain; |
| 1717 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1694 ASSERT_EQ(2U, referrer_chain.size()); | 1718 ASSERT_EQ(2U, referrer_chain.size()); |
| 1695 VerifyReferrerChainEntry(download_url, // url | 1719 VerifyReferrerChainEntry(download_url, // url |
| 1696 ReferrerChainEntry::DOWNLOAD_URL, // type | 1720 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1697 test_server_ip, // ip_address | 1721 test_server_ip, // ip_address |
| 1698 initial_url, // referrer_url | 1722 initial_url, // referrer_url |
| 1699 initial_url, // referrer_main_frame_url | 1723 initial_url, // referrer_main_frame_url |
| 1700 true, // is_retargeting | 1724 true, // is_retargeting |
| 1701 referrer_chain[0]); | 1725 referrer_chain[0].get()); |
| 1702 VerifyReferrerChainEntry(initial_url, // url | 1726 VerifyReferrerChainEntry(initial_url, // url |
| 1703 ReferrerChainEntry::LANDING_PAGE, // type | 1727 ReferrerChainEntry::LANDING_PAGE, // type |
| 1704 test_server_ip, // ip_address | 1728 test_server_ip, // ip_address |
| 1705 GURL(), // referrer_url | 1729 GURL(), // referrer_url |
| 1706 GURL(), // referrer_main_frame_url | 1730 GURL(), // referrer_main_frame_url |
| 1707 false, // is_retargeting | 1731 false, // is_retargeting |
| 1708 referrer_chain[1]); | 1732 referrer_chain[1].get()); |
| 1709 } | 1733 } |
| 1710 | 1734 |
| 1711 // host_to_ip_map_ size should increase by one after a new navigation. | 1735 // host_to_ip_map_ size should increase by one after a new navigation. |
| 1712 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, AddIPMapping) { | 1736 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, AddIPMapping) { |
| 1713 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1737 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1714 auto ip_map = host_to_ip_map(); | 1738 auto ip_map = host_to_ip_map(); |
| 1715 std::string test_server_host(embedded_test_server()->base_url().host()); | 1739 std::string test_server_host(embedded_test_server()->base_url().host()); |
| 1716 ip_map->clear(); | 1740 ip_map->clear(); |
| 1717 ip_map->insert( | 1741 ip_map->insert( |
| 1718 std::make_pair(test_server_host, std::vector<ResolvedIPAddress>())); | 1742 std::make_pair(test_server_host, std::vector<ResolvedIPAddress>())); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1737 yesterday, embedded_test_server()->host_port_pair().host())); | 1761 yesterday, embedded_test_server()->host_port_pair().host())); |
| 1738 ASSERT_EQ(1U, ip_map->at(test_server_host).size()); | 1762 ASSERT_EQ(1U, ip_map->at(test_server_host).size()); |
| 1739 ClickTestLink("direct_download", 1, initial_url); | 1763 ClickTestLink("direct_download", 1, initial_url); |
| 1740 EXPECT_EQ(1U, ip_map->at(test_server_host).size()); | 1764 EXPECT_EQ(1U, ip_map->at(test_server_host).size()); |
| 1741 EXPECT_EQ(embedded_test_server()->host_port_pair().host(), | 1765 EXPECT_EQ(embedded_test_server()->host_port_pair().host(), |
| 1742 ip_map->at(test_server_host).back().ip); | 1766 ip_map->at(test_server_host).back().ip); |
| 1743 EXPECT_NE(yesterday, ip_map->at(test_server_host).front().timestamp); | 1767 EXPECT_NE(yesterday, ip_map->at(test_server_host).front().timestamp); |
| 1744 } | 1768 } |
| 1745 | 1769 |
| 1746 } // namespace safe_browsing | 1770 } // namespace safe_browsing |
| OLD | NEW |