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