| 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 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 } else { | 243 } else { |
| 244 ASSERT_EQ(1, actual_entry.ip_addresses_size()); | 244 ASSERT_EQ(1, actual_entry.ip_addresses_size()); |
| 245 EXPECT_EQ(expected_ip_address, actual_entry.ip_addresses(0)); | 245 EXPECT_EQ(expected_ip_address, actual_entry.ip_addresses(0)); |
| 246 } | 246 } |
| 247 EXPECT_EQ(expected_referrer_url.spec(), actual_entry.referrer_url()); | 247 EXPECT_EQ(expected_referrer_url.spec(), actual_entry.referrer_url()); |
| 248 EXPECT_EQ(expected_referrer_main_frame_url.spec(), | 248 EXPECT_EQ(expected_referrer_main_frame_url.spec(), |
| 249 actual_entry.referrer_main_frame_url()); | 249 actual_entry.referrer_main_frame_url()); |
| 250 EXPECT_EQ(expected_is_retargeting, actual_entry.is_retargeting()); | 250 EXPECT_EQ(expected_is_retargeting, actual_entry.is_retargeting()); |
| 251 } | 251 } |
| 252 | 252 |
| 253 std::vector<ReferrerChainEntry> IdentifyReferrerChain( | 253 std::vector<ReferrerChainEntry> IdentifyReferrerChainForDownload( |
| 254 DownloadItem* download) { | 254 DownloadItem* download) { |
| 255 std::vector<ReferrerChainEntry> referrer_chain; | 255 std::vector<ReferrerChainEntry> referrer_chain; |
| 256 int download_tab_id = | 256 int download_tab_id = |
| 257 SessionTabHelper::IdForTab(download->GetWebContents()); | 257 SessionTabHelper::IdForTab(download->GetWebContents()); |
| 258 // IdentifyReferrerChain should return SUCCESS(1), SUCCESS_LANDING_PAGE(2), | 258 // IdentifyReferrerChain should return SUCCESS(1), SUCCESS_LANDING_PAGE(2), |
| 259 // or SUCCESS_LANDING_REFERRER(3) in all these tests. | 259 // or SUCCESS_LANDING_REFERRER(3) in all these tests. |
| 260 EXPECT_LE(observer_manager_->IdentifyReferrerChain( | 260 EXPECT_LE(observer_manager_->IdentifyReferrerChainForDownload( |
| 261 download->GetURL(), download_tab_id, | 261 download->GetURL(), download_tab_id, |
| 262 2, // kDownloadAttributionUserGestureLimit | 262 2, // kDownloadAttributionUserGestureLimit |
| 263 &referrer_chain), | 263 &referrer_chain), |
| 264 SafeBrowsingNavigationObserverManager::SUCCESS_LANDING_REFERRER); | 264 SafeBrowsingNavigationObserverManager::SUCCESS_LANDING_REFERRER); |
| 265 return referrer_chain; | 265 return referrer_chain; |
| 266 } | 266 } |
| 267 | 267 |
| 268 std::vector<ReferrerChainEntry> IdentifyReferrerChainForPPAPIDownload( |
| 269 const GURL& initiating_frame_url, |
| 270 content::WebContents* web_contents) { |
| 271 std::vector<ReferrerChainEntry> referrer_chain; |
| 272 EXPECT_LE(observer_manager_->IdentifyReferrerChainForPPAPIDownload( |
| 273 initiating_frame_url, |
| 274 web_contents, |
| 275 2, // kDownloadAttributionUserGestureLimit) |
| 276 &referrer_chain), |
| 277 SafeBrowsingNavigationObserverManager::SUCCESS_LANDING_REFERRER); |
| 278 return referrer_chain; |
| 279 } |
| 280 |
| 268 void VerifyHostToIpMap() { | 281 void VerifyHostToIpMap() { |
| 269 // Since all testing pages have the same host, there is only one entry in | 282 // Since all testing pages have the same host, there is only one entry in |
| 270 // host_to_ip_map_. | 283 // host_to_ip_map_. |
| 271 SafeBrowsingNavigationObserverManager::HostToIpMap* actual_host_ip_map = | 284 SafeBrowsingNavigationObserverManager::HostToIpMap* actual_host_ip_map = |
| 272 host_to_ip_map(); | 285 host_to_ip_map(); |
| 273 ASSERT_EQ(1U, actual_host_ip_map->size()); | 286 ASSERT_EQ(1U, actual_host_ip_map->size()); |
| 274 auto ip_list = | 287 auto ip_list = |
| 275 actual_host_ip_map->at(embedded_test_server()->base_url().host()); | 288 actual_host_ip_map->at(embedded_test_server()->base_url().host()); |
| 276 ASSERT_EQ(1U, ip_list.size()); | 289 ASSERT_EQ(1U, ip_list.size()); |
| 277 EXPECT_EQ(embedded_test_server()->host_port_pair().host(), | 290 EXPECT_EQ(embedded_test_server()->host_port_pair().host(), |
| 278 ip_list.back().ip); | 291 ip_list.back().ip); |
| 279 } | 292 } |
| 280 | 293 |
| 294 void SimulateUserGesture(){ |
| 295 observer_manager_->RecordUserGestureForWebContents( |
| 296 browser()->tab_strip_model()->GetActiveWebContents(), |
| 297 base::Time::Now()); |
| 298 } |
| 299 |
| 281 SafeBrowsingNavigationObserverManager::NavigationMap* navigation_map() { | 300 SafeBrowsingNavigationObserverManager::NavigationMap* navigation_map() { |
| 282 return observer_manager_->navigation_map(); | 301 return observer_manager_->navigation_map(); |
| 283 } | 302 } |
| 284 | 303 |
| 285 SafeBrowsingNavigationObserverManager::HostToIpMap* host_to_ip_map() { | 304 SafeBrowsingNavigationObserverManager::HostToIpMap* host_to_ip_map() { |
| 286 return observer_manager_->host_to_ip_map(); | 305 return observer_manager_->host_to_ip_map(); |
| 287 } | 306 } |
| 288 | 307 |
| 289 protected: | 308 protected: |
| 290 SafeBrowsingNavigationObserverManager* observer_manager_; | 309 SafeBrowsingNavigationObserverManager* observer_manager_; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 317 VerifyNavigationEvent(GURL(), // source_url | 336 VerifyNavigationEvent(GURL(), // source_url |
| 318 GURL(), // source_main_frame_url | 337 GURL(), // source_main_frame_url |
| 319 download_url, // original_request_url | 338 download_url, // original_request_url |
| 320 download_url, // destination_url | 339 download_url, // destination_url |
| 321 true, // is_user_initiated, | 340 true, // is_user_initiated, |
| 322 false, // has_committed | 341 false, // has_committed |
| 323 false, // has_server_redirect | 342 false, // has_server_redirect |
| 324 nav_map->at(download_url).at(0)); | 343 nav_map->at(download_url).at(0)); |
| 325 VerifyHostToIpMap(); | 344 VerifyHostToIpMap(); |
| 326 | 345 |
| 327 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 346 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 328 ASSERT_EQ(1U, referrer_chain.size()); | 347 ASSERT_EQ(1U, referrer_chain.size()); |
| 329 VerifyReferrerChainEntry(download_url, // url | 348 VerifyReferrerChainEntry(download_url, // url |
| 330 ReferrerChainEntry::DOWNLOAD_URL, // type | 349 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 331 test_server_ip, // ip_address | 350 test_server_ip, // ip_address |
| 332 GURL(), // referrer_url | 351 GURL(), // referrer_url |
| 333 GURL(), // referrer_main_frame_url | 352 GURL(), // referrer_main_frame_url |
| 334 false, // is_retargeting | 353 false, // is_retargeting |
| 335 referrer_chain[0]); | 354 referrer_chain[0]); |
| 336 } | 355 } |
| 337 // Click on a link and start download on the same page. | 356 // Click on a link and start download on the same page. |
| (...skipping 18 matching lines...) Expand all Loading... |
| 356 VerifyNavigationEvent(initial_url, // source_url | 375 VerifyNavigationEvent(initial_url, // source_url |
| 357 initial_url, // source_main_frame_url | 376 initial_url, // source_main_frame_url |
| 358 download_url, // original_request_url | 377 download_url, // original_request_url |
| 359 download_url, // destination_url | 378 download_url, // destination_url |
| 360 true, // is_user_initiated, | 379 true, // is_user_initiated, |
| 361 false, // has_committed | 380 false, // has_committed |
| 362 false, // has_server_redirect | 381 false, // has_server_redirect |
| 363 nav_map->at(download_url).at(0)); | 382 nav_map->at(download_url).at(0)); |
| 364 VerifyHostToIpMap(); | 383 VerifyHostToIpMap(); |
| 365 | 384 |
| 366 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 385 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 367 ASSERT_EQ(2U, referrer_chain.size()); | 386 ASSERT_EQ(2U, referrer_chain.size()); |
| 368 VerifyReferrerChainEntry(download_url, // url | 387 VerifyReferrerChainEntry(download_url, // url |
| 369 ReferrerChainEntry::DOWNLOAD_URL, // type | 388 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 370 test_server_ip, // ip_address | 389 test_server_ip, // ip_address |
| 371 initial_url, // referrer_url | 390 initial_url, // referrer_url |
| 372 initial_url, // referrer_main_frame_url | 391 initial_url, // referrer_main_frame_url |
| 373 false, // is_retargeting | 392 false, // is_retargeting |
| 374 referrer_chain[0]); | 393 referrer_chain[0]); |
| 375 VerifyReferrerChainEntry(initial_url, // url | 394 VerifyReferrerChainEntry(initial_url, // url |
| 376 ReferrerChainEntry::LANDING_PAGE, // type | 395 ReferrerChainEntry::LANDING_PAGE, // type |
| (...skipping 28 matching lines...) Expand all Loading... |
| 405 VerifyNavigationEvent(initial_url, // source_url | 424 VerifyNavigationEvent(initial_url, // source_url |
| 406 initial_url, // source_main_frame_url | 425 initial_url, // source_main_frame_url |
| 407 download_url, // original_request_url | 426 download_url, // original_request_url |
| 408 download_url, // destination_url | 427 download_url, // destination_url |
| 409 true, // is_user_initiated, | 428 true, // is_user_initiated, |
| 410 false, // has_committed | 429 false, // has_committed |
| 411 false, // has_server_redirect | 430 false, // has_server_redirect |
| 412 nav_map->at(download_url).at(0)); | 431 nav_map->at(download_url).at(0)); |
| 413 VerifyHostToIpMap(); | 432 VerifyHostToIpMap(); |
| 414 | 433 |
| 415 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 434 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 416 ASSERT_EQ(2U, referrer_chain.size()); | 435 ASSERT_EQ(2U, referrer_chain.size()); |
| 417 VerifyReferrerChainEntry(download_url, // url | 436 VerifyReferrerChainEntry(download_url, // url |
| 418 ReferrerChainEntry::DOWNLOAD_URL, // type | 437 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 419 test_server_ip, // ip_address | 438 test_server_ip, // ip_address |
| 420 initial_url, // referrer_url | 439 initial_url, // referrer_url |
| 421 initial_url, // referrer_main_frame_url | 440 initial_url, // referrer_main_frame_url |
| 422 false, // is_retargeting | 441 false, // is_retargeting |
| 423 referrer_chain[0]); | 442 referrer_chain[0]); |
| 424 VerifyReferrerChainEntry(initial_url, // url | 443 VerifyReferrerChainEntry(initial_url, // url |
| 425 ReferrerChainEntry::LANDING_PAGE, // type | 444 ReferrerChainEntry::LANDING_PAGE, // type |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 VerifyNavigationEvent(GURL(), // source_url | 487 VerifyNavigationEvent(GURL(), // source_url |
| 469 GURL(), // source_main_frame_url | 488 GURL(), // source_main_frame_url |
| 470 download_url, // original_request_url | 489 download_url, // original_request_url |
| 471 download_url, // destination_url | 490 download_url, // destination_url |
| 472 false, // is_user_initiated, | 491 false, // is_user_initiated, |
| 473 false, // has_committed | 492 false, // has_committed |
| 474 false, // has_server_redirect | 493 false, // has_server_redirect |
| 475 nav_map->at(download_url).at(1)); | 494 nav_map->at(download_url).at(1)); |
| 476 VerifyHostToIpMap(); | 495 VerifyHostToIpMap(); |
| 477 | 496 |
| 478 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 497 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 479 ASSERT_EQ(2U, referrer_chain.size()); | 498 ASSERT_EQ(2U, referrer_chain.size()); |
| 480 VerifyReferrerChainEntry(download_url, // url | 499 VerifyReferrerChainEntry(download_url, // url |
| 481 ReferrerChainEntry::DOWNLOAD_URL, // type | 500 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 482 test_server_ip, // ip_address | 501 test_server_ip, // ip_address |
| 483 initial_url, // referrer_url | 502 initial_url, // referrer_url |
| 484 initial_url, // referrer_main_frame_url | 503 initial_url, // referrer_main_frame_url |
| 485 true, // is_retargeting | 504 true, // is_retargeting |
| 486 referrer_chain[0]); | 505 referrer_chain[0]); |
| 487 VerifyReferrerChainEntry(initial_url, // url | 506 VerifyReferrerChainEntry(initial_url, // url |
| 488 ReferrerChainEntry::LANDING_PAGE, // type | 507 ReferrerChainEntry::LANDING_PAGE, // type |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 529 VerifyNavigationEvent(redirect_url, // source_url | 548 VerifyNavigationEvent(redirect_url, // source_url |
| 530 redirect_url, // source_main_frame_url | 549 redirect_url, // source_main_frame_url |
| 531 download_url, // original_request_url | 550 download_url, // original_request_url |
| 532 download_url, // destination_url | 551 download_url, // destination_url |
| 533 false, // is_user_initiated, | 552 false, // is_user_initiated, |
| 534 false, // has_committed | 553 false, // has_committed |
| 535 false, // has_server_redirect | 554 false, // has_server_redirect |
| 536 nav_map->at(download_url).at(0)); | 555 nav_map->at(download_url).at(0)); |
| 537 VerifyHostToIpMap(); | 556 VerifyHostToIpMap(); |
| 538 | 557 |
| 539 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 558 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 540 ASSERT_EQ(std::size_t(3), referrer_chain.size()); | 559 ASSERT_EQ(std::size_t(3), referrer_chain.size()); |
| 541 VerifyReferrerChainEntry(download_url, // url | 560 VerifyReferrerChainEntry(download_url, // url |
| 542 ReferrerChainEntry::DOWNLOAD_URL, // type | 561 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 543 test_server_ip, // ip_address | 562 test_server_ip, // ip_address |
| 544 redirect_url, // referrer_url | 563 redirect_url, // referrer_url |
| 545 redirect_url, // referrer_main_frame_url | 564 redirect_url, // referrer_main_frame_url |
| 546 false, // is_retargeting | 565 false, // is_retargeting |
| 547 referrer_chain[0]); | 566 referrer_chain[0]); |
| 548 VerifyReferrerChainEntry(redirect_url, // url | 567 VerifyReferrerChainEntry(redirect_url, // url |
| 549 ReferrerChainEntry::CLIENT_REDIRECT, // type | 568 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 606 VerifyNavigationEvent(redirect_url, // source_url | 625 VerifyNavigationEvent(redirect_url, // source_url |
| 607 redirect_url, // source_main_frame_url | 626 redirect_url, // source_main_frame_url |
| 608 download_url, // original_request_url | 627 download_url, // original_request_url |
| 609 download_url, // destination_url | 628 download_url, // destination_url |
| 610 false, // is_user_initiated, | 629 false, // is_user_initiated, |
| 611 false, // has_committed | 630 false, // has_committed |
| 612 false, // has_server_redirect | 631 false, // has_server_redirect |
| 613 nav_map->at(download_url).at(0)); | 632 nav_map->at(download_url).at(0)); |
| 614 VerifyHostToIpMap(); | 633 VerifyHostToIpMap(); |
| 615 | 634 |
| 616 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 635 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 617 ASSERT_EQ(std::size_t(3), referrer_chain.size()); | 636 ASSERT_EQ(std::size_t(3), referrer_chain.size()); |
| 618 VerifyReferrerChainEntry(download_url, // url | 637 VerifyReferrerChainEntry(download_url, // url |
| 619 ReferrerChainEntry::DOWNLOAD_URL, // type | 638 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 620 test_server_ip, // ip_address | 639 test_server_ip, // ip_address |
| 621 redirect_url, // referrer_url | 640 redirect_url, // referrer_url |
| 622 redirect_url, // referrer_main_frame_url | 641 redirect_url, // referrer_main_frame_url |
| 623 false, // is_retargeting | 642 false, // is_retargeting |
| 624 referrer_chain[0]); | 643 referrer_chain[0]); |
| 625 VerifyReferrerChainEntry(redirect_url, // url | 644 VerifyReferrerChainEntry(redirect_url, // url |
| 626 ReferrerChainEntry::CLIENT_REDIRECT, // type | 645 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 684 VerifyNavigationEvent(second_redirect_url, // source_url | 703 VerifyNavigationEvent(second_redirect_url, // source_url |
| 685 second_redirect_url, // source_main_frame_url | 704 second_redirect_url, // source_main_frame_url |
| 686 download_url, // original_request_url | 705 download_url, // original_request_url |
| 687 download_url, // destination_url | 706 download_url, // destination_url |
| 688 false, // is_user_initiated, | 707 false, // is_user_initiated, |
| 689 false, // has_committed | 708 false, // has_committed |
| 690 false, // has_server_redirect | 709 false, // has_server_redirect |
| 691 nav_map->at(download_url).at(0)); | 710 nav_map->at(download_url).at(0)); |
| 692 VerifyHostToIpMap(); | 711 VerifyHostToIpMap(); |
| 693 | 712 |
| 694 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 713 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 695 ASSERT_EQ(std::size_t(4), referrer_chain.size()); | 714 ASSERT_EQ(std::size_t(4), referrer_chain.size()); |
| 696 VerifyReferrerChainEntry(download_url, // url | 715 VerifyReferrerChainEntry(download_url, // url |
| 697 ReferrerChainEntry::DOWNLOAD_URL, // type | 716 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 698 test_server_ip, // ip_address | 717 test_server_ip, // ip_address |
| 699 second_redirect_url, // referrer_url | 718 second_redirect_url, // referrer_url |
| 700 second_redirect_url, // referrer_main_frame_url | 719 second_redirect_url, // referrer_main_frame_url |
| 701 false, // is_retargeting | 720 false, // is_retargeting |
| 702 referrer_chain[0]); | 721 referrer_chain[0]); |
| 703 VerifyReferrerChainEntry(second_redirect_url, // url | 722 VerifyReferrerChainEntry(second_redirect_url, // url |
| 704 ReferrerChainEntry::CLIENT_REDIRECT, // type | 723 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 746 nav_map->at(initial_url).at(0)); | 765 nav_map->at(initial_url).at(0)); |
| 747 VerifyNavigationEvent(initial_url, // source_url | 766 VerifyNavigationEvent(initial_url, // source_url |
| 748 initial_url, // source_main_frame_url | 767 initial_url, // source_main_frame_url |
| 749 download_url, // original_request_url | 768 download_url, // original_request_url |
| 750 download_url, // destination_url | 769 download_url, // destination_url |
| 751 true, // is_user_initiated, | 770 true, // is_user_initiated, |
| 752 false, // has_committed | 771 false, // has_committed |
| 753 false, // has_server_redirect | 772 false, // has_server_redirect |
| 754 nav_map->at(download_url).at(0)); | 773 nav_map->at(download_url).at(0)); |
| 755 | 774 |
| 756 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 775 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 757 ASSERT_EQ(2U, referrer_chain.size()); | 776 ASSERT_EQ(2U, referrer_chain.size()); |
| 758 VerifyReferrerChainEntry(download_url, // url | 777 VerifyReferrerChainEntry(download_url, // url |
| 759 ReferrerChainEntry::DOWNLOAD_URL, // type | 778 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 760 test_server_ip, // ip_address | 779 test_server_ip, // ip_address |
| 761 initial_url, // referrer_url | 780 initial_url, // referrer_url |
| 762 initial_url, // referrer_main_frame_url | 781 initial_url, // referrer_main_frame_url |
| 763 false, // is_retargeting | 782 false, // is_retargeting |
| 764 referrer_chain[0]); | 783 referrer_chain[0]); |
| 765 VerifyReferrerChainEntry(initial_url, // url | 784 VerifyReferrerChainEntry(initial_url, // url |
| 766 ReferrerChainEntry::LANDING_PAGE, // type | 785 ReferrerChainEntry::LANDING_PAGE, // type |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 805 VerifyNavigationEvent(redirect_url, // source_url | 824 VerifyNavigationEvent(redirect_url, // source_url |
| 806 redirect_url, // source_main_frame_url | 825 redirect_url, // source_main_frame_url |
| 807 download_url, // original_request_url | 826 download_url, // original_request_url |
| 808 download_url, // destination_url | 827 download_url, // destination_url |
| 809 false, // is_user_initiated, | 828 false, // is_user_initiated, |
| 810 false, // has_committed | 829 false, // has_committed |
| 811 false, // has_server_redirect | 830 false, // has_server_redirect |
| 812 nav_map->at(download_url).at(0)); | 831 nav_map->at(download_url).at(0)); |
| 813 VerifyHostToIpMap(); | 832 VerifyHostToIpMap(); |
| 814 | 833 |
| 815 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 834 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 816 ASSERT_EQ(std::size_t(3), referrer_chain.size()); | 835 ASSERT_EQ(std::size_t(3), referrer_chain.size()); |
| 817 VerifyReferrerChainEntry(download_url, // url | 836 VerifyReferrerChainEntry(download_url, // url |
| 818 ReferrerChainEntry::DOWNLOAD_URL, // type | 837 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 819 test_server_ip, // ip_address | 838 test_server_ip, // ip_address |
| 820 redirect_url, // referrer_url | 839 redirect_url, // referrer_url |
| 821 redirect_url, // referrer_main_frame_url | 840 redirect_url, // referrer_main_frame_url |
| 822 false, // is_retargeting | 841 false, // is_retargeting |
| 823 referrer_chain[0]); | 842 referrer_chain[0]); |
| 824 VerifyReferrerChainEntry(redirect_url, // url | 843 VerifyReferrerChainEntry(redirect_url, // url |
| 825 ReferrerChainEntry::CLIENT_REDIRECT, // type | 844 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 884 download_url, // original_request_url | 903 download_url, // original_request_url |
| 885 download_url, // destination_url | 904 download_url, // destination_url |
| 886 false, // is_user_initiated, | 905 false, // is_user_initiated, |
| 887 false, // has_committed | 906 false, // has_committed |
| 888 false, // has_server_redirect | 907 false, // has_server_redirect |
| 889 nav_map->at(download_url).at(0)); | 908 nav_map->at(download_url).at(0)); |
| 890 EXPECT_EQ(nav_map->at(download_url).at(0).source_tab_id, | 909 EXPECT_EQ(nav_map->at(download_url).at(0).source_tab_id, |
| 891 nav_map->at(download_url).at(0).target_tab_id); | 910 nav_map->at(download_url).at(0).target_tab_id); |
| 892 VerifyHostToIpMap(); | 911 VerifyHostToIpMap(); |
| 893 | 912 |
| 894 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 913 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 895 ASSERT_EQ(std::size_t(3), referrer_chain.size()); | 914 ASSERT_EQ(std::size_t(3), referrer_chain.size()); |
| 896 VerifyReferrerChainEntry(download_url, // url | 915 VerifyReferrerChainEntry(download_url, // url |
| 897 ReferrerChainEntry::DOWNLOAD_URL, // type | 916 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 898 test_server_ip, // ip_address | 917 test_server_ip, // ip_address |
| 899 blank_url, // referrer_url | 918 blank_url, // referrer_url |
| 900 blank_url, // referrer_main_frame_url | 919 blank_url, // referrer_main_frame_url |
| 901 false, // is_retargeting | 920 false, // is_retargeting |
| 902 referrer_chain[0]); | 921 referrer_chain[0]); |
| 903 VerifyReferrerChainEntry(blank_url, // url | 922 VerifyReferrerChainEntry(blank_url, // url |
| 904 ReferrerChainEntry::CLIENT_REDIRECT, // type | 923 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 965 download_url, // original_request_url | 984 download_url, // original_request_url |
| 966 download_url, // destination_url | 985 download_url, // destination_url |
| 967 false, // is_user_initiated, | 986 false, // is_user_initiated, |
| 968 false, // has_committed | 987 false, // has_committed |
| 969 false, // has_server_redirect | 988 false, // has_server_redirect |
| 970 nav_map->at(download_url).at(0)); | 989 nav_map->at(download_url).at(0)); |
| 971 EXPECT_TRUE(nav_map->at(download_url).at(0).source_tab_id == | 990 EXPECT_TRUE(nav_map->at(download_url).at(0).source_tab_id == |
| 972 nav_map->at(download_url).at(0).target_tab_id); | 991 nav_map->at(download_url).at(0).target_tab_id); |
| 973 VerifyHostToIpMap(); | 992 VerifyHostToIpMap(); |
| 974 | 993 |
| 975 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 994 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 976 ASSERT_EQ(std::size_t(3), referrer_chain.size()); | 995 ASSERT_EQ(std::size_t(3), referrer_chain.size()); |
| 977 VerifyReferrerChainEntry(download_url, // url | 996 VerifyReferrerChainEntry(download_url, // url |
| 978 ReferrerChainEntry::DOWNLOAD_URL, // type | 997 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 979 "", // ip_address | 998 "", // ip_address |
| 980 blank_url, // referrer_url | 999 blank_url, // referrer_url |
| 981 blank_url, // referrer_main_frame_url | 1000 blank_url, // referrer_main_frame_url |
| 982 false, // is_retargeting | 1001 false, // is_retargeting |
| 983 referrer_chain[0]); | 1002 referrer_chain[0]); |
| 984 VerifyReferrerChainEntry(blank_url, // url | 1003 VerifyReferrerChainEntry(blank_url, // url |
| 985 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1004 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1026 VerifyNavigationEvent(initial_url, // source_url | 1045 VerifyNavigationEvent(initial_url, // source_url |
| 1027 initial_url, // source_main_frame_url | 1046 initial_url, // source_main_frame_url |
| 1028 download_url, // original_request_url | 1047 download_url, // original_request_url |
| 1029 download_url, // destination_url | 1048 download_url, // destination_url |
| 1030 true, // is_user_initiated, | 1049 true, // is_user_initiated, |
| 1031 false, // has_committed | 1050 false, // has_committed |
| 1032 false, // has_server_redirect | 1051 false, // has_server_redirect |
| 1033 nav_map->at(download_url).at(0)); | 1052 nav_map->at(download_url).at(0)); |
| 1034 VerifyHostToIpMap(); | 1053 VerifyHostToIpMap(); |
| 1035 | 1054 |
| 1036 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 1055 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 1037 ASSERT_EQ(2U, referrer_chain.size()); | 1056 ASSERT_EQ(2U, referrer_chain.size()); |
| 1038 VerifyReferrerChainEntry(download_url, // url | 1057 VerifyReferrerChainEntry(download_url, // url |
| 1039 ReferrerChainEntry::DOWNLOAD_URL, // type | 1058 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1040 "", // ip_address | 1059 "", // ip_address |
| 1041 initial_url, // referrer_url | 1060 initial_url, // referrer_url |
| 1042 initial_url, // referrer_main_frame_url | 1061 initial_url, // referrer_main_frame_url |
| 1043 false, // is_retargeting | 1062 false, // is_retargeting |
| 1044 referrer_chain[0]); | 1063 referrer_chain[0]); |
| 1045 VerifyReferrerChainEntry(initial_url, // url | 1064 VerifyReferrerChainEntry(initial_url, // url |
| 1046 ReferrerChainEntry::LANDING_PAGE, // type | 1065 ReferrerChainEntry::LANDING_PAGE, // type |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1110 VerifyNavigationEvent(iframe_url, // source_url | 1129 VerifyNavigationEvent(iframe_url, // source_url |
| 1111 multi_frame_test_url, // source_main_frame_url | 1130 multi_frame_test_url, // source_main_frame_url |
| 1112 download_url, // original_request_url | 1131 download_url, // original_request_url |
| 1113 download_url, // destination_url | 1132 download_url, // destination_url |
| 1114 true, // is_user_initiated, | 1133 true, // is_user_initiated, |
| 1115 false, // has_committed | 1134 false, // has_committed |
| 1116 false, // has_server_redirect | 1135 false, // has_server_redirect |
| 1117 nav_map->at(download_url).at(0)); | 1136 nav_map->at(download_url).at(0)); |
| 1118 VerifyHostToIpMap(); | 1137 VerifyHostToIpMap(); |
| 1119 | 1138 |
| 1120 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 1139 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 1121 ASSERT_EQ(2U, referrer_chain.size()); | 1140 ASSERT_EQ(2U, referrer_chain.size()); |
| 1122 VerifyReferrerChainEntry(download_url, // url | 1141 VerifyReferrerChainEntry(download_url, // url |
| 1123 ReferrerChainEntry::DOWNLOAD_URL, // type | 1142 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1124 test_server_ip, // ip_address | 1143 test_server_ip, // ip_address |
| 1125 iframe_url, // referrer_url | 1144 iframe_url, // referrer_url |
| 1126 multi_frame_test_url, // referrer_main_frame_url | 1145 multi_frame_test_url, // referrer_main_frame_url |
| 1127 false, // is_retargeting | 1146 false, // is_retargeting |
| 1128 referrer_chain[0]); | 1147 referrer_chain[0]); |
| 1129 VerifyReferrerChainEntry(iframe_url, // url | 1148 VerifyReferrerChainEntry(iframe_url, // url |
| 1130 ReferrerChainEntry::LANDING_PAGE, // type | 1149 ReferrerChainEntry::LANDING_PAGE, // type |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1212 VerifyNavigationEvent(blank_url, // source_url | 1231 VerifyNavigationEvent(blank_url, // source_url |
| 1213 blank_url, // source_main_frame_url | 1232 blank_url, // source_main_frame_url |
| 1214 download_url, // original_request_url | 1233 download_url, // original_request_url |
| 1215 download_url, // destination_url | 1234 download_url, // destination_url |
| 1216 false, // is_user_initiated, | 1235 false, // is_user_initiated, |
| 1217 false, // has_committed | 1236 false, // has_committed |
| 1218 false, // has_server_redirect | 1237 false, // has_server_redirect |
| 1219 nav_map->at(download_url).at(0)); | 1238 nav_map->at(download_url).at(0)); |
| 1220 VerifyHostToIpMap(); | 1239 VerifyHostToIpMap(); |
| 1221 | 1240 |
| 1222 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 1241 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 1223 EXPECT_EQ(std::size_t(3), referrer_chain.size()); | 1242 EXPECT_EQ(std::size_t(3), referrer_chain.size()); |
| 1224 VerifyReferrerChainEntry(download_url, // url | 1243 VerifyReferrerChainEntry(download_url, // url |
| 1225 ReferrerChainEntry::DOWNLOAD_URL, // type | 1244 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1226 test_server_ip, // ip_address | 1245 test_server_ip, // ip_address |
| 1227 blank_url, // referrer_url | 1246 blank_url, // referrer_url |
| 1228 blank_url, // referrer_main_frame_url | 1247 blank_url, // referrer_main_frame_url |
| 1229 false, // is_retargeting | 1248 false, // is_retargeting |
| 1230 referrer_chain[0]); | 1249 referrer_chain[0]); |
| 1231 VerifyReferrerChainEntry(blank_url, // url | 1250 VerifyReferrerChainEntry(blank_url, // url |
| 1232 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1251 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1288 VerifyNavigationEvent(landing_url, // source_url | 1307 VerifyNavigationEvent(landing_url, // source_url |
| 1289 landing_url, // source_main_frame_url | 1308 landing_url, // source_main_frame_url |
| 1290 download_url, // original_request_url | 1309 download_url, // original_request_url |
| 1291 download_url, // destination_url | 1310 download_url, // destination_url |
| 1292 true, // is_user_initiated, | 1311 true, // is_user_initiated, |
| 1293 false, // has_committed | 1312 false, // has_committed |
| 1294 false, // has_server_redirect | 1313 false, // has_server_redirect |
| 1295 nav_map->at(download_url).at(0)); | 1314 nav_map->at(download_url).at(0)); |
| 1296 VerifyHostToIpMap(); | 1315 VerifyHostToIpMap(); |
| 1297 | 1316 |
| 1298 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 1317 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 1299 EXPECT_EQ(std::size_t(4), referrer_chain.size()); | 1318 EXPECT_EQ(std::size_t(4), referrer_chain.size()); |
| 1300 VerifyReferrerChainEntry(download_url, // url | 1319 VerifyReferrerChainEntry(download_url, // url |
| 1301 ReferrerChainEntry::DOWNLOAD_URL, // type | 1320 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1302 test_server_ip, // ip_address | 1321 test_server_ip, // ip_address |
| 1303 landing_url, // referrer_url | 1322 landing_url, // referrer_url |
| 1304 landing_url, // referrer_main_frame_url | 1323 landing_url, // referrer_main_frame_url |
| 1305 false, // is_retargeting | 1324 false, // is_retargeting |
| 1306 referrer_chain[0]); | 1325 referrer_chain[0]); |
| 1307 VerifyReferrerChainEntry(landing_url, // url | 1326 VerifyReferrerChainEntry(landing_url, // url |
| 1308 ReferrerChainEntry::LANDING_PAGE, // type | 1327 ReferrerChainEntry::LANDING_PAGE, // type |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1387 VerifyNavigationEvent(landing_url, // source_url | 1406 VerifyNavigationEvent(landing_url, // source_url |
| 1388 landing_url, // source_main_frame_url | 1407 landing_url, // source_main_frame_url |
| 1389 download_url, // original_request_url | 1408 download_url, // original_request_url |
| 1390 download_url, // destination_url | 1409 download_url, // destination_url |
| 1391 true, // is_user_initiated, | 1410 true, // is_user_initiated, |
| 1392 false, // has_committed | 1411 false, // has_committed |
| 1393 false, // has_server_redirect | 1412 false, // has_server_redirect |
| 1394 nav_map->at(download_url).at(0)); | 1413 nav_map->at(download_url).at(0)); |
| 1395 VerifyHostToIpMap(); | 1414 VerifyHostToIpMap(); |
| 1396 | 1415 |
| 1397 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 1416 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 1398 EXPECT_EQ(std::size_t(3), referrer_chain.size()); | 1417 EXPECT_EQ(std::size_t(3), referrer_chain.size()); |
| 1399 VerifyReferrerChainEntry(download_url, // url | 1418 VerifyReferrerChainEntry(download_url, // url |
| 1400 ReferrerChainEntry::DOWNLOAD_URL, // type | 1419 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1401 test_server_ip, // ip_address | 1420 test_server_ip, // ip_address |
| 1402 landing_url, // referrer_url | 1421 landing_url, // referrer_url |
| 1403 landing_url, // referrer_main_frame_url | 1422 landing_url, // referrer_main_frame_url |
| 1404 false, // is_retargeting | 1423 false, // is_retargeting |
| 1405 referrer_chain[0]); | 1424 referrer_chain[0]); |
| 1406 VerifyReferrerChainEntry(landing_url, // url | 1425 VerifyReferrerChainEntry(landing_url, // url |
| 1407 ReferrerChainEntry::LANDING_PAGE, // type | 1426 ReferrerChainEntry::LANDING_PAGE, // type |
| 1408 test_server_ip, // ip_address | 1427 test_server_ip, // ip_address |
| 1409 landing_referrer_url, // referrer_url | 1428 landing_referrer_url, // referrer_url |
| 1410 landing_referrer_url, // referrer_main_frame_url | 1429 landing_referrer_url, // referrer_main_frame_url |
| 1411 false, // is_retargeting | 1430 false, // is_retargeting |
| 1412 referrer_chain[1]); | 1431 referrer_chain[1]); |
| 1413 VerifyReferrerChainEntry( | 1432 VerifyReferrerChainEntry( |
| 1414 landing_referrer_url, // url | 1433 landing_referrer_url, // url |
| 1415 ReferrerChainEntry::LANDING_REFERRER, // type | 1434 ReferrerChainEntry::LANDING_REFERRER, // type |
| 1416 test_server_ip, // ip_address | 1435 test_server_ip, // ip_address |
| 1417 GURL(), // referrer_url is empty since this beyonds 2 clicks. | 1436 GURL(), // referrer_url is empty since this beyonds 2 clicks. |
| 1418 GURL(), // referrer_main_frame_url is empty for the same reason. | 1437 GURL(), // referrer_main_frame_url is empty for the same reason. |
| 1419 false, // is_retargeting | 1438 false, // is_retargeting |
| 1420 referrer_chain[2]); | 1439 referrer_chain[2]); |
| 1421 // page_before_landing_referrer_url is not in referrer chain. | 1440 // page_before_landing_referrer_url is not in referrer chain. |
| 1422 } | 1441 } |
| 1423 | 1442 |
| 1443 // Click a link which redirects to a PPAPI landing page. |
| 1444 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1445 PPAPIDownloadWithUserGestureOnHostingFrame) { |
| 1446 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1447 ClickTestLink("complete_referrer_chain", 2, initial_url); |
| 1448 GURL redirect_url = embedded_test_server()->GetURL(kRedirectToLandingURL); |
| 1449 GURL landing_url = embedded_test_server()->GetURL(kLandingURL); |
| 1450 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 1451 |
| 1452 // Simulate a user gesture on landing page. |
| 1453 SimulateUserGesture(); |
| 1454 auto nav_map = navigation_map(); |
| 1455 ASSERT_TRUE(nav_map); |
| 1456 ASSERT_EQ(std::size_t(3), nav_map->size()); |
| 1457 ASSERT_EQ(1U, nav_map->at(redirect_url).size()); |
| 1458 ASSERT_EQ(1U, nav_map->at(landing_url).size()); |
| 1459 ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
| 1460 VerifyNavigationEvent(GURL(), // source_url |
| 1461 GURL(), // source_main_frame_url |
| 1462 initial_url, // original_request_url |
| 1463 initial_url, // destination_url |
| 1464 true, // is_user_initiated, |
| 1465 true, // has_committed |
| 1466 false, // has_server_redirect |
| 1467 nav_map->at(initial_url).at(0)); |
| 1468 VerifyNavigationEvent(initial_url, // source_url |
| 1469 initial_url, // source_main_frame_url |
| 1470 redirect_url, // original_request_url |
| 1471 redirect_url, // destination_url |
| 1472 true, // is_user_initiated, |
| 1473 true, // has_committed |
| 1474 false, // has_server_redirect |
| 1475 nav_map->at(redirect_url).at(0)); |
| 1476 VerifyNavigationEvent(redirect_url, // source_url |
| 1477 redirect_url, // source_main_frame_url |
| 1478 landing_url, // original_request_url |
| 1479 landing_url, // destination_url |
| 1480 false, // is_user_initiated, |
| 1481 true, // has_committed |
| 1482 false, // has_server_redirect |
| 1483 nav_map->at(landing_url).at(0)); |
| 1484 VerifyHostToIpMap(); |
| 1485 |
| 1486 auto referrer_chain = IdentifyReferrerChainForPPAPIDownload( |
| 1487 landing_url, browser()->tab_strip_model()->GetActiveWebContents()); |
| 1488 |
| 1489 EXPECT_EQ(std::size_t(3), referrer_chain.size()); |
| 1490 VerifyReferrerChainEntry(landing_url, // url |
| 1491 ReferrerChainEntry::LANDING_PAGE, // type |
| 1492 test_server_ip, // ip_address |
| 1493 redirect_url, // referrer_url |
| 1494 redirect_url, // referrer_main_frame_url |
| 1495 false, // is_retargeting |
| 1496 referrer_chain[0]); |
| 1497 VerifyReferrerChainEntry(redirect_url, // url |
| 1498 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1499 test_server_ip, // ip_address |
| 1500 initial_url, // referrer_url |
| 1501 initial_url, // referrer_main_frame_url |
| 1502 false, // is_retargeting |
| 1503 referrer_chain[1]); |
| 1504 VerifyReferrerChainEntry( |
| 1505 initial_url, // url |
| 1506 ReferrerChainEntry::LANDING_REFERRER, // type |
| 1507 test_server_ip, // ip_address |
| 1508 GURL(), // referrer_url is empty since this beyonds 2 clicks. |
| 1509 GURL(), // referrer_main_frame_url is empty for the same reason. |
| 1510 false, // is_retargeting |
| 1511 referrer_chain[2]); |
| 1512 } |
| 1513 |
| 1514 // Click a link which redirects to a page that triggers PPAPI download without |
| 1515 // user gesture (a.k.a not a landing page). |
| 1516 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1517 PPAPIDownloadWithoutUserGestureOnHostingFrame) { |
| 1518 GURL landing_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1519 ClickTestLink("complete_referrer_chain", 2, landing_url); |
| 1520 GURL redirect_url = embedded_test_server()->GetURL(kRedirectToLandingURL); |
| 1521 GURL hosting_url = embedded_test_server()->GetURL(kLandingURL); |
| 1522 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 1523 |
| 1524 auto nav_map = navigation_map(); |
| 1525 ASSERT_TRUE(nav_map); |
| 1526 ASSERT_EQ(std::size_t(3), nav_map->size()); |
| 1527 ASSERT_EQ(1U, nav_map->at(redirect_url).size()); |
| 1528 ASSERT_EQ(1U, nav_map->at(hosting_url).size()); |
| 1529 ASSERT_EQ(1U, nav_map->at(landing_url).size()); |
| 1530 VerifyNavigationEvent(GURL(), // source_url |
| 1531 GURL(), // source_main_frame_url |
| 1532 landing_url, // original_request_url |
| 1533 landing_url, // destination_url |
| 1534 true, // is_user_initiated, |
| 1535 true, // has_committed |
| 1536 false, // has_server_redirect |
| 1537 nav_map->at(landing_url).at(0)); |
| 1538 VerifyNavigationEvent(landing_url, // source_url |
| 1539 landing_url, // source_main_frame_url |
| 1540 redirect_url, // original_request_url |
| 1541 redirect_url, // destination_url |
| 1542 true, // is_user_initiated, |
| 1543 true, // has_committed |
| 1544 false, // has_server_redirect |
| 1545 nav_map->at(redirect_url).at(0)); |
| 1546 VerifyNavigationEvent(redirect_url, // source_url |
| 1547 redirect_url, // source_main_frame_url |
| 1548 hosting_url, // original_request_url |
| 1549 hosting_url, // destination_url |
| 1550 false, // is_user_initiated, |
| 1551 true, // has_committed |
| 1552 false, // has_server_redirect |
| 1553 nav_map->at(hosting_url).at(0)); |
| 1554 VerifyHostToIpMap(); |
| 1555 |
| 1556 auto referrer_chain = IdentifyReferrerChainForPPAPIDownload( |
| 1557 hosting_url, browser()->tab_strip_model()->GetActiveWebContents()); |
| 1558 |
| 1559 EXPECT_EQ(std::size_t(3), referrer_chain.size()); |
| 1560 VerifyReferrerChainEntry(hosting_url, // url |
| 1561 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1562 test_server_ip, // ip_address |
| 1563 redirect_url, // referrer_url |
| 1564 redirect_url, // referrer_main_frame_url |
| 1565 false, // is_retargeting |
| 1566 referrer_chain[0]); |
| 1567 VerifyReferrerChainEntry(redirect_url, // url |
| 1568 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1569 test_server_ip, // ip_address |
| 1570 landing_url, // referrer_url |
| 1571 landing_url, // referrer_main_frame_url |
| 1572 false, // is_retargeting |
| 1573 referrer_chain[1]); |
| 1574 VerifyReferrerChainEntry(landing_url, // url |
| 1575 ReferrerChainEntry::LANDING_PAGE, // type |
| 1576 test_server_ip, // ip_address |
| 1577 GURL(), // no more referrer before landing_url |
| 1578 GURL(), |
| 1579 false, // is_retargeting |
| 1580 referrer_chain[2]); |
| 1581 } |
| 1582 |
| 1424 // Server-side redirect. | 1583 // Server-side redirect. |
| 1425 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, ServerRedirect) { | 1584 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, ServerRedirect) { |
| 1426 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1585 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1427 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 1586 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 1428 GURL request_url = | 1587 GURL request_url = |
| 1429 embedded_test_server()->GetURL("/server-redirect?" + download_url.spec()); | 1588 embedded_test_server()->GetURL("/server-redirect?" + download_url.spec()); |
| 1430 ui_test_utils::NavigateToURL(browser(), request_url); | 1589 ui_test_utils::NavigateToURL(browser(), request_url); |
| 1431 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 1590 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 1432 auto nav_map = navigation_map(); | 1591 auto nav_map = navigation_map(); |
| 1433 ASSERT_TRUE(nav_map); | 1592 ASSERT_TRUE(nav_map); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1444 nav_map->at(initial_url).at(0)); | 1603 nav_map->at(initial_url).at(0)); |
| 1445 VerifyNavigationEvent(GURL(), // source_url | 1604 VerifyNavigationEvent(GURL(), // source_url |
| 1446 GURL(), // source_main_frame_url | 1605 GURL(), // source_main_frame_url |
| 1447 request_url, // original_request_url | 1606 request_url, // original_request_url |
| 1448 download_url, // destination_url | 1607 download_url, // destination_url |
| 1449 true, // is_user_initiated, | 1608 true, // is_user_initiated, |
| 1450 false, // has_committed | 1609 false, // has_committed |
| 1451 true, // has_server_redirect | 1610 true, // has_server_redirect |
| 1452 nav_map->at(download_url).at(0)); | 1611 nav_map->at(download_url).at(0)); |
| 1453 | 1612 |
| 1454 auto referrer_chain = IdentifyReferrerChain(GetDownload()); | 1613 auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
| 1455 ASSERT_EQ(1U, referrer_chain.size()); | 1614 ASSERT_EQ(1U, referrer_chain.size()); |
| 1456 VerifyReferrerChainEntry(download_url, // url | 1615 VerifyReferrerChainEntry(download_url, // url |
| 1457 ReferrerChainEntry::DOWNLOAD_URL, // type | 1616 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1458 test_server_ip, // ip_address | 1617 test_server_ip, // ip_address |
| 1459 GURL(), // referrer_url | 1618 GURL(), // referrer_url |
| 1460 GURL(), // referrer_main_frame_url | 1619 GURL(), // referrer_main_frame_url |
| 1461 false, // is_retargeting | 1620 false, // is_retargeting |
| 1462 referrer_chain[0]); | 1621 referrer_chain[0]); |
| 1463 } | 1622 } |
| 1464 | 1623 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 1491 yesterday, embedded_test_server()->host_port_pair().host())); | 1650 yesterday, embedded_test_server()->host_port_pair().host())); |
| 1492 ASSERT_EQ(1U, ip_map->at(test_server_host).size()); | 1651 ASSERT_EQ(1U, ip_map->at(test_server_host).size()); |
| 1493 ClickTestLink("direct_download", 1, initial_url); | 1652 ClickTestLink("direct_download", 1, initial_url); |
| 1494 EXPECT_EQ(1U, ip_map->at(test_server_host).size()); | 1653 EXPECT_EQ(1U, ip_map->at(test_server_host).size()); |
| 1495 EXPECT_EQ(embedded_test_server()->host_port_pair().host(), | 1654 EXPECT_EQ(embedded_test_server()->host_port_pair().host(), |
| 1496 ip_map->at(test_server_host).back().ip); | 1655 ip_map->at(test_server_host).back().ip); |
| 1497 EXPECT_NE(yesterday, ip_map->at(test_server_host).front().timestamp); | 1656 EXPECT_NE(yesterday, ip_map->at(test_server_host).front().timestamp); |
| 1498 } | 1657 } |
| 1499 | 1658 |
| 1500 } // namespace safe_browsing | 1659 } // namespace safe_browsing |
| OLD | NEW |