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

Unified Diff: chrome/browser/referrer_policy_browsertest.cc

Issue 128173002: Fix referrer policy passing during redirects (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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/referrer_policy_browsertest.cc
diff --git a/chrome/browser/referrer_policy_browsertest.cc b/chrome/browser/referrer_policy_browsertest.cc
index df05db568793cf05de2d9592ca13a0a8c8a05227..a078fd7591db73d364d7efcfd0012eba7b7a20f8 100644
--- a/chrome/browser/referrer_policy_browsertest.cc
+++ b/chrome/browser/referrer_policy_browsertest.cc
@@ -14,6 +14,8 @@
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
+#include "content/public/browser/navigation_controller.h"
+#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
@@ -99,11 +101,27 @@ class ReferrerPolicyTest : public InProcessBrowserTest {
GetExpectedTitle(url, EXPECT_ORIGIN_AS_REFERRER));
}
+ // Returns a string representation of a given |referrer_policy|.
+ std::string ReferrerPolicyToString(blink::WebReferrerPolicy referrer_policy) {
+ switch (referrer_policy) {
+ case blink::WebReferrerPolicyDefault:
+ return "default";
+ case blink::WebReferrerPolicyOrigin:
+ return "origin";
+ case blink::WebReferrerPolicyAlways:
+ return "always";
+ case blink::WebReferrerPolicyNever:
+ return "never";
+ default:
+ NOTREACHED();
+ return "";
+ }
+ }
+
// Navigates from a page with a given |referrer_policy| and checks that the
// reported referrer matches the expectation.
// Parameters:
- // referrer_policy: The referrer policy to test ("default", "always",
- // "origin", "never")
+ // referrer_policy: The referrer policy to test.
// start_on_https: True if the test should start on an HTTPS page.
// target_blank: True if the link that is generated should have the
// attribute target=_blank
@@ -116,7 +134,7 @@ class ReferrerPolicyTest : public InProcessBrowserTest {
//
// Returns:
// The URL of the first page navigated to.
- GURL RunReferrerTest(const std::string referrer_policy,
+ GURL RunReferrerTest(const blink::WebReferrerPolicy referrer_policy,
bool start_on_https,
bool target_blank,
bool redirect,
@@ -128,7 +146,7 @@ class ReferrerPolicyTest : public InProcessBrowserTest {
start_on_https ? ssl_test_server_.get() : test_server_.get();
start_url = start_server->GetURL(
std::string("files/referrer-policy-start.html?") +
- "policy=" + referrer_policy +
+ "policy=" + ReferrerPolicyToString(referrer_policy) +
"&port=" + base::IntToString(test_server_->host_port_pair().port()) +
"&ssl_port=" +
base::IntToString(ssl_test_server_->host_port_pair().port()) +
@@ -173,6 +191,9 @@ class ReferrerPolicyTest : public InProcessBrowserTest {
EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
}
+ EXPECT_EQ(referrer_policy,
+ tab->GetController().GetActiveEntry()->GetReferrer().policy);
+
return start_url;
}
@@ -189,70 +210,70 @@ class ReferrerPolicyTest : public InProcessBrowserTest {
// Content initiated navigation, from HTTP to HTTP.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, Origin) {
- RunReferrerTest("origin", false, false, false, false,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, false, false, false, false,
blink::WebMouseEvent::ButtonNone,
EXPECT_ORIGIN_AS_REFERRER);
}
// Content initiated navigation, from HTTPS to HTTP.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsDefault) {
- RunReferrerTest("origin", true, false, false, false,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, true, false, false, false,
blink::WebMouseEvent::ButtonNone,
EXPECT_ORIGIN_AS_REFERRER);
}
// User initiated navigation, from HTTP to HTTP.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, LeftClickOrigin) {
- RunReferrerTest("origin", false, false, false, false,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, false, false, false, false,
blink::WebMouseEvent::ButtonLeft,
EXPECT_ORIGIN_AS_REFERRER);
}
// User initiated navigation, from HTTPS to HTTP.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsLeftClickOrigin) {
- RunReferrerTest("origin", true, false, false, false,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, true, false, false, false,
blink::WebMouseEvent::ButtonLeft,
EXPECT_ORIGIN_AS_REFERRER);
}
// User initiated navigation, middle click, from HTTP to HTTP.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MiddleClickOrigin) {
- RunReferrerTest("origin", false, false, false, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, false, false, false, true,
blink::WebMouseEvent::ButtonMiddle,
EXPECT_ORIGIN_AS_REFERRER);
}
// User initiated navigation, middle click, from HTTPS to HTTP.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsMiddleClickOrigin) {
- RunReferrerTest("origin", true, false, false, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, true, false, false, true,
blink::WebMouseEvent::ButtonMiddle,
EXPECT_ORIGIN_AS_REFERRER);
}
// User initiated navigation, target blank, from HTTP to HTTP.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, TargetBlankOrigin) {
- RunReferrerTest("origin", false, true, false, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, false, true, false, true,
blink::WebMouseEvent::ButtonLeft,
EXPECT_ORIGIN_AS_REFERRER);
}
// User initiated navigation, target blank, from HTTPS to HTTP.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsTargetBlankOrigin) {
- RunReferrerTest("origin", true, true, false, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, true, true, false, true,
blink::WebMouseEvent::ButtonLeft,
EXPECT_ORIGIN_AS_REFERRER);
}
// User initiated navigation, middle click, target blank, from HTTP to HTTP.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MiddleClickTargetBlankOrigin) {
- RunReferrerTest("origin", false, true, false, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, false, true, false, true,
blink::WebMouseEvent::ButtonMiddle,
EXPECT_ORIGIN_AS_REFERRER);
}
// User initiated navigation, middle click, target blank, from HTTPS to HTTP.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsMiddleClickTargetBlankOrigin) {
- RunReferrerTest("origin", true, true, false, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, true, true, false, true,
blink::WebMouseEvent::ButtonMiddle,
EXPECT_ORIGIN_AS_REFERRER);
}
@@ -261,7 +282,7 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsMiddleClickTargetBlankOrigin) {
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MAYBE_ContextMenuOrigin) {
ContextMenuNotificationObserver context_menu_observer(
IDC_CONTENT_CONTEXT_OPENLINKNEWTAB);
- RunReferrerTest("origin", false, false, false, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, false, false, false, true,
blink::WebMouseEvent::ButtonRight,
EXPECT_ORIGIN_AS_REFERRER);
}
@@ -270,35 +291,35 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MAYBE_ContextMenuOrigin) {
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MAYBE_HttpsContextMenuOrigin) {
ContextMenuNotificationObserver context_menu_observer(
IDC_CONTENT_CONTEXT_OPENLINKNEWTAB);
- RunReferrerTest("origin", true, false, false, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, true, false, false, true,
blink::WebMouseEvent::ButtonRight,
EXPECT_ORIGIN_AS_REFERRER);
}
// Content initiated navigation, from HTTP to HTTP via server redirect.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, Redirect) {
- RunReferrerTest("origin", false, false, true, false,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, false, false, true, false,
blink::WebMouseEvent::ButtonNone,
EXPECT_ORIGIN_AS_REFERRER);
}
// Content initiated navigation, from HTTPS to HTTP via server redirect.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsRedirect) {
- RunReferrerTest("origin", true, false, true, false,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, true, false, true, false,
blink::WebMouseEvent::ButtonNone,
EXPECT_ORIGIN_AS_REFERRER);
}
// User initiated navigation, from HTTP to HTTP via server redirect.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, LeftClickRedirect) {
- RunReferrerTest("origin", false, false, true, false,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, false, false, true, false,
blink::WebMouseEvent::ButtonLeft,
EXPECT_ORIGIN_AS_REFERRER);
}
// User initiated navigation, from HTTPS to HTTP via server redirect.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsLeftClickRedirect) {
- RunReferrerTest("origin", true, false, true, false,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, true, false, true, false,
blink::WebMouseEvent::ButtonLeft,
EXPECT_ORIGIN_AS_REFERRER);
}
@@ -306,7 +327,7 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsLeftClickRedirect) {
// User initiated navigation, middle click, from HTTP to HTTP via server
// redirect.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MiddleClickRedirect) {
- RunReferrerTest("origin", false, false, true, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, false, false, true, true,
blink::WebMouseEvent::ButtonMiddle,
EXPECT_ORIGIN_AS_REFERRER);
}
@@ -314,7 +335,7 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MiddleClickRedirect) {
// User initiated navigation, middle click, from HTTPS to HTTP via server
// redirect.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsMiddleClickRedirect) {
- RunReferrerTest("origin", true, false, true, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, true, false, true, true,
blink::WebMouseEvent::ButtonMiddle,
EXPECT_ORIGIN_AS_REFERRER);
}
@@ -322,7 +343,7 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsMiddleClickRedirect) {
// User initiated navigation, target blank, from HTTP to HTTP via server
// redirect.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, TargetBlankRedirect) {
- RunReferrerTest("origin", false, true, true, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, false, true, true, true,
blink::WebMouseEvent::ButtonLeft,
EXPECT_ORIGIN_AS_REFERRER);
}
@@ -330,7 +351,7 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, TargetBlankRedirect) {
// User initiated navigation, target blank, from HTTPS to HTTP via server
// redirect.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsTargetBlankRedirect) {
- RunReferrerTest("origin", true, true, true, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, true, true, true, true,
blink::WebMouseEvent::ButtonLeft,
EXPECT_ORIGIN_AS_REFERRER);
}
@@ -338,7 +359,7 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, HttpsTargetBlankRedirect) {
// User initiated navigation, middle click, target blank, from HTTP to HTTP via
// server redirect.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MiddleClickTargetBlankRedirect) {
- RunReferrerTest("origin", false, true, true, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, false, true, true, true,
blink::WebMouseEvent::ButtonMiddle,
EXPECT_ORIGIN_AS_REFERRER);
}
@@ -347,7 +368,7 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MiddleClickTargetBlankRedirect) {
// via server redirect.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest,
HttpsMiddleClickTargetBlankRedirect) {
- RunReferrerTest("origin", true, true, true, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, true, true, true, true,
blink::WebMouseEvent::ButtonMiddle,
EXPECT_ORIGIN_AS_REFERRER);
}
@@ -356,7 +377,7 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest,
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MAYBE_ContextMenuRedirect) {
ContextMenuNotificationObserver context_menu_observer(
IDC_CONTENT_CONTEXT_OPENLINKNEWTAB);
- RunReferrerTest("origin", false, false, true, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, false, false, true, true,
blink::WebMouseEvent::ButtonRight,
EXPECT_ORIGIN_AS_REFERRER);
}
@@ -365,7 +386,7 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MAYBE_ContextMenuRedirect) {
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MAYBE_HttpsContextMenuRedirect) {
ContextMenuNotificationObserver context_menu_observer(
IDC_CONTENT_CONTEXT_OPENLINKNEWTAB);
- RunReferrerTest("origin", true, false, true, true,
+ RunReferrerTest(blink::WebReferrerPolicyOrigin, true, false, true, true,
blink::WebMouseEvent::ButtonRight,
EXPECT_ORIGIN_AS_REFERRER);
}
@@ -374,7 +395,11 @@ IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, MAYBE_HttpsContextMenuRedirect) {
// policy, then navigate to C, back to B, and reload.
IN_PROC_BROWSER_TEST_F(ReferrerPolicyTest, History) {
// Navigate from A to B.
- GURL start_url = RunReferrerTest("origin", true, false, true, false,
+ GURL start_url = RunReferrerTest(blink::WebReferrerPolicyOrigin,
+ true,
+ false,
+ true,
+ false,
blink::WebMouseEvent::ButtonLeft,
EXPECT_ORIGIN_AS_REFERRER);
« no previous file with comments | « no previous file | content/browser/frame_host/navigation_controller_impl.cc » ('j') | content/renderer/render_view_impl.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698