| 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 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 const GURL& expected_destination_url, | 214 const GURL& expected_destination_url, |
| 215 bool expected_is_user_initiated, | 215 bool expected_is_user_initiated, |
| 216 bool expected_has_committed, | 216 bool expected_has_committed, |
| 217 bool expected_has_server_redirect, | 217 bool expected_has_server_redirect, |
| 218 const NavigationEvent& actual_nav_event) { | 218 const NavigationEvent& actual_nav_event) { |
| 219 EXPECT_EQ(expected_source_url, actual_nav_event.source_url); | 219 EXPECT_EQ(expected_source_url, actual_nav_event.source_url); |
| 220 EXPECT_EQ(expected_source_main_frame_url, | 220 EXPECT_EQ(expected_source_main_frame_url, |
| 221 actual_nav_event.source_main_frame_url); | 221 actual_nav_event.source_main_frame_url); |
| 222 EXPECT_EQ(expected_original_request_url, | 222 EXPECT_EQ(expected_original_request_url, |
| 223 actual_nav_event.original_request_url); | 223 actual_nav_event.original_request_url); |
| 224 EXPECT_EQ(expected_destination_url, actual_nav_event.destination_url); | 224 EXPECT_EQ(expected_destination_url, actual_nav_event.GetDestinationUrl()); |
| 225 EXPECT_EQ(expected_is_user_initiated, actual_nav_event.is_user_initiated); | 225 EXPECT_EQ(expected_is_user_initiated, actual_nav_event.is_user_initiated); |
| 226 EXPECT_EQ(expected_has_committed, actual_nav_event.has_committed); | 226 EXPECT_EQ(expected_has_committed, actual_nav_event.has_committed); |
| 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.server_redirect_urls.empty()); |
| 229 } | 229 } |
| 230 | 230 |
| 231 void VerifyReferrerChainEntry(const GURL& expected_url, | 231 void VerifyReferrerChainEntry( |
| 232 ReferrerChainEntry::URLType expected_type, | 232 const GURL& expected_url, |
| 233 const std::string& expected_ip_address, | 233 const GURL& expected_main_frame_url, |
| 234 const GURL& expected_referrer_url, | 234 ReferrerChainEntry::URLType expected_type, |
| 235 const GURL& expected_referrer_main_frame_url, | 235 const std::string& expected_ip_address, |
| 236 bool expected_is_retargeting, | 236 const GURL& expected_referrer_url, |
| 237 const ReferrerChainEntry& actual_entry) { | 237 const GURL& expected_referrer_main_frame_url, |
| 238 bool expected_is_retargeting, |
| 239 const std::vector<GURL>& expected_server_redirects, |
| 240 const ReferrerChainEntry& actual_entry) { |
| 238 EXPECT_EQ(expected_url.spec(), actual_entry.url()); | 241 EXPECT_EQ(expected_url.spec(), actual_entry.url()); |
| 242 if (expected_main_frame_url.is_empty()) { |
| 243 EXPECT_FALSE(actual_entry.has_main_frame_url()); |
| 244 } else { |
| 245 // main_frame_url only set if it is different from url. |
| 246 EXPECT_EQ(expected_main_frame_url.spec(), actual_entry.main_frame_url()); |
| 247 EXPECT_NE(expected_main_frame_url.spec(), actual_entry.url()); |
| 248 } |
| 239 EXPECT_EQ(expected_type, actual_entry.type()); | 249 EXPECT_EQ(expected_type, actual_entry.type()); |
| 240 if (expected_ip_address.empty()) { | 250 if (expected_ip_address.empty()) { |
| 241 ASSERT_EQ(0, actual_entry.ip_addresses_size()); | 251 ASSERT_EQ(0, actual_entry.ip_addresses_size()); |
| 242 } else { | 252 } else { |
| 243 ASSERT_EQ(1, actual_entry.ip_addresses_size()); | 253 ASSERT_EQ(1, actual_entry.ip_addresses_size()); |
| 244 EXPECT_EQ(expected_ip_address, actual_entry.ip_addresses(0)); | 254 EXPECT_EQ(expected_ip_address, actual_entry.ip_addresses(0)); |
| 245 } | 255 } |
| 246 EXPECT_EQ(expected_referrer_url.spec(), actual_entry.referrer_url()); | 256 EXPECT_EQ(expected_referrer_url.spec(), actual_entry.referrer_url()); |
| 247 EXPECT_EQ(expected_referrer_main_frame_url.spec(), | 257 if (expected_referrer_main_frame_url.is_empty()) { |
| 248 actual_entry.referrer_main_frame_url()); | 258 EXPECT_FALSE(actual_entry.has_referrer_main_frame_url()); |
| 259 } else { |
| 260 // referrer_main_frame_url only set if it is different from referrer_url. |
| 261 EXPECT_EQ(expected_referrer_main_frame_url.spec(), |
| 262 actual_entry.referrer_main_frame_url()); |
| 263 EXPECT_NE(expected_referrer_main_frame_url.spec(), |
| 264 actual_entry.referrer_url()); |
| 265 } |
| 249 EXPECT_EQ(expected_is_retargeting, actual_entry.is_retargeting()); | 266 EXPECT_EQ(expected_is_retargeting, actual_entry.is_retargeting()); |
| 267 if (expected_server_redirects.empty()) { |
| 268 EXPECT_EQ(0, actual_entry.server_redirect_chain_size()); |
| 269 } else { |
| 270 ASSERT_EQ(static_cast<int>(expected_server_redirects.size()), |
| 271 actual_entry.server_redirect_chain_size()); |
| 272 for (int i = 0; i < actual_entry.server_redirect_chain_size(); i++) { |
| 273 EXPECT_EQ(expected_server_redirects[i].spec(), |
| 274 actual_entry.server_redirect_chain(i).url()); |
| 275 } |
| 276 } |
| 250 } | 277 } |
| 251 | 278 |
| 252 // Identify referrer chain of a DownloadItem and populate |referrer_chain|. | 279 // Identify referrer chain of a DownloadItem and populate |referrer_chain|. |
| 253 void IdentifyReferrerChainForDownload( | 280 void IdentifyReferrerChainForDownload( |
| 254 DownloadItem* download, | 281 DownloadItem* download, |
| 255 ReferrerChain* referrer_chain) { | 282 ReferrerChain* referrer_chain) { |
| 256 int download_tab_id = | 283 int download_tab_id = |
| 257 SessionTabHelper::IdForTab(download->GetWebContents()); | 284 SessionTabHelper::IdForTab(download->GetWebContents()); |
| 258 // IdentifyReferrerChain should return SUCCESS(1), SUCCESS_LANDING_PAGE(2), | 285 // IdentifyReferrerChain should return SUCCESS(1), SUCCESS_LANDING_PAGE(2), |
| 259 // or SUCCESS_LANDING_REFERRER(3) in all these tests. | 286 // or SUCCESS_LANDING_REFERRER(3) in all these tests. |
| 260 EXPECT_LE(observer_manager_->IdentifyReferrerChainForDownload( | 287 EXPECT_LE(observer_manager_->IdentifyReferrerChainForDownload( |
| 261 download->GetURL(), download_tab_id, | 288 download->GetURL(), download_tab_id, |
| 262 2, // kDownloadAttributionUserGestureLimit | 289 2, // kDownloadAttributionUserGestureLimit |
| 263 referrer_chain), | 290 referrer_chain), |
| 264 SafeBrowsingNavigationObserverManager::SUCCESS_LANDING_REFERRER); | 291 SafeBrowsingNavigationObserverManager::SUCCESS_LANDING_REFERRER); |
| 265 } | 292 } |
| 266 | 293 |
| 267 // Identify referrer chain of a PPAPI download and populate |referrer_chain|. | 294 // Identify referrer chain of a PPAPI download and populate |referrer_chain|. |
| 268 void IdentifyReferrerChainForPPAPIDownload( | 295 void IdentifyReferrerChainForPPAPIDownload( |
| 269 const GURL& initiating_frame_url, | 296 const GURL& initiating_frame_url, |
| 270 content::WebContents* web_contents, | 297 content::WebContents* web_contents, |
| 271 ReferrerChain* referrer_chain) { | 298 ReferrerChain* referrer_chain) { |
| 272 int tab_id = SessionTabHelper::IdForTab(web_contents); | 299 int tab_id = SessionTabHelper::IdForTab(web_contents); |
| 273 bool has_user_gesture = observer_manager_->HasUserGesture(web_contents); | 300 bool has_user_gesture = observer_manager_->HasUserGesture(web_contents); |
| 274 observer_manager_->OnUserGestureConsumed(web_contents, base::Time::Now()); | 301 observer_manager_->OnUserGestureConsumed(web_contents, base::Time::Now()); |
| 275 EXPECT_LE(observer_manager_->IdentifyReferrerChainForPPAPIDownload( | 302 EXPECT_LE(observer_manager_->IdentifyReferrerChainForPPAPIDownload( |
| 276 initiating_frame_url, | 303 initiating_frame_url, web_contents->GetLastCommittedURL(), |
| 277 tab_id, | 304 tab_id, has_user_gesture, |
| 278 has_user_gesture, | |
| 279 2, // kDownloadAttributionUserGestureLimit) | 305 2, // kDownloadAttributionUserGestureLimit) |
| 280 referrer_chain), | 306 referrer_chain), |
| 281 SafeBrowsingNavigationObserverManager::SUCCESS_LANDING_REFERRER); | 307 SafeBrowsingNavigationObserverManager::SUCCESS_LANDING_REFERRER); |
| 282 } | 308 } |
| 283 | 309 |
| 284 void VerifyHostToIpMap() { | 310 void VerifyHostToIpMap() { |
| 285 // Since all testing pages have the same host, there is only one entry in | 311 // Since all testing pages have the same host, there is only one entry in |
| 286 // host_to_ip_map_. | 312 // host_to_ip_map_. |
| 287 SafeBrowsingNavigationObserverManager::HostToIpMap* actual_host_ip_map = | 313 SafeBrowsingNavigationObserverManager::HostToIpMap* actual_host_ip_map = |
| 288 host_to_ip_map(); | 314 host_to_ip_map(); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 true, // is_user_initiated, | 369 true, // is_user_initiated, |
| 344 false, // has_committed | 370 false, // has_committed |
| 345 false, // has_server_redirect | 371 false, // has_server_redirect |
| 346 nav_map->at(download_url).at(0)); | 372 nav_map->at(download_url).at(0)); |
| 347 VerifyHostToIpMap(); | 373 VerifyHostToIpMap(); |
| 348 | 374 |
| 349 ReferrerChain referrer_chain; | 375 ReferrerChain referrer_chain; |
| 350 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 376 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 351 ASSERT_EQ(1, referrer_chain.size()); | 377 ASSERT_EQ(1, referrer_chain.size()); |
| 352 VerifyReferrerChainEntry(download_url, // url | 378 VerifyReferrerChainEntry(download_url, // url |
| 379 GURL(), // main_frame_url |
| 353 ReferrerChainEntry::DOWNLOAD_URL, // type | 380 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 354 test_server_ip, // ip_address | 381 test_server_ip, // ip_address |
| 355 GURL(), // referrer_url | 382 GURL(), // referrer_url |
| 356 GURL(), // referrer_main_frame_url | 383 GURL(), // referrer_main_frame_url |
| 357 false, // is_retargeting | 384 false, // is_retargeting |
| 385 std::vector<GURL>(), // server redirects |
| 358 referrer_chain.Get(0)); | 386 referrer_chain.Get(0)); |
| 359 } | 387 } |
| 360 // Click on a link and start download on the same page. | 388 // Click on a link and start download on the same page. |
| 361 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, DirectDownload) { | 389 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, DirectDownload) { |
| 362 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 390 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 363 ClickTestLink("direct_download", 1, initial_url); | 391 ClickTestLink("direct_download", 1, initial_url); |
| 364 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 392 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 365 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 393 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 366 auto nav_map = navigation_map(); | 394 auto nav_map = navigation_map(); |
| 367 ASSERT_TRUE(nav_map); | 395 ASSERT_TRUE(nav_map); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 383 true, // is_user_initiated, | 411 true, // is_user_initiated, |
| 384 false, // has_committed | 412 false, // has_committed |
| 385 false, // has_server_redirect | 413 false, // has_server_redirect |
| 386 nav_map->at(download_url).at(0)); | 414 nav_map->at(download_url).at(0)); |
| 387 VerifyHostToIpMap(); | 415 VerifyHostToIpMap(); |
| 388 | 416 |
| 389 ReferrerChain referrer_chain; | 417 ReferrerChain referrer_chain; |
| 390 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 418 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 391 ASSERT_EQ(2, referrer_chain.size()); | 419 ASSERT_EQ(2, referrer_chain.size()); |
| 392 VerifyReferrerChainEntry(download_url, // url | 420 VerifyReferrerChainEntry(download_url, // url |
| 421 GURL(), // main_frame_url |
| 393 ReferrerChainEntry::DOWNLOAD_URL, // type | 422 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 394 test_server_ip, // ip_address | 423 test_server_ip, // ip_address |
| 395 initial_url, // referrer_url | 424 initial_url, // referrer_url |
| 396 initial_url, // referrer_main_frame_url | 425 GURL(), // referrer_main_frame_url |
| 397 false, // is_retargeting | 426 false, // is_retargeting |
| 427 std::vector<GURL>(), // server redirects |
| 398 referrer_chain.Get(0)); | 428 referrer_chain.Get(0)); |
| 399 VerifyReferrerChainEntry(initial_url, // url | 429 VerifyReferrerChainEntry(initial_url, // url |
| 430 GURL(), // main_frame_url |
| 400 ReferrerChainEntry::LANDING_PAGE, // type | 431 ReferrerChainEntry::LANDING_PAGE, // type |
| 401 test_server_ip, // ip_address | 432 test_server_ip, // ip_address |
| 402 GURL(), // referrer_url | 433 GURL(), // referrer_url |
| 403 GURL(), // referrer_main_frame_url | 434 GURL(), // referrer_main_frame_url |
| 404 false, // is_retargeting | 435 false, // is_retargeting |
| 436 std::vector<GURL>(), // server redirects |
| 405 referrer_chain.Get(1)); | 437 referrer_chain.Get(1)); |
| 406 } | 438 } |
| 407 | 439 |
| 408 // Click on a link with rel="noreferrer" attribute, and start download on the | 440 // Click on a link with rel="noreferrer" attribute, and start download on the |
| 409 // same page. | 441 // same page. |
| 410 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 442 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 411 DirectDownloadNoReferrer) { | 443 DirectDownloadNoReferrer) { |
| 412 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 444 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 413 ClickTestLink("direct_download_noreferrer", 1, initial_url); | 445 ClickTestLink("direct_download_noreferrer", 1, initial_url); |
| 414 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 446 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 433 true, // is_user_initiated, | 465 true, // is_user_initiated, |
| 434 false, // has_committed | 466 false, // has_committed |
| 435 false, // has_server_redirect | 467 false, // has_server_redirect |
| 436 nav_map->at(download_url).at(0)); | 468 nav_map->at(download_url).at(0)); |
| 437 VerifyHostToIpMap(); | 469 VerifyHostToIpMap(); |
| 438 | 470 |
| 439 ReferrerChain referrer_chain; | 471 ReferrerChain referrer_chain; |
| 440 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 472 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 441 ASSERT_EQ(2, referrer_chain.size()); | 473 ASSERT_EQ(2, referrer_chain.size()); |
| 442 VerifyReferrerChainEntry(download_url, // url | 474 VerifyReferrerChainEntry(download_url, // url |
| 475 GURL(), // main_frame_url |
| 443 ReferrerChainEntry::DOWNLOAD_URL, // type | 476 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 444 test_server_ip, // ip_address | 477 test_server_ip, // ip_address |
| 445 initial_url, // referrer_url | 478 initial_url, // referrer_url |
| 446 initial_url, // referrer_main_frame_url | 479 GURL(), // referrer_main_frame_url |
| 447 false, // is_retargeting | 480 false, // is_retargeting |
| 481 std::vector<GURL>(), // server redirects |
| 448 referrer_chain.Get(0)); | 482 referrer_chain.Get(0)); |
| 449 VerifyReferrerChainEntry(initial_url, // url | 483 VerifyReferrerChainEntry(initial_url, // url |
| 484 GURL(), // main_frame_url |
| 450 ReferrerChainEntry::LANDING_PAGE, // type | 485 ReferrerChainEntry::LANDING_PAGE, // type |
| 451 test_server_ip, // ip_address | 486 test_server_ip, // ip_address |
| 452 GURL(), // referrer_url | 487 GURL(), // referrer_url |
| 453 GURL(), // referrer_main_frame_url | 488 GURL(), // referrer_main_frame_url |
| 454 false, // is_retargeting | 489 false, // is_retargeting |
| 490 std::vector<GURL>(), // server redirects |
| 455 referrer_chain.Get(1)); | 491 referrer_chain.Get(1)); |
| 456 } | 492 } |
| 457 | 493 |
| 458 // Click on a link with rel="noreferrer" attribute, and start download in a | 494 // Click on a link with rel="noreferrer" attribute, and start download in a |
| 459 // new tab using target=_blank. | 495 // new tab using target=_blank. |
| 460 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 496 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 461 DirectDownloadNoReferrerTargetBlank) { | 497 DirectDownloadNoReferrerTargetBlank) { |
| 462 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 498 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 463 ClickTestLink("direct_download_noreferrer_target_blank", 1, initial_url); | 499 ClickTestLink("direct_download_noreferrer_target_blank", 1, initial_url); |
| 464 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 500 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 497 false, // is_user_initiated, | 533 false, // is_user_initiated, |
| 498 false, // has_committed | 534 false, // has_committed |
| 499 false, // has_server_redirect | 535 false, // has_server_redirect |
| 500 nav_map->at(download_url).at(1)); | 536 nav_map->at(download_url).at(1)); |
| 501 VerifyHostToIpMap(); | 537 VerifyHostToIpMap(); |
| 502 | 538 |
| 503 ReferrerChain referrer_chain; | 539 ReferrerChain referrer_chain; |
| 504 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 540 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 505 ASSERT_EQ(2, referrer_chain.size()); | 541 ASSERT_EQ(2, referrer_chain.size()); |
| 506 VerifyReferrerChainEntry(download_url, // url | 542 VerifyReferrerChainEntry(download_url, // url |
| 543 GURL(), // main_frame_url |
| 507 ReferrerChainEntry::DOWNLOAD_URL, // type | 544 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 508 test_server_ip, // ip_address | 545 test_server_ip, // ip_address |
| 509 initial_url, // referrer_url | 546 initial_url, // referrer_url |
| 510 initial_url, // referrer_main_frame_url | 547 GURL(), // referrer_main_frame_url |
| 511 true, // is_retargeting | 548 true, // is_retargeting |
| 549 std::vector<GURL>(), // server redirects |
| 512 referrer_chain.Get(0)); | 550 referrer_chain.Get(0)); |
| 513 VerifyReferrerChainEntry(initial_url, // url | 551 VerifyReferrerChainEntry(initial_url, // url |
| 552 GURL(), // main_frame_url |
| 514 ReferrerChainEntry::LANDING_PAGE, // type | 553 ReferrerChainEntry::LANDING_PAGE, // type |
| 515 test_server_ip, // ip_address | 554 test_server_ip, // ip_address |
| 516 GURL(), // referrer_url | 555 GURL(), // referrer_url |
| 517 GURL(), // referrer_main_frame_url | 556 GURL(), // referrer_main_frame_url |
| 518 false, // is_retargeting | 557 false, // is_retargeting |
| 558 std::vector<GURL>(), // server redirects |
| 519 referrer_chain.Get(1)); | 559 referrer_chain.Get(1)); |
| 520 } | 560 } |
| 521 | 561 |
| 522 // Click on a link which navigates to a page then redirects to a download using | 562 // Click on a link which navigates to a page then redirects to a download using |
| 523 // META HTTP-EQUIV="refresh". All transitions happen in the same tab. | 563 // META HTTP-EQUIV="refresh". All transitions happen in the same tab. |
| 524 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 564 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 525 SingleMetaRefreshRedirect) { | 565 SingleMetaRefreshRedirect) { |
| 526 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 566 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 527 ClickTestLink("single_meta_refresh_redirect", 2, initial_url); | 567 ClickTestLink("single_meta_refresh_redirect", 2, initial_url); |
| 528 GURL redirect_url = embedded_test_server()->GetURL(kRedirectURL); | 568 GURL redirect_url = embedded_test_server()->GetURL(kRedirectURL); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 559 false, // is_user_initiated, | 599 false, // is_user_initiated, |
| 560 false, // has_committed | 600 false, // has_committed |
| 561 false, // has_server_redirect | 601 false, // has_server_redirect |
| 562 nav_map->at(download_url).at(0)); | 602 nav_map->at(download_url).at(0)); |
| 563 VerifyHostToIpMap(); | 603 VerifyHostToIpMap(); |
| 564 | 604 |
| 565 ReferrerChain referrer_chain; | 605 ReferrerChain referrer_chain; |
| 566 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 606 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 567 ASSERT_EQ(3, referrer_chain.size()); | 607 ASSERT_EQ(3, referrer_chain.size()); |
| 568 VerifyReferrerChainEntry(download_url, // url | 608 VerifyReferrerChainEntry(download_url, // url |
| 609 GURL(), // main_frame_url |
| 569 ReferrerChainEntry::DOWNLOAD_URL, // type | 610 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 570 test_server_ip, // ip_address | 611 test_server_ip, // ip_address |
| 571 redirect_url, // referrer_url | 612 redirect_url, // referrer_url |
| 572 redirect_url, // referrer_main_frame_url | 613 GURL(), // referrer_main_frame_url |
| 573 false, // is_retargeting | 614 false, // is_retargeting |
| 615 std::vector<GURL>(), // server redirects |
| 574 referrer_chain.Get(0)); | 616 referrer_chain.Get(0)); |
| 575 VerifyReferrerChainEntry(redirect_url, // url | 617 VerifyReferrerChainEntry(redirect_url, // url |
| 618 GURL(), // main_frame_url |
| 576 ReferrerChainEntry::CLIENT_REDIRECT, // type | 619 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 577 test_server_ip, // ip_address | 620 test_server_ip, // ip_address |
| 578 initial_url, // referrer_url | 621 initial_url, // referrer_url |
| 579 initial_url, // referrer_main_frame_url | 622 GURL(), // referrer_main_frame_url |
| 580 false, // is_retargeting | 623 false, // is_retargeting |
| 624 std::vector<GURL>(), // server redirects |
| 581 referrer_chain.Get(1)); | 625 referrer_chain.Get(1)); |
| 582 VerifyReferrerChainEntry(initial_url, // url | 626 VerifyReferrerChainEntry(initial_url, // url |
| 627 GURL(), // main_frame_url |
| 583 ReferrerChainEntry::LANDING_PAGE, // type | 628 ReferrerChainEntry::LANDING_PAGE, // type |
| 584 test_server_ip, // ip_address | 629 test_server_ip, // ip_address |
| 585 GURL(), // referrer_url | 630 GURL(), // referrer_url |
| 586 GURL(), // referrer_main_frame_url | 631 GURL(), // referrer_main_frame_url |
| 587 false, // is_retargeting | 632 false, // is_retargeting |
| 633 std::vector<GURL>(), // server redirects |
| 588 referrer_chain.Get(2)); | 634 referrer_chain.Get(2)); |
| 589 } | 635 } |
| 590 | 636 |
| 591 // Click on a link which navigates to a page then redirects to a download using | 637 // Click on a link which navigates to a page then redirects to a download using |
| 592 // META HTTP-EQUIV="refresh". First navigation happens in target blank. | 638 // META HTTP-EQUIV="refresh". First navigation happens in target blank. |
| 593 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 639 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 594 SingleMetaRefreshRedirectTargetBlank) { | 640 SingleMetaRefreshRedirectTargetBlank) { |
| 595 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 641 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 596 ClickTestLink("single_meta_refresh_redirect_target_blank", 2, initial_url); | 642 ClickTestLink("single_meta_refresh_redirect_target_blank", 2, initial_url); |
| 597 GURL redirect_url = embedded_test_server()->GetURL(kRedirectURL); | 643 GURL redirect_url = embedded_test_server()->GetURL(kRedirectURL); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 637 false, // is_user_initiated, | 683 false, // is_user_initiated, |
| 638 false, // has_committed | 684 false, // has_committed |
| 639 false, // has_server_redirect | 685 false, // has_server_redirect |
| 640 nav_map->at(download_url).at(0)); | 686 nav_map->at(download_url).at(0)); |
| 641 VerifyHostToIpMap(); | 687 VerifyHostToIpMap(); |
| 642 | 688 |
| 643 ReferrerChain referrer_chain; | 689 ReferrerChain referrer_chain; |
| 644 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 690 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 645 ASSERT_EQ(3, referrer_chain.size()); | 691 ASSERT_EQ(3, referrer_chain.size()); |
| 646 VerifyReferrerChainEntry(download_url, // url | 692 VerifyReferrerChainEntry(download_url, // url |
| 693 GURL(), // main_frame_url |
| 647 ReferrerChainEntry::DOWNLOAD_URL, // type | 694 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 648 test_server_ip, // ip_address | 695 test_server_ip, // ip_address |
| 649 redirect_url, // referrer_url | 696 redirect_url, // referrer_url |
| 650 redirect_url, // referrer_main_frame_url | 697 GURL(), // referrer_main_frame_url |
| 651 false, // is_retargeting | 698 false, // is_retargeting |
| 699 std::vector<GURL>(), // server redirects |
| 652 referrer_chain.Get(0)); | 700 referrer_chain.Get(0)); |
| 653 VerifyReferrerChainEntry(redirect_url, // url | 701 VerifyReferrerChainEntry(redirect_url, // url |
| 702 GURL(), // main_frame_url |
| 654 ReferrerChainEntry::CLIENT_REDIRECT, // type | 703 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 655 test_server_ip, // ip_address | 704 test_server_ip, // ip_address |
| 656 initial_url, // referrer_url | 705 initial_url, // referrer_url |
| 657 initial_url, // referrer_main_frame_url | 706 GURL(), // referrer_main_frame_url |
| 658 true, // is_retargeting | 707 true, // is_retargeting |
| 708 std::vector<GURL>(), // server redirects |
| 659 referrer_chain.Get(1)); | 709 referrer_chain.Get(1)); |
| 660 VerifyReferrerChainEntry(initial_url, // url | 710 VerifyReferrerChainEntry(initial_url, // url |
| 711 GURL(), // main_frame_url |
| 661 ReferrerChainEntry::LANDING_PAGE, // type | 712 ReferrerChainEntry::LANDING_PAGE, // type |
| 662 test_server_ip, // ip_address | 713 test_server_ip, // ip_address |
| 663 GURL(), // referrer_url | 714 GURL(), // referrer_url |
| 664 GURL(), // referrer_main_frame_url | 715 GURL(), // referrer_main_frame_url |
| 665 false, // is_retargeting | 716 false, // is_retargeting |
| 717 std::vector<GURL>(), // server redirects |
| 666 referrer_chain.Get(2)); | 718 referrer_chain.Get(2)); |
| 667 } | 719 } |
| 668 | 720 |
| 669 // Click on a link which redirects twice before reaching download using | 721 // Click on a link which redirects twice before reaching download using |
| 670 // META HTTP-EQUIV="refresh". All transitions happen in the same tab. | 722 // META HTTP-EQUIV="refresh". All transitions happen in the same tab. |
| 671 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 723 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 672 MultiMetaRefreshRedirects) { | 724 MultiMetaRefreshRedirects) { |
| 673 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 725 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 674 ClickTestLink("multiple_meta_refresh_redirects", 3, initial_url); | 726 ClickTestLink("multiple_meta_refresh_redirects", 3, initial_url); |
| 675 GURL first_redirect_url = embedded_test_server()->GetURL( | 727 GURL first_redirect_url = embedded_test_server()->GetURL( |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 716 false, // is_user_initiated, | 768 false, // is_user_initiated, |
| 717 false, // has_committed | 769 false, // has_committed |
| 718 false, // has_server_redirect | 770 false, // has_server_redirect |
| 719 nav_map->at(download_url).at(0)); | 771 nav_map->at(download_url).at(0)); |
| 720 VerifyHostToIpMap(); | 772 VerifyHostToIpMap(); |
| 721 | 773 |
| 722 ReferrerChain referrer_chain; | 774 ReferrerChain referrer_chain; |
| 723 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 775 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 724 ASSERT_EQ(4, referrer_chain.size()); | 776 ASSERT_EQ(4, referrer_chain.size()); |
| 725 VerifyReferrerChainEntry(download_url, // url | 777 VerifyReferrerChainEntry(download_url, // url |
| 778 GURL(), // main_frame_url |
| 726 ReferrerChainEntry::DOWNLOAD_URL, // type | 779 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 727 test_server_ip, // ip_address | 780 test_server_ip, // ip_address |
| 728 second_redirect_url, // referrer_url | 781 second_redirect_url, // referrer_url |
| 729 second_redirect_url, // referrer_main_frame_url | 782 GURL(), // referrer_main_frame_url |
| 730 false, // is_retargeting | 783 false, // is_retargeting |
| 784 std::vector<GURL>(), // server redirects |
| 731 referrer_chain.Get(0)); | 785 referrer_chain.Get(0)); |
| 732 VerifyReferrerChainEntry(second_redirect_url, // url | 786 VerifyReferrerChainEntry(second_redirect_url, // url |
| 787 GURL(), // main_frame_url |
| 733 ReferrerChainEntry::CLIENT_REDIRECT, // type | 788 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 734 test_server_ip, // ip_address | 789 test_server_ip, // ip_address |
| 735 first_redirect_url, // referrer_url | 790 first_redirect_url, // referrer_url |
| 736 first_redirect_url, // referrer_main_frame_url | 791 GURL(), // referrer_main_frame_url |
| 737 false, // is_retargeting | 792 false, // is_retargeting |
| 793 std::vector<GURL>(), // server redirects |
| 738 referrer_chain.Get(1)); | 794 referrer_chain.Get(1)); |
| 739 VerifyReferrerChainEntry(first_redirect_url, // url | 795 VerifyReferrerChainEntry(first_redirect_url, // url |
| 796 GURL(), // main_frame_url |
| 740 ReferrerChainEntry::CLIENT_REDIRECT, // type | 797 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 741 test_server_ip, // ip_address | 798 test_server_ip, // ip_address |
| 742 initial_url, // referrer_url | 799 initial_url, // referrer_url |
| 743 initial_url, // referrer_main_frame_url | 800 GURL(), // referrer_main_frame_url |
| 744 false, // is_retargeting | 801 false, // is_retargeting |
| 802 std::vector<GURL>(), // server redirects |
| 745 referrer_chain.Get(2)); | 803 referrer_chain.Get(2)); |
| 746 VerifyReferrerChainEntry(initial_url, // url | 804 VerifyReferrerChainEntry(initial_url, // url |
| 805 GURL(), // main_frame_url |
| 747 ReferrerChainEntry::LANDING_PAGE, // type | 806 ReferrerChainEntry::LANDING_PAGE, // type |
| 748 test_server_ip, // ip_address | 807 test_server_ip, // ip_address |
| 749 GURL(), // referrer_url | 808 GURL(), // referrer_url |
| 750 GURL(), // referrer_main_frame_url | 809 GURL(), // referrer_main_frame_url |
| 751 false, // is_retargeting | 810 false, // is_retargeting |
| 811 std::vector<GURL>(), // server redirects |
| 752 referrer_chain.Get(3)); | 812 referrer_chain.Get(3)); |
| 753 } | 813 } |
| 754 | 814 |
| 755 // Click on a link which redirects to download using window.location. | 815 // Click on a link which redirects to download using window.location. |
| 756 // All transitions happen in the same tab. | 816 // All transitions happen in the same tab. |
| 757 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 817 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 758 WindowLocationRedirect) { | 818 WindowLocationRedirect) { |
| 759 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 819 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 760 ClickTestLink("window_location_redirection", 1, initial_url); | 820 ClickTestLink("window_location_redirection", 1, initial_url); |
| 761 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 821 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 779 download_url, // destination_url | 839 download_url, // destination_url |
| 780 true, // is_user_initiated, | 840 true, // is_user_initiated, |
| 781 false, // has_committed | 841 false, // has_committed |
| 782 false, // has_server_redirect | 842 false, // has_server_redirect |
| 783 nav_map->at(download_url).at(0)); | 843 nav_map->at(download_url).at(0)); |
| 784 | 844 |
| 785 ReferrerChain referrer_chain; | 845 ReferrerChain referrer_chain; |
| 786 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 846 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 787 ASSERT_EQ(2, referrer_chain.size()); | 847 ASSERT_EQ(2, referrer_chain.size()); |
| 788 VerifyReferrerChainEntry(download_url, // url | 848 VerifyReferrerChainEntry(download_url, // url |
| 849 GURL(), // main_frame_url |
| 789 ReferrerChainEntry::DOWNLOAD_URL, // type | 850 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 790 test_server_ip, // ip_address | 851 test_server_ip, // ip_address |
| 791 initial_url, // referrer_url | 852 initial_url, // referrer_url |
| 792 initial_url, // referrer_main_frame_url | 853 GURL(), // referrer_main_frame_url |
| 793 false, // is_retargeting | 854 false, // is_retargeting |
| 855 std::vector<GURL>(), // server redirects |
| 794 referrer_chain.Get(0)); | 856 referrer_chain.Get(0)); |
| 795 VerifyReferrerChainEntry(initial_url, // url | 857 VerifyReferrerChainEntry(initial_url, // url |
| 858 GURL(), // main_frame_url |
| 796 ReferrerChainEntry::LANDING_PAGE, // type | 859 ReferrerChainEntry::LANDING_PAGE, // type |
| 797 test_server_ip, // ip_address | 860 test_server_ip, // ip_address |
| 798 GURL(), // referrer_url | 861 GURL(), // referrer_url |
| 799 GURL(), // referrer_main_frame_url | 862 GURL(), // referrer_main_frame_url |
| 800 false, // is_retargeting | 863 false, // is_retargeting |
| 864 std::vector<GURL>(), // server redirects |
| 801 referrer_chain.Get(1)); | 865 referrer_chain.Get(1)); |
| 802 } | 866 } |
| 803 | 867 |
| 804 // Click on a link which redirects twice until it reaches download using a | 868 // Click on a link which redirects twice until it reaches download using a |
| 805 // mixture of meta refresh and window.location. All transitions happen in the | 869 // mixture of meta refresh and window.location. All transitions happen in the |
| 806 // same tab. | 870 // same tab. |
| 807 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, MixRedirects) { | 871 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, MixRedirects) { |
| 808 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 872 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 809 ClickTestLink("mix_redirects", 2, initial_url); | 873 ClickTestLink("mix_redirects", 2, initial_url); |
| 810 GURL redirect_url = embedded_test_server()->GetURL(kRedirectURL); | 874 GURL redirect_url = embedded_test_server()->GetURL(kRedirectURL); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 839 false, // is_user_initiated, | 903 false, // is_user_initiated, |
| 840 false, // has_committed | 904 false, // has_committed |
| 841 false, // has_server_redirect | 905 false, // has_server_redirect |
| 842 nav_map->at(download_url).at(0)); | 906 nav_map->at(download_url).at(0)); |
| 843 VerifyHostToIpMap(); | 907 VerifyHostToIpMap(); |
| 844 | 908 |
| 845 ReferrerChain referrer_chain; | 909 ReferrerChain referrer_chain; |
| 846 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 910 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 847 ASSERT_EQ(3, referrer_chain.size()); | 911 ASSERT_EQ(3, referrer_chain.size()); |
| 848 VerifyReferrerChainEntry(download_url, // url | 912 VerifyReferrerChainEntry(download_url, // url |
| 913 GURL(), // main_frame_url |
| 849 ReferrerChainEntry::DOWNLOAD_URL, // type | 914 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 850 test_server_ip, // ip_address | 915 test_server_ip, // ip_address |
| 851 redirect_url, // referrer_url | 916 redirect_url, // referrer_url |
| 852 redirect_url, // referrer_main_frame_url | 917 GURL(), // referrer_main_frame_url |
| 853 false, // is_retargeting | 918 false, // is_retargeting |
| 919 std::vector<GURL>(), // server redirects |
| 854 referrer_chain.Get(0)); | 920 referrer_chain.Get(0)); |
| 855 VerifyReferrerChainEntry(redirect_url, // url | 921 VerifyReferrerChainEntry(redirect_url, // url |
| 922 GURL(), // main_frame_url |
| 856 ReferrerChainEntry::CLIENT_REDIRECT, // type | 923 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 857 test_server_ip, // ip_address | 924 test_server_ip, // ip_address |
| 858 initial_url, // referrer_url | 925 initial_url, // referrer_url |
| 859 initial_url, // referrer_main_frame_url | 926 GURL(), // referrer_main_frame_url |
| 860 false, // is_retargeting | 927 false, // is_retargeting |
| 928 std::vector<GURL>(), // server redirects |
| 861 referrer_chain.Get(1)); | 929 referrer_chain.Get(1)); |
| 862 VerifyReferrerChainEntry(initial_url, // url | 930 VerifyReferrerChainEntry(initial_url, // url |
| 931 GURL(), // main_frame_url |
| 863 ReferrerChainEntry::LANDING_PAGE, // type | 932 ReferrerChainEntry::LANDING_PAGE, // type |
| 864 test_server_ip, // ip_address | 933 test_server_ip, // ip_address |
| 865 GURL(), // referrer_url | 934 GURL(), // referrer_url |
| 866 GURL(), // referrer_main_frame_url | 935 GURL(), // referrer_main_frame_url |
| 867 false, // is_retargeting | 936 false, // is_retargeting |
| 937 std::vector<GURL>(), // server redirects |
| 868 referrer_chain.Get(2)); | 938 referrer_chain.Get(2)); |
| 869 } | 939 } |
| 870 | 940 |
| 871 // Use javascript to open download in a new tab. | 941 // Use javascript to open download in a new tab. |
| 872 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, NewTabDownload) { | 942 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, NewTabDownload) { |
| 873 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 943 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 874 ClickTestLink("new_tab_download", 2, initial_url); | 944 ClickTestLink("new_tab_download", 2, initial_url); |
| 875 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 945 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 876 GURL blank_url = GURL(url::kAboutBlankURL); | 946 GURL blank_url = GURL(url::kAboutBlankURL); |
| 877 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 947 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 919 false, // has_server_redirect | 989 false, // has_server_redirect |
| 920 nav_map->at(download_url).at(0)); | 990 nav_map->at(download_url).at(0)); |
| 921 EXPECT_EQ(nav_map->at(download_url).at(0).source_tab_id, | 991 EXPECT_EQ(nav_map->at(download_url).at(0).source_tab_id, |
| 922 nav_map->at(download_url).at(0).target_tab_id); | 992 nav_map->at(download_url).at(0).target_tab_id); |
| 923 VerifyHostToIpMap(); | 993 VerifyHostToIpMap(); |
| 924 | 994 |
| 925 ReferrerChain referrer_chain; | 995 ReferrerChain referrer_chain; |
| 926 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 996 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 927 ASSERT_EQ(3, referrer_chain.size()); | 997 ASSERT_EQ(3, referrer_chain.size()); |
| 928 VerifyReferrerChainEntry(download_url, // url | 998 VerifyReferrerChainEntry(download_url, // url |
| 999 GURL(), // main_frame_url |
| 929 ReferrerChainEntry::DOWNLOAD_URL, // type | 1000 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 930 test_server_ip, // ip_address | 1001 test_server_ip, // ip_address |
| 931 blank_url, // referrer_url | 1002 blank_url, // referrer_url |
| 932 blank_url, // referrer_main_frame_url | 1003 GURL(), // referrer_main_frame_url |
| 933 false, // is_retargeting | 1004 false, // is_retargeting |
| 1005 std::vector<GURL>(), // server redirects |
| 934 referrer_chain.Get(0)); | 1006 referrer_chain.Get(0)); |
| 935 VerifyReferrerChainEntry(blank_url, // url | 1007 VerifyReferrerChainEntry(blank_url, // url |
| 1008 GURL(), // main_frame_url |
| 936 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1009 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 937 "", // ip_address | 1010 "", // ip_address |
| 938 initial_url, // referrer_url | 1011 initial_url, // referrer_url |
| 939 initial_url, // referrer_main_frame_url | 1012 GURL(), // referrer_main_frame_url |
| 940 true, // is_retargeting | 1013 true, // is_retargeting |
| 1014 std::vector<GURL>(), // server redirects |
| 941 referrer_chain.Get(1)); | 1015 referrer_chain.Get(1)); |
| 942 VerifyReferrerChainEntry(initial_url, // url | 1016 VerifyReferrerChainEntry(initial_url, // url |
| 1017 GURL(), // main_frame_url |
| 943 ReferrerChainEntry::LANDING_PAGE, // type | 1018 ReferrerChainEntry::LANDING_PAGE, // type |
| 944 test_server_ip, // ip_address | 1019 test_server_ip, // ip_address |
| 945 GURL(), // referrer_url | 1020 GURL(), // referrer_url |
| 946 GURL(), // referrer_main_frame_url | 1021 GURL(), // referrer_main_frame_url |
| 947 false, // is_retargeting | 1022 false, // is_retargeting |
| 1023 std::vector<GURL>(), // server redirects |
| 948 referrer_chain.Get(2)); | 1024 referrer_chain.Get(2)); |
| 949 } | 1025 } |
| 950 | 1026 |
| 951 // Use javascript to open download in a new tab and download has a data url. | 1027 // Use javascript to open download in a new tab and download has a data url. |
| 952 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 1028 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 953 NewTabDownloadWithDataURL) { | 1029 NewTabDownloadWithDataURL) { |
| 954 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1030 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 955 ClickTestLink("new_tab_download_with_data_url", 2, initial_url); | 1031 ClickTestLink("new_tab_download_with_data_url", 2, initial_url); |
| 956 GURL download_url = GURL(kDownloadDataURL); | 1032 GURL download_url = GURL(kDownloadDataURL); |
| 957 GURL blank_url = GURL(url::kAboutBlankURL); | 1033 GURL blank_url = GURL(url::kAboutBlankURL); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1001 false, // has_server_redirect | 1077 false, // has_server_redirect |
| 1002 nav_map->at(download_url).at(0)); | 1078 nav_map->at(download_url).at(0)); |
| 1003 EXPECT_TRUE(nav_map->at(download_url).at(0).source_tab_id == | 1079 EXPECT_TRUE(nav_map->at(download_url).at(0).source_tab_id == |
| 1004 nav_map->at(download_url).at(0).target_tab_id); | 1080 nav_map->at(download_url).at(0).target_tab_id); |
| 1005 VerifyHostToIpMap(); | 1081 VerifyHostToIpMap(); |
| 1006 | 1082 |
| 1007 ReferrerChain referrer_chain; | 1083 ReferrerChain referrer_chain; |
| 1008 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 1084 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1009 ASSERT_EQ(3, referrer_chain.size()); | 1085 ASSERT_EQ(3, referrer_chain.size()); |
| 1010 VerifyReferrerChainEntry(download_url, // url | 1086 VerifyReferrerChainEntry(download_url, // url |
| 1087 GURL(), // main_frame_url |
| 1011 ReferrerChainEntry::DOWNLOAD_URL, // type | 1088 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1012 "", // ip_address | 1089 "", // ip_address |
| 1013 blank_url, // referrer_url | 1090 blank_url, // referrer_url |
| 1014 blank_url, // referrer_main_frame_url | 1091 GURL(), // referrer_main_frame_url |
| 1015 false, // is_retargeting | 1092 false, // is_retargeting |
| 1093 std::vector<GURL>(), // server redirects |
| 1016 referrer_chain.Get(0)); | 1094 referrer_chain.Get(0)); |
| 1017 VerifyReferrerChainEntry(blank_url, // url | 1095 VerifyReferrerChainEntry(blank_url, // url |
| 1096 GURL(), // main_frame_url |
| 1018 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1097 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1019 "", // ip_address | 1098 "", // ip_address |
| 1020 initial_url, // referrer_url | 1099 initial_url, // referrer_url |
| 1021 initial_url, // referrer_main_frame_url | 1100 GURL(), // referrer_main_frame_url |
| 1022 true, // is_retargeting | 1101 true, // is_retargeting |
| 1102 std::vector<GURL>(), // server redirects |
| 1023 referrer_chain.Get(1)); | 1103 referrer_chain.Get(1)); |
| 1024 VerifyReferrerChainEntry(initial_url, // url | 1104 VerifyReferrerChainEntry(initial_url, // url |
| 1105 GURL(), // main_frame_url |
| 1025 ReferrerChainEntry::LANDING_PAGE, // type | 1106 ReferrerChainEntry::LANDING_PAGE, // type |
| 1026 test_server_ip, // ip_address | 1107 test_server_ip, // ip_address |
| 1027 GURL(), // referrer_url | 1108 GURL(), // referrer_url |
| 1028 GURL(), // referrer_main_frame_url | 1109 GURL(), // referrer_main_frame_url |
| 1029 false, // is_retargeting | 1110 false, // is_retargeting |
| 1111 std::vector<GURL>(), // server redirects |
| 1030 referrer_chain.Get(2)); | 1112 referrer_chain.Get(2)); |
| 1031 } | 1113 } |
| 1032 | 1114 |
| 1033 // TODO(jialiul): Need to figure out why this test is failing on Windows and | 1115 // TODO(jialiul): Need to figure out why this test is failing on Windows and |
| 1034 // flaky on other platforms. | 1116 // flaky on other platforms. |
| 1035 #define MAYBE_DownloadViaHTML5FileApi DISABLED_DownloadViaHTML5FileApi | 1117 #define MAYBE_DownloadViaHTML5FileApi DISABLED_DownloadViaHTML5FileApi |
| 1036 // Download via html5 file API. | 1118 // Download via html5 file API. |
| 1037 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 1119 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1038 MAYBE_DownloadViaHTML5FileApi) { | 1120 MAYBE_DownloadViaHTML5FileApi) { |
| 1039 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1121 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1063 true, // is_user_initiated, | 1145 true, // is_user_initiated, |
| 1064 false, // has_committed | 1146 false, // has_committed |
| 1065 false, // has_server_redirect | 1147 false, // has_server_redirect |
| 1066 nav_map->at(download_url).at(0)); | 1148 nav_map->at(download_url).at(0)); |
| 1067 VerifyHostToIpMap(); | 1149 VerifyHostToIpMap(); |
| 1068 | 1150 |
| 1069 ReferrerChain referrer_chain; | 1151 ReferrerChain referrer_chain; |
| 1070 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 1152 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1071 ASSERT_EQ(2, referrer_chain.size()); | 1153 ASSERT_EQ(2, referrer_chain.size()); |
| 1072 VerifyReferrerChainEntry(download_url, // url | 1154 VerifyReferrerChainEntry(download_url, // url |
| 1155 GURL(), // main_frame_url |
| 1073 ReferrerChainEntry::DOWNLOAD_URL, // type | 1156 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1074 "", // ip_address | 1157 "", // ip_address |
| 1075 initial_url, // referrer_url | 1158 initial_url, // referrer_url |
| 1076 initial_url, // referrer_main_frame_url | 1159 GURL(), // referrer_main_frame_url |
| 1077 false, // is_retargeting | 1160 false, // is_retargeting |
| 1161 std::vector<GURL>(), // server redirects |
| 1078 referrer_chain.Get(0)); | 1162 referrer_chain.Get(0)); |
| 1079 VerifyReferrerChainEntry(initial_url, // url | 1163 VerifyReferrerChainEntry(initial_url, // url |
| 1164 GURL(), // main_frame_url |
| 1080 ReferrerChainEntry::LANDING_PAGE, // type | 1165 ReferrerChainEntry::LANDING_PAGE, // type |
| 1081 test_server_ip, // ip_address | 1166 test_server_ip, // ip_address |
| 1082 GURL(), // referrer_url | 1167 GURL(), // referrer_url |
| 1083 GURL(), // referrer_main_frame_url | 1168 GURL(), // referrer_main_frame_url |
| 1084 false, // is_retargeting | 1169 false, // is_retargeting |
| 1170 std::vector<GURL>(), // server redirects |
| 1085 referrer_chain.Get(1)); | 1171 referrer_chain.Get(1)); |
| 1086 } | 1172 } |
| 1087 | 1173 |
| 1088 // Click a link in a subframe and start download. | 1174 // Click a link in a subframe and start download. |
| 1089 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 1175 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1090 SubFrameDirectDownload) { | 1176 SubFrameDirectDownload) { |
| 1091 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1177 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1092 ClickTestLink("sub_frame_download_attribution", 1, initial_url); | 1178 ClickTestLink("sub_frame_download_attribution", 1, initial_url); |
| 1093 std::string test_name = | 1179 std::string test_name = |
| 1094 base::StringPrintf("%s', '%s", "iframe1", "iframe_direct_download"); | 1180 base::StringPrintf("%s', '%s", "iframe1", "iframe_direct_download"); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1147 true, // is_user_initiated, | 1233 true, // is_user_initiated, |
| 1148 false, // has_committed | 1234 false, // has_committed |
| 1149 false, // has_server_redirect | 1235 false, // has_server_redirect |
| 1150 nav_map->at(download_url).at(0)); | 1236 nav_map->at(download_url).at(0)); |
| 1151 VerifyHostToIpMap(); | 1237 VerifyHostToIpMap(); |
| 1152 | 1238 |
| 1153 ReferrerChain referrer_chain; | 1239 ReferrerChain referrer_chain; |
| 1154 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 1240 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1155 ASSERT_EQ(4, referrer_chain.size()); | 1241 ASSERT_EQ(4, referrer_chain.size()); |
| 1156 VerifyReferrerChainEntry(download_url, // url | 1242 VerifyReferrerChainEntry(download_url, // url |
| 1243 GURL(), // main_frame_url |
| 1157 ReferrerChainEntry::DOWNLOAD_URL, // type | 1244 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1158 test_server_ip, // ip_address | 1245 test_server_ip, // ip_address |
| 1159 iframe_url, // referrer_url | 1246 iframe_url, // referrer_url |
| 1160 multi_frame_test_url, // referrer_main_frame_url | 1247 multi_frame_test_url, // referrer_main_frame_url |
| 1161 false, // is_retargeting | 1248 false, // is_retargeting |
| 1249 std::vector<GURL>(), // server redirects |
| 1162 referrer_chain.Get(0)); | 1250 referrer_chain.Get(0)); |
| 1163 VerifyReferrerChainEntry(iframe_url, // url | 1251 VerifyReferrerChainEntry(iframe_url, // url |
| 1252 multi_frame_test_url, // main_frame_url |
| 1164 ReferrerChainEntry::LANDING_PAGE, // type | 1253 ReferrerChainEntry::LANDING_PAGE, // type |
| 1165 test_server_ip, // ip_address | 1254 test_server_ip, // ip_address |
| 1166 GURL(), // referrer_url | 1255 GURL(), // referrer_url |
| 1167 multi_frame_test_url, // referrer_main_frame_url | 1256 multi_frame_test_url, // referrer_main_frame_url |
| 1168 false, // is_retargeting | 1257 false, // is_retargeting |
| 1258 std::vector<GURL>(), // server redirects |
| 1169 referrer_chain.Get(1)); | 1259 referrer_chain.Get(1)); |
| 1170 VerifyReferrerChainEntry(multi_frame_test_url, // url | 1260 VerifyReferrerChainEntry(multi_frame_test_url, // url |
| 1261 GURL(), // main_frame_url |
| 1171 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1262 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1172 test_server_ip, // ip_address | 1263 test_server_ip, // ip_address |
| 1173 initial_url, // referrer_url | 1264 initial_url, // referrer_url |
| 1174 initial_url, // referrer_main_frame_url | 1265 GURL(), // referrer_main_frame_url |
| 1175 false, // is_retargeting | 1266 false, // is_retargeting |
| 1267 std::vector<GURL>(), // server redirects |
| 1176 referrer_chain.Get(2)); | 1268 referrer_chain.Get(2)); |
| 1177 VerifyReferrerChainEntry(initial_url, // url | 1269 VerifyReferrerChainEntry(initial_url, // url |
| 1270 GURL(), // main_frame_url |
| 1178 ReferrerChainEntry::LANDING_REFERRER, // type | 1271 ReferrerChainEntry::LANDING_REFERRER, // type |
| 1179 test_server_ip, // ip_address | 1272 test_server_ip, // ip_address |
| 1180 GURL(), // referrer_url | 1273 GURL(), // referrer_url |
| 1181 GURL(), // referrer_main_frame_url | 1274 GURL(), // referrer_main_frame_url |
| 1182 false, // is_retargeting | 1275 false, // is_retargeting |
| 1276 std::vector<GURL>(), // server redirects |
| 1183 referrer_chain.Get(3)); | 1277 referrer_chain.Get(3)); |
| 1184 } | 1278 } |
| 1185 | 1279 |
| 1186 // Click a link in a subframe and open download in a new tab. | 1280 // Click a link in a subframe and open download in a new tab. |
| 1187 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 1281 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1188 SubFrameNewTabDownload) { | 1282 SubFrameNewTabDownload) { |
| 1189 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1283 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1190 ClickTestLink("sub_frame_download_attribution", 1, initial_url); | 1284 ClickTestLink("sub_frame_download_attribution", 1, initial_url); |
| 1191 std::string test_name = | 1285 std::string test_name = |
| 1192 base::StringPrintf("%s', '%s", "iframe2", "iframe_new_tab_download"); | 1286 base::StringPrintf("%s', '%s", "iframe2", "iframe_new_tab_download"); |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1263 false, // is_user_initiated, | 1357 false, // is_user_initiated, |
| 1264 false, // has_committed | 1358 false, // has_committed |
| 1265 false, // has_server_redirect | 1359 false, // has_server_redirect |
| 1266 nav_map->at(download_url).at(0)); | 1360 nav_map->at(download_url).at(0)); |
| 1267 VerifyHostToIpMap(); | 1361 VerifyHostToIpMap(); |
| 1268 | 1362 |
| 1269 ReferrerChain referrer_chain; | 1363 ReferrerChain referrer_chain; |
| 1270 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 1364 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1271 EXPECT_EQ(5, referrer_chain.size()); | 1365 EXPECT_EQ(5, referrer_chain.size()); |
| 1272 VerifyReferrerChainEntry(download_url, // url | 1366 VerifyReferrerChainEntry(download_url, // url |
| 1367 GURL(), // main_frame_url |
| 1273 ReferrerChainEntry::DOWNLOAD_URL, // type | 1368 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1274 test_server_ip, // ip_address | 1369 test_server_ip, // ip_address |
| 1275 blank_url, // referrer_url | 1370 blank_url, // referrer_url |
| 1276 blank_url, // referrer_main_frame_url | 1371 GURL(), // referrer_main_frame_url |
| 1277 false, // is_retargeting | 1372 false, // is_retargeting |
| 1373 std::vector<GURL>(), // server redirects |
| 1278 referrer_chain.Get(0)); | 1374 referrer_chain.Get(0)); |
| 1279 VerifyReferrerChainEntry(blank_url, // url | 1375 VerifyReferrerChainEntry(blank_url, // url |
| 1376 GURL(), // main_frame_url |
| 1280 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1377 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1281 "", // ip_address | 1378 "", // ip_address |
| 1282 iframe_retargeting_url, // referrer_url | 1379 iframe_retargeting_url, // referrer_url |
| 1283 multi_frame_test_url, // referrer_main_frame_url | 1380 multi_frame_test_url, // referrer_main_frame_url |
| 1284 true, // is_retargeting | 1381 true, // is_retargeting |
| 1382 std::vector<GURL>(), // server redirects |
| 1285 referrer_chain.Get(1)); | 1383 referrer_chain.Get(1)); |
| 1286 VerifyReferrerChainEntry(iframe_retargeting_url, // url | 1384 VerifyReferrerChainEntry(iframe_retargeting_url, // url |
| 1385 multi_frame_test_url, // main_frame_url |
| 1287 ReferrerChainEntry::LANDING_PAGE, // type | 1386 ReferrerChainEntry::LANDING_PAGE, // type |
| 1288 test_server_ip, // ip_address | 1387 test_server_ip, // ip_address |
| 1289 GURL(), // referrer_url | 1388 GURL(), // referrer_url |
| 1290 multi_frame_test_url, // referrer_main_frame_url | 1389 multi_frame_test_url, // referrer_main_frame_url |
| 1291 false, // is_retargeting | 1390 false, // is_retargeting |
| 1391 std::vector<GURL>(), // server redirects |
| 1292 referrer_chain.Get(2)); | 1392 referrer_chain.Get(2)); |
| 1293 VerifyReferrerChainEntry(multi_frame_test_url, // url | 1393 VerifyReferrerChainEntry(multi_frame_test_url, // url |
| 1394 GURL(), // main_frame_url |
| 1294 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1395 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1295 test_server_ip, // ip_address | 1396 test_server_ip, // ip_address |
| 1296 initial_url, // referrer_url | 1397 initial_url, // referrer_url |
| 1297 initial_url, // referrer_main_frame_url | 1398 GURL(), // referrer_main_frame_url |
| 1298 false, // is_retargeting | 1399 false, // is_retargeting |
| 1400 std::vector<GURL>(), // server redirects |
| 1299 referrer_chain.Get(3)); | 1401 referrer_chain.Get(3)); |
| 1300 VerifyReferrerChainEntry(initial_url, // url | 1402 VerifyReferrerChainEntry(initial_url, // url |
| 1403 GURL(), // main_frame_url |
| 1301 ReferrerChainEntry::LANDING_REFERRER, // type | 1404 ReferrerChainEntry::LANDING_REFERRER, // type |
| 1302 test_server_ip, // ip_address | 1405 test_server_ip, // ip_address |
| 1303 GURL(), // referrer_url | 1406 GURL(), // referrer_url |
| 1304 GURL(), // referrer_main_frame_url | 1407 GURL(), // referrer_main_frame_url |
| 1305 false, // is_retargeting | 1408 false, // is_retargeting |
| 1409 std::vector<GURL>(), // server redirects |
| 1306 referrer_chain.Get(4)); | 1410 referrer_chain.Get(4)); |
| 1307 } | 1411 } |
| 1308 | 1412 |
| 1309 // Click a link which redirects to the landing page, and then click on the | 1413 // Click a link which redirects to the landing page, and then click on the |
| 1310 // landing page to trigger download. | 1414 // landing page to trigger download. |
| 1311 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, CompleteReferrerChain) { | 1415 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, CompleteReferrerChain) { |
| 1312 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1416 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1313 ClickTestLink("complete_referrer_chain", 2, initial_url); | 1417 ClickTestLink("complete_referrer_chain", 2, initial_url); |
| 1314 GURL redirect_url = embedded_test_server()->GetURL(kRedirectToLandingURL); | 1418 GURL redirect_url = embedded_test_server()->GetURL(kRedirectToLandingURL); |
| 1315 GURL landing_url = embedded_test_server()->GetURL(kLandingURL); | 1419 GURL landing_url = embedded_test_server()->GetURL(kLandingURL); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1354 true, // is_user_initiated, | 1458 true, // is_user_initiated, |
| 1355 false, // has_committed | 1459 false, // has_committed |
| 1356 false, // has_server_redirect | 1460 false, // has_server_redirect |
| 1357 nav_map->at(download_url).at(0)); | 1461 nav_map->at(download_url).at(0)); |
| 1358 VerifyHostToIpMap(); | 1462 VerifyHostToIpMap(); |
| 1359 | 1463 |
| 1360 ReferrerChain referrer_chain; | 1464 ReferrerChain referrer_chain; |
| 1361 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 1465 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1362 EXPECT_EQ(4, referrer_chain.size()); | 1466 EXPECT_EQ(4, referrer_chain.size()); |
| 1363 VerifyReferrerChainEntry(download_url, // url | 1467 VerifyReferrerChainEntry(download_url, // url |
| 1468 GURL(), // main_frame_url |
| 1364 ReferrerChainEntry::DOWNLOAD_URL, // type | 1469 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1365 test_server_ip, // ip_address | 1470 test_server_ip, // ip_address |
| 1366 landing_url, // referrer_url | 1471 landing_url, // referrer_url |
| 1367 landing_url, // referrer_main_frame_url | 1472 GURL(), // referrer_main_frame_url |
| 1368 false, // is_retargeting | 1473 false, // is_retargeting |
| 1474 std::vector<GURL>(), // server redirects |
| 1369 referrer_chain.Get(0)); | 1475 referrer_chain.Get(0)); |
| 1370 VerifyReferrerChainEntry(landing_url, // url | 1476 VerifyReferrerChainEntry(landing_url, // url |
| 1477 GURL(), // main_frame_url |
| 1371 ReferrerChainEntry::LANDING_PAGE, // type | 1478 ReferrerChainEntry::LANDING_PAGE, // type |
| 1372 test_server_ip, // ip_address | 1479 test_server_ip, // ip_address |
| 1373 redirect_url, // referrer_url | 1480 redirect_url, // referrer_url |
| 1374 redirect_url, // referrer_main_frame_url | 1481 GURL(), // referrer_main_frame_url |
| 1375 false, // is_retargeting | 1482 false, // is_retargeting |
| 1483 std::vector<GURL>(), // server redirects |
| 1376 referrer_chain.Get(1)); | 1484 referrer_chain.Get(1)); |
| 1377 VerifyReferrerChainEntry(redirect_url, // url | 1485 VerifyReferrerChainEntry(redirect_url, // url |
| 1486 GURL(), // main_frame_url |
| 1378 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1487 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1379 test_server_ip, // ip_address | 1488 test_server_ip, // ip_address |
| 1380 initial_url, // referrer_url | 1489 initial_url, // referrer_url |
| 1381 initial_url, // referrer_main_frame_url | 1490 GURL(), // referrer_main_frame_url |
| 1382 false, // is_retargeting | 1491 false, // is_retargeting |
| 1492 std::vector<GURL>(), // server redirects |
| 1383 referrer_chain.Get(2)); | 1493 referrer_chain.Get(2)); |
| 1384 VerifyReferrerChainEntry( | 1494 VerifyReferrerChainEntry( |
| 1385 initial_url, // url | 1495 initial_url, // url |
| 1496 GURL(), // main_frame_url |
| 1386 ReferrerChainEntry::LANDING_REFERRER, // type | 1497 ReferrerChainEntry::LANDING_REFERRER, // type |
| 1387 test_server_ip, // ip_address | 1498 test_server_ip, // ip_address |
| 1388 GURL(), // referrer_url is empty since this beyonds 2 clicks. | 1499 GURL(), // referrer_url is empty since this beyonds 2 clicks. |
| 1389 GURL(), // referrer_main_frame_url is empty for the same reason. | 1500 GURL(), // referrer_main_frame_url is empty for the same reason. |
| 1390 false, // is_retargeting | 1501 false, // is_retargeting |
| 1502 std::vector<GURL>(), // server redirects |
| 1391 referrer_chain.Get(3)); | 1503 referrer_chain.Get(3)); |
| 1392 } | 1504 } |
| 1393 | 1505 |
| 1394 // Click three links before reaching download. | 1506 // Click three links before reaching download. |
| 1395 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 1507 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1396 ReferrerAttributionWithinTwoUserGestures) { | 1508 ReferrerAttributionWithinTwoUserGestures) { |
| 1397 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1509 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1398 ClickTestLink("attribution_within_two_user_gestures", 1, initial_url); | 1510 ClickTestLink("attribution_within_two_user_gestures", 1, initial_url); |
| 1399 GURL page_before_landing_referrer_url = | 1511 GURL page_before_landing_referrer_url = |
| 1400 embedded_test_server()->GetURL(kPageBeforeLandingReferrerURL); | 1512 embedded_test_server()->GetURL(kPageBeforeLandingReferrerURL); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1454 true, // is_user_initiated, | 1566 true, // is_user_initiated, |
| 1455 false, // has_committed | 1567 false, // has_committed |
| 1456 false, // has_server_redirect | 1568 false, // has_server_redirect |
| 1457 nav_map->at(download_url).at(0)); | 1569 nav_map->at(download_url).at(0)); |
| 1458 VerifyHostToIpMap(); | 1570 VerifyHostToIpMap(); |
| 1459 | 1571 |
| 1460 ReferrerChain referrer_chain; | 1572 ReferrerChain referrer_chain; |
| 1461 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 1573 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1462 EXPECT_EQ(3, referrer_chain.size()); | 1574 EXPECT_EQ(3, referrer_chain.size()); |
| 1463 VerifyReferrerChainEntry(download_url, // url | 1575 VerifyReferrerChainEntry(download_url, // url |
| 1576 GURL(), // main_frame_url |
| 1464 ReferrerChainEntry::DOWNLOAD_URL, // type | 1577 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1465 test_server_ip, // ip_address | 1578 test_server_ip, // ip_address |
| 1466 landing_url, // referrer_url | 1579 landing_url, // referrer_url |
| 1467 landing_url, // referrer_main_frame_url | 1580 GURL(), // referrer_main_frame_url |
| 1468 false, // is_retargeting | 1581 false, // is_retargeting |
| 1582 std::vector<GURL>(), // server redirects |
| 1469 referrer_chain.Get(0)); | 1583 referrer_chain.Get(0)); |
| 1470 VerifyReferrerChainEntry(landing_url, // url | 1584 VerifyReferrerChainEntry(landing_url, // url |
| 1585 GURL(), // main_frame_url |
| 1471 ReferrerChainEntry::LANDING_PAGE, // type | 1586 ReferrerChainEntry::LANDING_PAGE, // type |
| 1472 test_server_ip, // ip_address | 1587 test_server_ip, // ip_address |
| 1473 landing_referrer_url, // referrer_url | 1588 landing_referrer_url, // referrer_url |
| 1474 landing_referrer_url, // referrer_main_frame_url | 1589 GURL(), // referrer_main_frame_url |
| 1475 false, // is_retargeting | 1590 false, // is_retargeting |
| 1591 std::vector<GURL>(), // server redirects |
| 1476 referrer_chain.Get(1)); | 1592 referrer_chain.Get(1)); |
| 1477 VerifyReferrerChainEntry( | 1593 VerifyReferrerChainEntry( |
| 1478 landing_referrer_url, // url | 1594 landing_referrer_url, // url |
| 1595 GURL(), // main_frame_url |
| 1479 ReferrerChainEntry::LANDING_REFERRER, // type | 1596 ReferrerChainEntry::LANDING_REFERRER, // type |
| 1480 test_server_ip, // ip_address | 1597 test_server_ip, // ip_address |
| 1481 GURL(), // referrer_url is empty since this beyonds 2 clicks. | 1598 GURL(), // referrer_url is empty since this beyonds 2 clicks. |
| 1482 GURL(), // referrer_main_frame_url is empty for the same reason. | 1599 GURL(), // referrer_main_frame_url is empty for the same reason. |
| 1483 false, // is_retargeting | 1600 false, // is_retargeting |
| 1601 std::vector<GURL>(), // server redirects |
| 1484 referrer_chain.Get(2)); | 1602 referrer_chain.Get(2)); |
| 1485 // page_before_landing_referrer_url is not in referrer chain. | 1603 // page_before_landing_referrer_url is not in referrer chain. |
| 1486 } | 1604 } |
| 1487 | 1605 |
| 1488 // Click a link which redirects to a PPAPI landing page. | 1606 // Click a link which redirects to a PPAPI landing page. |
| 1489 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 1607 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1490 PPAPIDownloadWithUserGestureOnHostingFrame) { | 1608 PPAPIDownloadWithUserGestureOnHostingFrame) { |
| 1491 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1609 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1492 ClickTestLink("complete_referrer_chain", 2, initial_url); | 1610 ClickTestLink("complete_referrer_chain", 2, initial_url); |
| 1493 GURL redirect_url = embedded_test_server()->GetURL(kRedirectToLandingURL); | 1611 GURL redirect_url = embedded_test_server()->GetURL(kRedirectToLandingURL); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1528 nav_map->at(landing_url).at(0)); | 1646 nav_map->at(landing_url).at(0)); |
| 1529 VerifyHostToIpMap(); | 1647 VerifyHostToIpMap(); |
| 1530 | 1648 |
| 1531 ReferrerChain referrer_chain; | 1649 ReferrerChain referrer_chain; |
| 1532 IdentifyReferrerChainForPPAPIDownload( | 1650 IdentifyReferrerChainForPPAPIDownload( |
| 1533 landing_url, | 1651 landing_url, |
| 1534 browser()->tab_strip_model()->GetActiveWebContents(), | 1652 browser()->tab_strip_model()->GetActiveWebContents(), |
| 1535 &referrer_chain); | 1653 &referrer_chain); |
| 1536 EXPECT_EQ(3, referrer_chain.size()); | 1654 EXPECT_EQ(3, referrer_chain.size()); |
| 1537 VerifyReferrerChainEntry(landing_url, // url | 1655 VerifyReferrerChainEntry(landing_url, // url |
| 1656 GURL(), // main_frame_url |
| 1538 ReferrerChainEntry::LANDING_PAGE, // type | 1657 ReferrerChainEntry::LANDING_PAGE, // type |
| 1539 test_server_ip, // ip_address | 1658 test_server_ip, // ip_address |
| 1540 redirect_url, // referrer_url | 1659 redirect_url, // referrer_url |
| 1541 redirect_url, // referrer_main_frame_url | 1660 GURL(), // referrer_main_frame_url |
| 1542 false, // is_retargeting | 1661 false, // is_retargeting |
| 1662 std::vector<GURL>(), // server redirects |
| 1543 referrer_chain.Get(0)); | 1663 referrer_chain.Get(0)); |
| 1544 VerifyReferrerChainEntry(redirect_url, // url | 1664 VerifyReferrerChainEntry(redirect_url, // url |
| 1665 GURL(), // main_frame_url |
| 1545 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1666 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1546 test_server_ip, // ip_address | 1667 test_server_ip, // ip_address |
| 1547 initial_url, // referrer_url | 1668 initial_url, // referrer_url |
| 1548 initial_url, // referrer_main_frame_url | 1669 GURL(), // referrer_main_frame_url |
| 1549 false, // is_retargeting | 1670 false, // is_retargeting |
| 1671 std::vector<GURL>(), // server redirects |
| 1550 referrer_chain.Get(1)); | 1672 referrer_chain.Get(1)); |
| 1551 VerifyReferrerChainEntry( | 1673 VerifyReferrerChainEntry( |
| 1552 initial_url, // url | 1674 initial_url, // url |
| 1675 GURL(), // main_frame_url |
| 1553 ReferrerChainEntry::LANDING_REFERRER, // type | 1676 ReferrerChainEntry::LANDING_REFERRER, // type |
| 1554 test_server_ip, // ip_address | 1677 test_server_ip, // ip_address |
| 1555 GURL(), // referrer_url is empty since this beyonds 2 clicks. | 1678 GURL(), // referrer_url is empty since this beyonds 2 clicks. |
| 1556 GURL(), // referrer_main_frame_url is empty for the same reason. | 1679 GURL(), // referrer_main_frame_url is empty for the same reason. |
| 1557 false, // is_retargeting | 1680 false, // is_retargeting |
| 1681 std::vector<GURL>(), // server redirects |
| 1558 referrer_chain.Get(2)); | 1682 referrer_chain.Get(2)); |
| 1559 } | 1683 } |
| 1560 | 1684 |
| 1561 // Click a link which redirects to a page that triggers PPAPI download without | 1685 // Click a link which redirects to a page that triggers PPAPI download without |
| 1562 // user gesture (a.k.a not a landing page). | 1686 // user gesture (a.k.a not a landing page). |
| 1563 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 1687 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1564 PPAPIDownloadWithoutUserGestureOnHostingFrame) { | 1688 PPAPIDownloadWithoutUserGestureOnHostingFrame) { |
| 1565 GURL landing_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1689 GURL landing_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1566 ClickTestLink("complete_referrer_chain", 2, landing_url); | 1690 ClickTestLink("complete_referrer_chain", 2, landing_url); |
| 1567 GURL redirect_url = embedded_test_server()->GetURL(kRedirectToLandingURL); | 1691 GURL redirect_url = embedded_test_server()->GetURL(kRedirectToLandingURL); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1599 false, // has_server_redirect | 1723 false, // has_server_redirect |
| 1600 nav_map->at(hosting_url).at(0)); | 1724 nav_map->at(hosting_url).at(0)); |
| 1601 VerifyHostToIpMap(); | 1725 VerifyHostToIpMap(); |
| 1602 | 1726 |
| 1603 ReferrerChain referrer_chain; | 1727 ReferrerChain referrer_chain; |
| 1604 IdentifyReferrerChainForPPAPIDownload( | 1728 IdentifyReferrerChainForPPAPIDownload( |
| 1605 hosting_url, | 1729 hosting_url, |
| 1606 browser()->tab_strip_model()->GetActiveWebContents(), | 1730 browser()->tab_strip_model()->GetActiveWebContents(), |
| 1607 &referrer_chain); | 1731 &referrer_chain); |
| 1608 EXPECT_EQ(3, referrer_chain.size()); | 1732 EXPECT_EQ(3, referrer_chain.size()); |
| 1609 VerifyReferrerChainEntry(hosting_url, // url | 1733 VerifyReferrerChainEntry(hosting_url, // url |
| 1734 GURL(), // main_frame_url |
| 1610 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1735 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1611 test_server_ip, // ip_address | 1736 test_server_ip, // ip_address |
| 1612 redirect_url, // referrer_url | 1737 redirect_url, // referrer_url |
| 1613 redirect_url, // referrer_main_frame_url | 1738 GURL(), // referrer_main_frame_url |
| 1614 false, // is_retargeting | 1739 false, // is_retargeting |
| 1740 std::vector<GURL>(), // server redirects |
| 1615 referrer_chain.Get(0)); | 1741 referrer_chain.Get(0)); |
| 1616 VerifyReferrerChainEntry(redirect_url, // url | 1742 VerifyReferrerChainEntry(redirect_url, // url |
| 1743 GURL(), // main_frame_url |
| 1617 ReferrerChainEntry::CLIENT_REDIRECT, // type | 1744 ReferrerChainEntry::CLIENT_REDIRECT, // type |
| 1618 test_server_ip, // ip_address | 1745 test_server_ip, // ip_address |
| 1619 landing_url, // referrer_url | 1746 landing_url, // referrer_url |
| 1620 landing_url, // referrer_main_frame_url | 1747 GURL(), // referrer_main_frame_url |
| 1621 false, // is_retargeting | 1748 false, // is_retargeting |
| 1749 std::vector<GURL>(), // server redirects |
| 1622 referrer_chain.Get(1)); | 1750 referrer_chain.Get(1)); |
| 1623 VerifyReferrerChainEntry(landing_url, // url | 1751 VerifyReferrerChainEntry(landing_url, // url |
| 1752 GURL(), // main_frame_url |
| 1624 ReferrerChainEntry::LANDING_PAGE, // type | 1753 ReferrerChainEntry::LANDING_PAGE, // type |
| 1625 test_server_ip, // ip_address | 1754 test_server_ip, // ip_address |
| 1626 GURL(), // no more referrer before landing_url | 1755 GURL(), // no more referrer before landing_url |
| 1627 GURL(), | 1756 GURL(), |
| 1628 false, // is_retargeting | 1757 false, // is_retargeting |
| 1758 std::vector<GURL>(), // server redirects |
| 1629 referrer_chain.Get(2)); | 1759 referrer_chain.Get(2)); |
| 1630 } | 1760 } |
| 1631 | 1761 |
| 1632 // Server-side redirect. | 1762 // Server-side redirect. |
| 1633 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, ServerRedirect) { | 1763 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, ServerRedirect) { |
| 1634 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1764 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1635 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 1765 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 1636 GURL request_url = | 1766 GURL request_url = |
| 1637 embedded_test_server()->GetURL("/server-redirect?" + download_url.spec()); | 1767 embedded_test_server()->GetURL("/server-redirect?" + download_url.spec()); |
| 1638 ui_test_utils::NavigateToURL(browser(), request_url); | 1768 ui_test_utils::NavigateToURL(browser(), request_url); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1656 download_url, // destination_url | 1786 download_url, // destination_url |
| 1657 true, // is_user_initiated, | 1787 true, // is_user_initiated, |
| 1658 false, // has_committed | 1788 false, // has_committed |
| 1659 true, // has_server_redirect | 1789 true, // has_server_redirect |
| 1660 nav_map->at(download_url).at(0)); | 1790 nav_map->at(download_url).at(0)); |
| 1661 | 1791 |
| 1662 ReferrerChain referrer_chain; | 1792 ReferrerChain referrer_chain; |
| 1663 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 1793 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1664 ASSERT_EQ(1, referrer_chain.size()); | 1794 ASSERT_EQ(1, referrer_chain.size()); |
| 1665 VerifyReferrerChainEntry(download_url, // url | 1795 VerifyReferrerChainEntry(download_url, // url |
| 1796 GURL(), // main_frame_url |
| 1666 ReferrerChainEntry::DOWNLOAD_URL, // type | 1797 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1667 test_server_ip, // ip_address | 1798 test_server_ip, // ip_address |
| 1668 GURL(), // referrer_url | 1799 GURL(), // referrer_url |
| 1669 GURL(), // referrer_main_frame_url | 1800 GURL(), // referrer_main_frame_url |
| 1670 false, // is_retargeting | 1801 false, // is_retargeting |
| 1802 {request_url, download_url}, // server redirects |
| 1671 referrer_chain.Get(0)); | 1803 referrer_chain.Get(0)); |
| 1672 } | 1804 } |
| 1673 | 1805 |
| 1806 // 2 consecutive server-side redirects. |
| 1807 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, TwoServerRedirects) { |
| 1808 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1809 GURL destination_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 1810 GURL redirect_url = embedded_test_server()->GetURL("/server-redirect?" + |
| 1811 destination_url.spec()); |
| 1812 GURL request_url = |
| 1813 embedded_test_server()->GetURL("/server-redirect?" + redirect_url.spec()); |
| 1814 ui_test_utils::NavigateToURL(browser(), request_url); |
| 1815 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 1816 auto nav_map = navigation_map(); |
| 1817 ASSERT_TRUE(nav_map); |
| 1818 ASSERT_EQ(2U, nav_map->size()); |
| 1819 ASSERT_EQ(1U, nav_map->at(destination_url).size()); |
| 1820 ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
| 1821 VerifyNavigationEvent(GURL(), // source_url |
| 1822 GURL(), // source_main_frame_url |
| 1823 initial_url, // original_request_url |
| 1824 initial_url, // destination_url |
| 1825 true, // is_user_initiated, |
| 1826 true, // has_committed |
| 1827 false, // has_server_redirect |
| 1828 nav_map->at(initial_url).at(0)); |
| 1829 VerifyNavigationEvent(GURL(), // source_url |
| 1830 GURL(), // source_main_frame_url |
| 1831 request_url, // original_request_url |
| 1832 destination_url, // destination_url |
| 1833 true, // is_user_initiated, |
| 1834 false, // has_committed |
| 1835 true, // has_server_redirect |
| 1836 nav_map->at(destination_url).at(0)); |
| 1837 const auto redirect_vector = |
| 1838 nav_map->at(destination_url).at(0).server_redirect_urls; |
| 1839 ASSERT_EQ(2U, redirect_vector.size()); |
| 1840 EXPECT_EQ(redirect_url, redirect_vector.at(0)); |
| 1841 EXPECT_EQ(destination_url, redirect_vector.at(1)); |
| 1842 |
| 1843 ReferrerChain referrer_chain; |
| 1844 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1845 ASSERT_EQ(1, referrer_chain.size()); |
| 1846 VerifyReferrerChainEntry(destination_url, // url |
| 1847 GURL(), // main_frame_url |
| 1848 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1849 test_server_ip, // ip_address |
| 1850 GURL(), // referrer_url |
| 1851 GURL(), // referrer_main_frame_url |
| 1852 false, // is_retargeting |
| 1853 {request_url, redirect_url, destination_url}, |
| 1854 referrer_chain.Get(0)); |
| 1855 } |
| 1856 |
| 1674 // Retargeting immediately followed by server-side redirect. | 1857 // Retargeting immediately followed by server-side redirect. |
| 1675 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, | 1858 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
| 1676 RetargetingAndServerRedirect) { | 1859 RetargetingAndServerRedirect) { |
| 1677 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1860 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1678 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); | 1861 GURL download_url = embedded_test_server()->GetURL(kDownloadItemURL); |
| 1679 GURL request_url = | 1862 GURL request_url = |
| 1680 embedded_test_server()->GetURL("/server-redirect?" + download_url.spec()); | 1863 embedded_test_server()->GetURL("/server-redirect?" + download_url.spec()); |
| 1681 ClickTestLink("new_tab_download_with_server_redirect", 1, initial_url); | 1864 ClickTestLink("new_tab_download_with_server_redirect", 1, initial_url); |
| 1682 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); | 1865 std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
| 1683 auto nav_map = navigation_map(); | 1866 auto nav_map = navigation_map(); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1708 download_url, // destination_url | 1891 download_url, // destination_url |
| 1709 false, // is_user_initiated, | 1892 false, // is_user_initiated, |
| 1710 false, // has_committed | 1893 false, // has_committed |
| 1711 true, // has_server_redirect | 1894 true, // has_server_redirect |
| 1712 nav_map->at(download_url).at(0)); | 1895 nav_map->at(download_url).at(0)); |
| 1713 | 1896 |
| 1714 ReferrerChain referrer_chain; | 1897 ReferrerChain referrer_chain; |
| 1715 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); | 1898 IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
| 1716 ASSERT_EQ(2, referrer_chain.size()); | 1899 ASSERT_EQ(2, referrer_chain.size()); |
| 1717 VerifyReferrerChainEntry(download_url, // url | 1900 VerifyReferrerChainEntry(download_url, // url |
| 1901 GURL(), // main_frame_url |
| 1718 ReferrerChainEntry::DOWNLOAD_URL, // type | 1902 ReferrerChainEntry::DOWNLOAD_URL, // type |
| 1719 test_server_ip, // ip_address | 1903 test_server_ip, // ip_address |
| 1720 initial_url, // referrer_url | 1904 initial_url, // referrer_url |
| 1721 initial_url, // referrer_main_frame_url | 1905 GURL(), // referrer_main_frame_url |
| 1722 true, // is_retargeting | 1906 true, // is_retargeting |
| 1907 {request_url, download_url}, // server redirects |
| 1723 referrer_chain.Get(0)); | 1908 referrer_chain.Get(0)); |
| 1724 VerifyReferrerChainEntry(initial_url, // url | 1909 VerifyReferrerChainEntry(initial_url, // url |
| 1910 GURL(), // main_frame_url |
| 1725 ReferrerChainEntry::LANDING_PAGE, // type | 1911 ReferrerChainEntry::LANDING_PAGE, // type |
| 1726 test_server_ip, // ip_address | 1912 test_server_ip, // ip_address |
| 1727 GURL(), // referrer_url | 1913 GURL(), // referrer_url |
| 1728 GURL(), // referrer_main_frame_url | 1914 GURL(), // referrer_main_frame_url |
| 1729 false, // is_retargeting | 1915 false, // is_retargeting |
| 1916 std::vector<GURL>(), // server redirects |
| 1730 referrer_chain.Get(1)); | 1917 referrer_chain.Get(1)); |
| 1731 } | 1918 } |
| 1732 | 1919 |
| 1733 // host_to_ip_map_ size should increase by one after a new navigation. | 1920 // host_to_ip_map_ size should increase by one after a new navigation. |
| 1734 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, AddIPMapping) { | 1921 IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, AddIPMapping) { |
| 1735 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); | 1922 GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL); |
| 1736 auto ip_map = host_to_ip_map(); | 1923 auto ip_map = host_to_ip_map(); |
| 1737 std::string test_server_host(embedded_test_server()->base_url().host()); | 1924 std::string test_server_host(embedded_test_server()->base_url().host()); |
| 1738 ip_map->clear(); | 1925 ip_map->clear(); |
| 1739 ip_map->insert( | 1926 ip_map->insert( |
| (...skipping 19 matching lines...) Expand all Loading... |
| 1759 yesterday, embedded_test_server()->host_port_pair().host())); | 1946 yesterday, embedded_test_server()->host_port_pair().host())); |
| 1760 ASSERT_EQ(1U, ip_map->at(test_server_host).size()); | 1947 ASSERT_EQ(1U, ip_map->at(test_server_host).size()); |
| 1761 ClickTestLink("direct_download", 1, initial_url); | 1948 ClickTestLink("direct_download", 1, initial_url); |
| 1762 EXPECT_EQ(1U, ip_map->at(test_server_host).size()); | 1949 EXPECT_EQ(1U, ip_map->at(test_server_host).size()); |
| 1763 EXPECT_EQ(embedded_test_server()->host_port_pair().host(), | 1950 EXPECT_EQ(embedded_test_server()->host_port_pair().host(), |
| 1764 ip_map->at(test_server_host).back().ip); | 1951 ip_map->at(test_server_host).back().ip); |
| 1765 EXPECT_NE(yesterday, ip_map->at(test_server_host).front().timestamp); | 1952 EXPECT_NE(yesterday, ip_map->at(test_server_host).front().timestamp); |
| 1766 } | 1953 } |
| 1767 | 1954 |
| 1768 } // namespace safe_browsing | 1955 } // namespace safe_browsing |
| OLD | NEW |