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