Index: chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc |
diff --git a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc |
index 495537dbc7fe92bbd437b175ee1e57be36c3683c..585ea70488007344f9a28ca838371ce07491ac62 100644 |
--- a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc |
+++ b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc |
@@ -234,24 +234,24 @@ class SBNavigationObserverBrowserTest : public InProcessBrowserTest { |
const GURL& expected_referrer_url, |
const GURL& expected_referrer_main_frame_url, |
bool expected_is_retargeting, |
- ReferrerChainEntry actual_entry) { |
- EXPECT_EQ(expected_url.spec(), actual_entry.url()); |
- EXPECT_EQ(expected_type, actual_entry.type()); |
+ ReferrerChainEntry* actual_entry) { |
+ EXPECT_EQ(expected_url.spec(), actual_entry->url()); |
+ EXPECT_EQ(expected_type, actual_entry->type()); |
if (expected_ip_address.empty()) { |
- ASSERT_EQ(0, actual_entry.ip_addresses_size()); |
+ ASSERT_EQ(0, actual_entry->ip_addresses_size()); |
} else { |
- ASSERT_EQ(1, actual_entry.ip_addresses_size()); |
- EXPECT_EQ(expected_ip_address, actual_entry.ip_addresses(0)); |
+ ASSERT_EQ(1, actual_entry->ip_addresses_size()); |
+ EXPECT_EQ(expected_ip_address, actual_entry->ip_addresses(0)); |
} |
- EXPECT_EQ(expected_referrer_url.spec(), actual_entry.referrer_url()); |
+ EXPECT_EQ(expected_referrer_url.spec(), actual_entry->referrer_url()); |
EXPECT_EQ(expected_referrer_main_frame_url.spec(), |
- actual_entry.referrer_main_frame_url()); |
- EXPECT_EQ(expected_is_retargeting, actual_entry.is_retargeting()); |
+ actual_entry->referrer_main_frame_url()); |
+ EXPECT_EQ(expected_is_retargeting, actual_entry->is_retargeting()); |
} |
- std::vector<ReferrerChainEntry> IdentifyReferrerChainForDownload( |
- DownloadItem* download) { |
- std::vector<ReferrerChainEntry> referrer_chain; |
+ void IdentifyReferrerChainForDownload( |
Nathan Parker
2017/01/10 01:25:13
Maybe add a comment that this populates referrer_c
Jialiu Lin
2017/01/10 02:15:12
Done.
|
+ DownloadItem* download, |
+ SafeBrowsingNavigationObserverManager::ReferrerChain* referrer_chain) { |
int download_tab_id = |
SessionTabHelper::IdForTab(download->GetWebContents()); |
// IdentifyReferrerChain should return SUCCESS(1), SUCCESS_LANDING_PAGE(2), |
@@ -259,15 +259,14 @@ class SBNavigationObserverBrowserTest : public InProcessBrowserTest { |
EXPECT_LE(observer_manager_->IdentifyReferrerChainForDownload( |
download->GetURL(), download_tab_id, |
2, // kDownloadAttributionUserGestureLimit |
- &referrer_chain), |
+ referrer_chain), |
SafeBrowsingNavigationObserverManager::SUCCESS_LANDING_REFERRER); |
- return referrer_chain; |
} |
- std::vector<ReferrerChainEntry> IdentifyReferrerChainForPPAPIDownload( |
+ void IdentifyReferrerChainForPPAPIDownload( |
const GURL& initiating_frame_url, |
- content::WebContents* web_contents) { |
- std::vector<ReferrerChainEntry> referrer_chain; |
+ content::WebContents* web_contents, |
+ SafeBrowsingNavigationObserverManager::ReferrerChain* referrer_chain) { |
int tab_id = SessionTabHelper::IdForTab(web_contents); |
bool has_user_gesture = observer_manager_->HasUserGesture(web_contents); |
observer_manager_->OnUserGestureConsumed(web_contents, base::Time::Now()); |
@@ -276,9 +275,8 @@ class SBNavigationObserverBrowserTest : public InProcessBrowserTest { |
tab_id, |
has_user_gesture, |
2, // kDownloadAttributionUserGestureLimit) |
- &referrer_chain), |
+ referrer_chain), |
SafeBrowsingNavigationObserverManager::SUCCESS_LANDING_REFERRER); |
- return referrer_chain; |
} |
void VerifyHostToIpMap() { |
@@ -346,7 +344,8 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, TypeInURLDownload) { |
nav_map->at(download_url).at(0)); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
ASSERT_EQ(1U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
@@ -354,7 +353,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, TypeInURLDownload) { |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
} |
// Click on a link and start download on the same page. |
IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, DirectDownload) { |
@@ -385,7 +384,8 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, DirectDownload) { |
nav_map->at(download_url).at(0)); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
ASSERT_EQ(2U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
@@ -393,14 +393,14 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, DirectDownload) { |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(initial_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
} |
// Click on a link with rel="noreferrer" attribute, and start download on the |
@@ -434,7 +434,8 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
nav_map->at(download_url).at(0)); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
Nathan Parker
2017/01/10 01:25:13
(You could consider typedeffing these to "Referrer
Jialiu Lin
2017/01/10 02:15:12
Done.
|
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
ASSERT_EQ(2U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
@@ -442,14 +443,14 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(initial_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
} |
// Click on a link with rel="noreferrer" attribute, and start download in a |
@@ -497,7 +498,8 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
nav_map->at(download_url).at(1)); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
ASSERT_EQ(2U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
@@ -505,14 +507,14 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
true, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(initial_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
} |
// Click on a link which navigates to a page then redirects to a download using |
@@ -528,7 +530,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
ASSERT_TRUE(nav_map); |
// Since unlike server redirects client redirects commit and then generate a |
// second navigation, our observer records two NavigationEvents for this test. |
- ASSERT_EQ(std::size_t(3), nav_map->size()); |
+ ASSERT_EQ(3U, nav_map->size()); |
ASSERT_EQ(1U, nav_map->at(redirect_url).size()); |
ASSERT_EQ(1U, nav_map->at(download_url).size()); |
ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
@@ -558,29 +560,30 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
nav_map->at(download_url).at(0)); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
- ASSERT_EQ(std::size_t(3), referrer_chain.size()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
+ ASSERT_EQ(3U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
test_server_ip, // ip_address |
redirect_url, // referrer_url |
redirect_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(redirect_url, // url |
ReferrerChainEntry::CLIENT_REDIRECT, // type |
test_server_ip, // ip_address |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
VerifyReferrerChainEntry(initial_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[2]); |
+ referrer_chain[2].get()); |
} |
// Click on a link which navigates to a page then redirects to a download using |
@@ -594,7 +597,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
auto nav_map = navigation_map(); |
ASSERT_TRUE(nav_map); |
- ASSERT_EQ(std::size_t(3), nav_map->size()); |
+ ASSERT_EQ(3U, nav_map->size()); |
ASSERT_EQ(2U, nav_map->at(redirect_url).size()); |
ASSERT_EQ(1U, nav_map->at(download_url).size()); |
ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
@@ -635,29 +638,30 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
nav_map->at(download_url).at(0)); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
- ASSERT_EQ(std::size_t(3), referrer_chain.size()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
+ ASSERT_EQ(3U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
test_server_ip, // ip_address |
redirect_url, // referrer_url |
redirect_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(redirect_url, // url |
ReferrerChainEntry::CLIENT_REDIRECT, // type |
test_server_ip, // ip_address |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
true, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
VerifyReferrerChainEntry(initial_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[2]); |
+ referrer_chain[2].get()); |
} |
// Click on a link which redirects twice before reaching download using |
@@ -674,7 +678,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
auto nav_map = navigation_map(); |
ASSERT_TRUE(nav_map); |
- ASSERT_EQ(std::size_t(4), nav_map->size()); |
+ ASSERT_EQ(4U, nav_map->size()); |
ASSERT_EQ(1U, nav_map->at(first_redirect_url).size()); |
ASSERT_EQ(1U, nav_map->at(second_redirect_url).size()); |
ASSERT_EQ(1U, nav_map->at(download_url).size()); |
@@ -713,36 +717,37 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
nav_map->at(download_url).at(0)); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
- ASSERT_EQ(std::size_t(4), referrer_chain.size()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
+ ASSERT_EQ(4U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
test_server_ip, // ip_address |
second_redirect_url, // referrer_url |
second_redirect_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(second_redirect_url, // url |
ReferrerChainEntry::CLIENT_REDIRECT, // type |
test_server_ip, // ip_address |
first_redirect_url, // referrer_url |
first_redirect_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
VerifyReferrerChainEntry(first_redirect_url, // url |
ReferrerChainEntry::CLIENT_REDIRECT, // type |
test_server_ip, // ip_address |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[2]); |
+ referrer_chain[2].get()); |
VerifyReferrerChainEntry(initial_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[3]); |
+ referrer_chain[3].get()); |
} |
// Click on a link which redirects to download using window.location. |
@@ -775,7 +780,8 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
false, // has_server_redirect |
nav_map->at(download_url).at(0)); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
ASSERT_EQ(2U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
@@ -783,14 +789,14 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(initial_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
} |
// Click on a link which redirects twice until it reaches download using a |
@@ -804,7 +810,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, MixRedirects) { |
std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
auto nav_map = navigation_map(); |
ASSERT_TRUE(nav_map); |
- ASSERT_EQ(std::size_t(3), nav_map->size()); |
+ ASSERT_EQ(3U, nav_map->size()); |
ASSERT_EQ(1U, nav_map->at(redirect_url).size()); |
ASSERT_EQ(1U, nav_map->at(download_url).size()); |
ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
@@ -834,29 +840,30 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, MixRedirects) { |
nav_map->at(download_url).at(0)); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
- ASSERT_EQ(std::size_t(3), referrer_chain.size()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
+ ASSERT_EQ(3U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
test_server_ip, // ip_address |
redirect_url, // referrer_url |
redirect_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(redirect_url, // url |
ReferrerChainEntry::CLIENT_REDIRECT, // type |
test_server_ip, // ip_address |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
VerifyReferrerChainEntry(initial_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[2]); |
+ referrer_chain[2].get()); |
} |
// Use javascript to open download in a new tab. |
@@ -868,7 +875,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, NewTabDownload) { |
std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
auto nav_map = navigation_map(); |
ASSERT_TRUE(nav_map); |
- ASSERT_EQ(std::size_t(3), nav_map->size()); |
+ ASSERT_EQ(3U, nav_map->size()); |
ASSERT_EQ(2U, nav_map->at(blank_url).size()); |
ASSERT_EQ(1U, nav_map->at(download_url).size()); |
ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
@@ -913,29 +920,30 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, NewTabDownload) { |
nav_map->at(download_url).at(0).target_tab_id); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
- ASSERT_EQ(std::size_t(3), referrer_chain.size()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
+ ASSERT_EQ(3U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
test_server_ip, // ip_address |
blank_url, // referrer_url |
blank_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(blank_url, // url |
ReferrerChainEntry::CLIENT_REDIRECT, // type |
"", // ip_address |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
true, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
VerifyReferrerChainEntry(initial_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[2]); |
+ referrer_chain[2].get()); |
} |
// Use javascript to open download in a new tab and download has a data url. |
@@ -948,7 +956,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
auto nav_map = navigation_map(); |
ASSERT_TRUE(nav_map); |
- ASSERT_EQ(std::size_t(3), nav_map->size()); |
+ ASSERT_EQ(3U, nav_map->size()); |
ASSERT_EQ(2U, nav_map->at(blank_url).size()); |
ASSERT_EQ(1U, nav_map->at(download_url).size()); |
ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
@@ -994,29 +1002,30 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
nav_map->at(download_url).at(0).target_tab_id); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
- ASSERT_EQ(std::size_t(3), referrer_chain.size()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
+ ASSERT_EQ(3U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
"", // ip_address |
blank_url, // referrer_url |
blank_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(blank_url, // url |
ReferrerChainEntry::CLIENT_REDIRECT, // type |
"", // ip_address |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
true, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
VerifyReferrerChainEntry(initial_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[2]); |
+ referrer_chain[2].get()); |
} |
// TODO(jialiul): Need to figure out why this test is failing on Windows and |
@@ -1055,7 +1064,8 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
nav_map->at(download_url).at(0)); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
ASSERT_EQ(2U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
@@ -1063,14 +1073,14 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(initial_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
} |
// Click a link in a subframe and start download. |
@@ -1090,7 +1100,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
auto nav_map = navigation_map(); |
ASSERT_TRUE(nav_map); |
- ASSERT_EQ(std::size_t(5), nav_map->size()); |
+ ASSERT_EQ(5U, nav_map->size()); |
ASSERT_EQ(1U, nav_map->at(multi_frame_test_url).size()); |
ASSERT_EQ(1U, nav_map->at(iframe_url).size()); |
ASSERT_EQ(1U, nav_map->at(iframe_retargeting_url).size()); |
@@ -1138,7 +1148,8 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
nav_map->at(download_url).at(0)); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
ASSERT_EQ(4U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
@@ -1146,28 +1157,28 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
iframe_url, // referrer_url |
multi_frame_test_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(iframe_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
multi_frame_test_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
VerifyReferrerChainEntry(multi_frame_test_url, // url |
ReferrerChainEntry::CLIENT_REDIRECT, // type |
test_server_ip, // ip_address |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[2]); |
+ referrer_chain[2].get()); |
VerifyReferrerChainEntry(initial_url, // url |
ReferrerChainEntry::LANDING_REFERRER, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[3]); |
+ referrer_chain[3].get()); |
} |
// Click a link in a subframe and open download in a new tab. |
@@ -1253,7 +1264,8 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
nav_map->at(download_url).at(0)); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
EXPECT_EQ(5U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
@@ -1261,35 +1273,35 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
blank_url, // referrer_url |
blank_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(blank_url, // url |
ReferrerChainEntry::CLIENT_REDIRECT, // type |
"", // ip_address |
iframe_retargeting_url, // referrer_url |
multi_frame_test_url, // referrer_main_frame_url |
true, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
VerifyReferrerChainEntry(iframe_retargeting_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
multi_frame_test_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[2]); |
+ referrer_chain[2].get()); |
VerifyReferrerChainEntry(multi_frame_test_url, // url |
ReferrerChainEntry::CLIENT_REDIRECT, // type |
test_server_ip, // ip_address |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[3]); |
+ referrer_chain[3].get()); |
VerifyReferrerChainEntry(initial_url, // url |
ReferrerChainEntry::LANDING_REFERRER, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[4]); |
+ referrer_chain[4].get()); |
} |
// Click a link which redirects to the landing page, and then click on the |
@@ -1304,7 +1316,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, CompleteReferrerChain) { |
std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
auto nav_map = navigation_map(); |
ASSERT_TRUE(nav_map); |
- ASSERT_EQ(std::size_t(4), nav_map->size()); |
+ ASSERT_EQ(4U, nav_map->size()); |
ASSERT_EQ(1U, nav_map->at(redirect_url).size()); |
ASSERT_EQ(1U, nav_map->at(landing_url).size()); |
ASSERT_EQ(1U, nav_map->at(download_url).size()); |
@@ -1343,29 +1355,30 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, CompleteReferrerChain) { |
nav_map->at(download_url).at(0)); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
- EXPECT_EQ(std::size_t(4), referrer_chain.size()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
+ EXPECT_EQ(4U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
test_server_ip, // ip_address |
landing_url, // referrer_url |
landing_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(landing_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
redirect_url, // referrer_url |
redirect_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
VerifyReferrerChainEntry(redirect_url, // url |
ReferrerChainEntry::CLIENT_REDIRECT, // type |
test_server_ip, // ip_address |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[2]); |
+ referrer_chain[2].get()); |
VerifyReferrerChainEntry( |
initial_url, // url |
ReferrerChainEntry::LANDING_REFERRER, // type |
@@ -1373,7 +1386,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, CompleteReferrerChain) { |
GURL(), // referrer_url is empty since this beyonds 2 clicks. |
GURL(), // referrer_main_frame_url is empty for the same reason. |
false, // is_retargeting |
- referrer_chain[3]); |
+ referrer_chain[3].get()); |
} |
// Click three links before reaching download. |
@@ -1394,7 +1407,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
std::string test_server_ip(embedded_test_server()->host_port_pair().host()); |
auto nav_map = navigation_map(); |
ASSERT_TRUE(nav_map); |
- ASSERT_EQ(std::size_t(5), nav_map->size()); |
+ ASSERT_EQ(5U, nav_map->size()); |
ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
ASSERT_EQ(1U, nav_map->at(page_before_landing_referrer_url).size()); |
ASSERT_EQ(1U, nav_map->at(landing_referrer_url).size()); |
@@ -1442,22 +1455,23 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
nav_map->at(download_url).at(0)); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
- EXPECT_EQ(std::size_t(3), referrer_chain.size()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
+ EXPECT_EQ(3U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
test_server_ip, // ip_address |
landing_url, // referrer_url |
landing_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(landing_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
landing_referrer_url, // referrer_url |
landing_referrer_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
VerifyReferrerChainEntry( |
landing_referrer_url, // url |
ReferrerChainEntry::LANDING_REFERRER, // type |
@@ -1465,7 +1479,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
GURL(), // referrer_url is empty since this beyonds 2 clicks. |
GURL(), // referrer_main_frame_url is empty for the same reason. |
false, // is_retargeting |
- referrer_chain[2]); |
+ referrer_chain[2].get()); |
// page_before_landing_referrer_url is not in referrer chain. |
} |
@@ -1482,7 +1496,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
SimulateUserGesture(); |
auto nav_map = navigation_map(); |
ASSERT_TRUE(nav_map); |
- ASSERT_EQ(std::size_t(3), nav_map->size()); |
+ ASSERT_EQ(3U, nav_map->size()); |
ASSERT_EQ(1U, nav_map->at(redirect_url).size()); |
ASSERT_EQ(1U, nav_map->at(landing_url).size()); |
ASSERT_EQ(1U, nav_map->at(initial_url).size()); |
@@ -1512,24 +1526,26 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
nav_map->at(landing_url).at(0)); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForPPAPIDownload( |
- landing_url, browser()->tab_strip_model()->GetActiveWebContents()); |
- |
- EXPECT_EQ(std::size_t(3), referrer_chain.size()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForPPAPIDownload( |
+ landing_url, |
+ browser()->tab_strip_model()->GetActiveWebContents(), |
+ &referrer_chain); |
+ EXPECT_EQ(3U, referrer_chain.size()); |
VerifyReferrerChainEntry(landing_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
redirect_url, // referrer_url |
redirect_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(redirect_url, // url |
ReferrerChainEntry::CLIENT_REDIRECT, // type |
test_server_ip, // ip_address |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
VerifyReferrerChainEntry( |
initial_url, // url |
ReferrerChainEntry::LANDING_REFERRER, // type |
@@ -1537,7 +1553,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
GURL(), // referrer_url is empty since this beyonds 2 clicks. |
GURL(), // referrer_main_frame_url is empty for the same reason. |
false, // is_retargeting |
- referrer_chain[2]); |
+ referrer_chain[2].get()); |
} |
// Click a link which redirects to a page that triggers PPAPI download without |
@@ -1552,7 +1568,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
auto nav_map = navigation_map(); |
ASSERT_TRUE(nav_map); |
- ASSERT_EQ(std::size_t(3), nav_map->size()); |
+ ASSERT_EQ(3U, nav_map->size()); |
ASSERT_EQ(1U, nav_map->at(redirect_url).size()); |
ASSERT_EQ(1U, nav_map->at(hosting_url).size()); |
ASSERT_EQ(1U, nav_map->at(landing_url).size()); |
@@ -1582,31 +1598,33 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
nav_map->at(hosting_url).at(0)); |
VerifyHostToIpMap(); |
- auto referrer_chain = IdentifyReferrerChainForPPAPIDownload( |
- hosting_url, browser()->tab_strip_model()->GetActiveWebContents()); |
- |
- EXPECT_EQ(std::size_t(3), referrer_chain.size()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForPPAPIDownload( |
+ hosting_url, |
+ browser()->tab_strip_model()->GetActiveWebContents(), |
+ &referrer_chain); |
+ EXPECT_EQ(3U, referrer_chain.size()); |
VerifyReferrerChainEntry(hosting_url, // url |
ReferrerChainEntry::CLIENT_REDIRECT, // type |
test_server_ip, // ip_address |
redirect_url, // referrer_url |
redirect_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(redirect_url, // url |
ReferrerChainEntry::CLIENT_REDIRECT, // type |
test_server_ip, // ip_address |
landing_url, // referrer_url |
landing_url, // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
VerifyReferrerChainEntry(landing_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
GURL(), // no more referrer before landing_url |
GURL(), |
false, // is_retargeting |
- referrer_chain[2]); |
+ referrer_chain[2].get()); |
} |
// Server-side redirect. |
@@ -1639,7 +1657,8 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, ServerRedirect) { |
true, // has_server_redirect |
nav_map->at(download_url).at(0)); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
ASSERT_EQ(1U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
@@ -1647,7 +1666,7 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, ServerRedirect) { |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
} |
// Retargeting immediately followed by server-side redirect. |
@@ -1690,7 +1709,8 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
true, // has_server_redirect |
nav_map->at(download_url).at(0)); |
- auto referrer_chain = IdentifyReferrerChainForDownload(GetDownload()); |
+ SafeBrowsingNavigationObserverManager::ReferrerChain referrer_chain; |
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain); |
ASSERT_EQ(2U, referrer_chain.size()); |
VerifyReferrerChainEntry(download_url, // url |
ReferrerChainEntry::DOWNLOAD_URL, // type |
@@ -1698,14 +1718,14 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, |
initial_url, // referrer_url |
initial_url, // referrer_main_frame_url |
true, // is_retargeting |
- referrer_chain[0]); |
+ referrer_chain[0].get()); |
VerifyReferrerChainEntry(initial_url, // url |
ReferrerChainEntry::LANDING_PAGE, // type |
test_server_ip, // ip_address |
GURL(), // referrer_url |
GURL(), // referrer_main_frame_url |
false, // is_retargeting |
- referrer_chain[1]); |
+ referrer_chain[1].get()); |
} |
// host_to_ip_map_ size should increase by one after a new navigation. |