| 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);
|
|
|
|
|