Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(114)

Unified Diff: chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc

Issue 2644133005: Include all server redirects in referrer chain (Closed)
Patch Set: nit Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 a19949a4beca2f971bade39239ec222a5e4caf6a..168d7fc08cca3fced6a190cd47d941bdf5f955d9 100644
--- a/chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_navigation_observer_browsertest.cc
@@ -223,7 +223,7 @@ class SBNavigationObserverBrowserTest : public InProcessBrowserTest {
actual_nav_event.source_main_frame_url);
EXPECT_EQ(expected_original_request_url,
actual_nav_event.original_request_url);
- EXPECT_EQ(expected_destination_url, actual_nav_event.destination_url);
+ EXPECT_EQ(expected_destination_url, actual_nav_event.GetDestinationUrl());
EXPECT_EQ(expected_is_user_initiated, actual_nav_event.is_user_initiated);
EXPECT_EQ(expected_has_committed, actual_nav_event.has_committed);
EXPECT_EQ(expected_has_server_redirect,
@@ -1671,6 +1671,68 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, ServerRedirect) {
GURL(), // referrer_main_frame_url
false, // is_retargeting
referrer_chain[0].get());
+ const auto server_redirects =
+ referrer_chain[0].get()->server_redirect_chain();
+ ASSERT_EQ(2, server_redirects.size());
+ EXPECT_EQ(request_url, server_redirects.Get(0));
+ EXPECT_EQ(download_url, server_redirects.Get(1));
+}
+
+// 2 consecutive server-side redirects.
+IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest, TwoServerRedirects) {
+ GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL);
+ GURL destination_url = embedded_test_server()->GetURL(kDownloadItemURL);
+ GURL redirect_url =
+ embedded_test_server()->GetURL("/server-redirect?" +
+ destination_url.spec());
+ GURL request_url =
+ embedded_test_server()->GetURL("/server-redirect?" +
+ redirect_url.spec());
+ ui_test_utils::NavigateToURL(browser(), request_url);
+ std::string test_server_ip(embedded_test_server()->host_port_pair().host());
+ auto nav_map = navigation_map();
+ ASSERT_TRUE(nav_map);
+ ASSERT_EQ(2U, nav_map->size());
+ ASSERT_EQ(1U, nav_map->at(destination_url).size());
+ ASSERT_EQ(1U, nav_map->at(initial_url).size());
+ VerifyNavigationEvent(GURL(), // source_url
+ GURL(), // source_main_frame_url
+ initial_url, // original_request_url
+ initial_url, // destination_url
+ true, // is_user_initiated,
+ true, // has_committed
+ false, // has_server_redirect
+ nav_map->at(initial_url).at(0));
+ VerifyNavigationEvent(GURL(), // source_url
+ GURL(), // source_main_frame_url
+ request_url, // original_request_url
+ destination_url, // destination_url
+ true, // is_user_initiated,
+ false, // has_committed
+ true, // has_server_redirect
+ nav_map->at(destination_url).at(0));
+ const auto redirect_vector =
+ nav_map->at(destination_url).at(0).server_redirect_urls;
+ ASSERT_EQ(2U, redirect_vector.size());
+ EXPECT_EQ(redirect_url, redirect_vector.at(0));
+ EXPECT_EQ(destination_url, redirect_vector.at(1));
+
+ ReferrerChain referrer_chain;
+ IdentifyReferrerChainForDownload(GetDownload(), &referrer_chain);
+ ASSERT_EQ(1U, referrer_chain.size());
+ VerifyReferrerChainEntry(destination_url, // url
+ ReferrerChainEntry::DOWNLOAD_URL, // type
+ test_server_ip, // ip_address
+ GURL(), // referrer_url
+ GURL(), // referrer_main_frame_url
+ false, // is_retargeting
+ referrer_chain[0].get());
+ const auto server_redirects =
+ referrer_chain[0].get()->server_redirect_chain();
+ ASSERT_EQ(3, server_redirects.size());
+ EXPECT_EQ(request_url, server_redirects.Get(0));
+ EXPECT_EQ(redirect_url, server_redirects.Get(1));
+ EXPECT_EQ(destination_url, server_redirects.Get(2));
}
// Retargeting immediately followed by server-side redirect.

Powered by Google App Engine
This is Rietveld 408576698