Index: third_party/WebKit/Source/core/loader/LinkLoaderTest.cpp |
diff --git a/third_party/WebKit/Source/core/loader/LinkLoaderTest.cpp b/third_party/WebKit/Source/core/loader/LinkLoaderTest.cpp |
index c8e58f982e0ff114b59f00e032dc7d53517407d4..fdccbbf41cecd0b6c6ea3908aaa241851646fc46 100644 |
--- a/third_party/WebKit/Source/core/loader/LinkLoaderTest.cpp |
+++ b/third_party/WebKit/Source/core/loader/LinkLoaderTest.cpp |
@@ -83,96 +83,124 @@ TEST(LinkLoaderTest, Preload) { |
const char* as; |
const char* type; |
const char* media; |
+ const ReferrerPolicy referrerPolicy; |
const ResourceLoadPriority priority; |
const WebURLRequest::RequestContext context; |
const bool linkLoaderShouldLoadValue; |
const bool expectingLoad; |
+ const ReferrerPolicy expectedReferrerPolicy; |
} cases[] = { |
- {"http://example.test/cat.jpg", "image", "", "", ResourceLoadPriorityLow, |
- WebURLRequest::RequestContextImage, true, true}, |
- {"http://example.test/cat.js", "script", "", "", ResourceLoadPriorityHigh, |
- WebURLRequest::RequestContextScript, true, true}, |
- {"http://example.test/cat.css", "style", "", "", |
+ {"http://example.test/cat.jpg", "image", "", "", ReferrerPolicyDefault, |
+ ResourceLoadPriorityLow, WebURLRequest::RequestContextImage, true, true, |
+ ReferrerPolicyDefault}, |
+ {"http://example.test/cat.js", "script", "", "", ReferrerPolicyDefault, |
+ ResourceLoadPriorityHigh, WebURLRequest::RequestContextScript, true, |
+ true, ReferrerPolicyDefault}, |
+ {"http://example.test/cat.css", "style", "", "", ReferrerPolicyDefault, |
ResourceLoadPriorityVeryHigh, WebURLRequest::RequestContextStyle, true, |
- true}, |
+ true, ReferrerPolicyDefault}, |
// TODO(yoav): It doesn't seem like the audio context is ever used. That |
// should probably be fixed (or we can consolidate audio and video). |
- {"http://example.test/cat.wav", "media", "", "", ResourceLoadPriorityLow, |
- WebURLRequest::RequestContextVideo, true, true}, |
- {"http://example.test/cat.mp4", "media", "", "", ResourceLoadPriorityLow, |
- WebURLRequest::RequestContextVideo, true, true}, |
- {"http://example.test/cat.vtt", "track", "", "", ResourceLoadPriorityLow, |
- WebURLRequest::RequestContextTrack, true, true}, |
- {"http://example.test/cat.woff", "font", "", "", |
+ {"http://example.test/cat.wav", "media", "", "", ReferrerPolicyDefault, |
+ ResourceLoadPriorityLow, WebURLRequest::RequestContextVideo, true, true, |
+ ReferrerPolicyDefault}, |
+ {"http://example.test/cat.mp4", "media", "", "", ReferrerPolicyDefault, |
+ ResourceLoadPriorityLow, WebURLRequest::RequestContextVideo, true, true, |
+ ReferrerPolicyDefault}, |
+ {"http://example.test/cat.vtt", "track", "", "", ReferrerPolicyDefault, |
+ ResourceLoadPriorityLow, WebURLRequest::RequestContextTrack, true, true, |
+ ReferrerPolicyDefault}, |
+ {"http://example.test/cat.woff", "font", "", "", ReferrerPolicyDefault, |
ResourceLoadPriorityVeryHigh, WebURLRequest::RequestContextFont, true, |
- true}, |
+ true, ReferrerPolicyDefault}, |
// TODO(yoav): subresource should be *very* low priority (rather than |
// low). |
- {"http://example.test/cat.empty", "", "", "", ResourceLoadPriorityHigh, |
- WebURLRequest::RequestContextSubresource, true, true}, |
- {"http://example.test/cat.blob", "blabla", "", "", |
+ {"http://example.test/cat.empty", "", "", "", ReferrerPolicyDefault, |
+ ResourceLoadPriorityHigh, WebURLRequest::RequestContextSubresource, true, |
+ true, ReferrerPolicyDefault}, |
+ {"http://example.test/cat.blob", "blabla", "", "", ReferrerPolicyDefault, |
ResourceLoadPriorityLow, WebURLRequest::RequestContextSubresource, false, |
- false}, |
- {"bla://example.test/cat.gif", "image", "", "", |
+ false, ReferrerPolicyDefault}, |
+ {"bla://example.test/cat.gif", "image", "", "", ReferrerPolicyDefault, |
ResourceLoadPriorityUnresolved, WebURLRequest::RequestContextImage, |
- false, false}, |
+ false, false, ReferrerPolicyDefault}, |
// MIME type tests |
{"http://example.test/cat.webp", "image", "image/webp", "", |
- ResourceLoadPriorityLow, WebURLRequest::RequestContextImage, true, true}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityLow, |
+ WebURLRequest::RequestContextImage, true, true, ReferrerPolicyDefault}, |
{"http://example.test/cat.svg", "image", "image/svg+xml", "", |
- ResourceLoadPriorityLow, WebURLRequest::RequestContextImage, true, true}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityLow, |
+ WebURLRequest::RequestContextImage, true, true, ReferrerPolicyDefault}, |
{"http://example.test/cat.jxr", "image", "image/jxr", "", |
- ResourceLoadPriorityUnresolved, WebURLRequest::RequestContextImage, |
- false, false}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityUnresolved, |
+ WebURLRequest::RequestContextImage, false, false, ReferrerPolicyDefault}, |
{"http://example.test/cat.js", "script", "text/javascript", "", |
- ResourceLoadPriorityHigh, WebURLRequest::RequestContextScript, true, |
- true}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityHigh, |
+ WebURLRequest::RequestContextScript, true, true, ReferrerPolicyDefault}, |
{"http://example.test/cat.js", "script", "text/coffeescript", "", |
- ResourceLoadPriorityUnresolved, WebURLRequest::RequestContextScript, |
- false, false}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityUnresolved, |
+ WebURLRequest::RequestContextScript, false, false, |
+ ReferrerPolicyDefault}, |
{"http://example.test/cat.css", "style", "text/css", "", |
- ResourceLoadPriorityVeryHigh, WebURLRequest::RequestContextStyle, true, |
- true}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityVeryHigh, |
+ WebURLRequest::RequestContextStyle, true, true, ReferrerPolicyDefault}, |
{"http://example.test/cat.css", "style", "text/sass", "", |
- ResourceLoadPriorityUnresolved, WebURLRequest::RequestContextStyle, |
- false, false}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityUnresolved, |
+ WebURLRequest::RequestContextStyle, false, false, ReferrerPolicyDefault}, |
{"http://example.test/cat.wav", "media", "audio/wav", "", |
- ResourceLoadPriorityLow, WebURLRequest::RequestContextVideo, true, true}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityLow, |
+ WebURLRequest::RequestContextVideo, true, true, ReferrerPolicyDefault}, |
{"http://example.test/cat.wav", "media", "audio/mp57", "", |
- ResourceLoadPriorityUnresolved, WebURLRequest::RequestContextVideo, |
- false, false}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityUnresolved, |
+ WebURLRequest::RequestContextVideo, false, false, ReferrerPolicyDefault}, |
{"http://example.test/cat.webm", "media", "video/webm", "", |
- ResourceLoadPriorityLow, WebURLRequest::RequestContextVideo, true, true}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityLow, |
+ WebURLRequest::RequestContextVideo, true, true, ReferrerPolicyDefault}, |
{"http://example.test/cat.mp199", "media", "video/mp199", "", |
- ResourceLoadPriorityUnresolved, WebURLRequest::RequestContextVideo, |
- false, false}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityUnresolved, |
+ WebURLRequest::RequestContextVideo, false, false, ReferrerPolicyDefault}, |
{"http://example.test/cat.vtt", "track", "text/vtt", "", |
- ResourceLoadPriorityLow, WebURLRequest::RequestContextTrack, true, true}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityLow, |
+ WebURLRequest::RequestContextTrack, true, true, ReferrerPolicyDefault}, |
{"http://example.test/cat.vtt", "track", "text/subtitlething", "", |
- ResourceLoadPriorityUnresolved, WebURLRequest::RequestContextTrack, |
- false, false}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityUnresolved, |
+ WebURLRequest::RequestContextTrack, false, false, ReferrerPolicyDefault}, |
{"http://example.test/cat.woff", "font", "font/woff2", "", |
- ResourceLoadPriorityVeryHigh, WebURLRequest::RequestContextFont, true, |
- true}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityVeryHigh, |
+ WebURLRequest::RequestContextFont, true, true, ReferrerPolicyDefault}, |
{"http://example.test/cat.woff", "font", "font/woff84", "", |
- ResourceLoadPriorityUnresolved, WebURLRequest::RequestContextFont, false, |
- false}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityUnresolved, |
+ WebURLRequest::RequestContextFont, false, false, ReferrerPolicyDefault}, |
{"http://example.test/cat.empty", "", "foo/bar", "", |
- ResourceLoadPriorityHigh, WebURLRequest::RequestContextSubresource, true, |
- true}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityHigh, |
+ WebURLRequest::RequestContextSubresource, true, true, |
+ ReferrerPolicyDefault}, |
{"http://example.test/cat.blob", "blabla", "foo/bar", "", |
- ResourceLoadPriorityLow, WebURLRequest::RequestContextSubresource, false, |
- false}, |
+ ReferrerPolicyDefault, ResourceLoadPriorityLow, |
+ WebURLRequest::RequestContextSubresource, false, false, |
+ ReferrerPolicyDefault}, |
// Media tests |
{"http://example.test/cat.gif", "image", "image/gif", |
- "(max-width: 600px)", ResourceLoadPriorityLow, |
- WebURLRequest::RequestContextImage, true, true}, |
+ "(max-width: 600px)", ReferrerPolicyDefault, ResourceLoadPriorityLow, |
+ WebURLRequest::RequestContextImage, true, true, ReferrerPolicyDefault}, |
{"http://example.test/cat.gif", "image", "image/gif", |
- "(max-width: 400px)", ResourceLoadPriorityUnresolved, |
- WebURLRequest::RequestContextImage, true, false}, |
+ "(max-width: 400px)", ReferrerPolicyDefault, |
+ ResourceLoadPriorityUnresolved, WebURLRequest::RequestContextImage, true, |
+ false, ReferrerPolicyDefault}, |
{"http://example.test/cat.gif", "image", "image/gif", |
- "(max-width: 600px)", ResourceLoadPriorityLow, |
- WebURLRequest::RequestContextImage, false, false}, |
+ "(max-width: 600px)", ReferrerPolicyDefault, ResourceLoadPriorityLow, |
+ WebURLRequest::RequestContextImage, false, false, ReferrerPolicyDefault}, |
+ // Referrer Policy |
+ {"http://example.test/cat.gif", "image", "image/gif", "", |
+ ReferrerPolicyOrigin, ResourceLoadPriorityLow, |
+ WebURLRequest::RequestContextImage, true, true, ReferrerPolicyOrigin}, |
+ {"http://example.test/cat.gif", "image", "image/gif", "", |
+ ReferrerPolicyOriginWhenCrossOrigin, ResourceLoadPriorityLow, |
+ WebURLRequest::RequestContextImage, true, true, |
+ ReferrerPolicyOriginWhenCrossOrigin}, |
+ {"http://example.test/cat.gif", "image", "image/gif", "", |
+ ReferrerPolicyNever, ResourceLoadPriorityLow, |
+ WebURLRequest::RequestContextImage, true, true, ReferrerPolicyNever}, |
}; |
// Test the cases with a single header |
@@ -186,7 +214,8 @@ TEST(LinkLoaderTest, Preload) { |
KURL hrefURL = KURL(KURL(), testCase.href); |
URLTestHelpers::registerMockedErrorURLLoad(hrefURL); |
loader->loadLink(LinkRelAttribute("preload"), CrossOriginAttributeNotSet, |
- testCase.type, testCase.as, testCase.media, hrefURL, |
+ testCase.type, testCase.as, testCase.media, |
+ testCase.referrerPolicy, hrefURL, |
dummyPageHolder->document(), NetworkHintsMock()); |
ASSERT_TRUE(dummyPageHolder->document().fetcher()); |
HeapListHashSet<Member<Resource>>* preloads = |
@@ -210,6 +239,10 @@ TEST(LinkLoaderTest, Preload) { |
EXPECT_EQ(testCase.priority, resource->resourceRequest().priority()); |
EXPECT_EQ(testCase.context, |
resource->resourceRequest().requestContext()); |
+ if (testCase.expectedReferrerPolicy != ReferrerPolicyDefault) { |
+ EXPECT_EQ(testCase.expectedReferrerPolicy, |
+ resource->resourceRequest().getReferrerPolicy()); |
+ } |
} |
} |
dummyPageHolder->document().fetcher()->clearPreloads(); |
@@ -245,7 +278,8 @@ TEST(LinkLoaderTest, DNSPrefetch) { |
NetworkHintsMock networkHints; |
loader->loadLink(LinkRelAttribute("dns-prefetch"), |
CrossOriginAttributeNotSet, String(), String(), String(), |
- hrefURL, dummyPageHolder->document(), networkHints); |
+ ReferrerPolicyDefault, hrefURL, |
+ dummyPageHolder->document(), networkHints); |
EXPECT_FALSE(networkHints.didPreconnect()); |
EXPECT_EQ(testCase.shouldLoad, networkHints.didDnsPrefetch()); |
} |
@@ -277,8 +311,8 @@ TEST(LinkLoaderTest, Preconnect) { |
testCase.href); |
NetworkHintsMock networkHints; |
loader->loadLink(LinkRelAttribute("preconnect"), testCase.crossOrigin, |
- String(), String(), String(), hrefURL, |
- dummyPageHolder->document(), networkHints); |
+ String(), String(), String(), ReferrerPolicyDefault, |
+ hrefURL, dummyPageHolder->document(), networkHints); |
EXPECT_EQ(testCase.shouldLoad, networkHints.didPreconnect()); |
EXPECT_EQ(testCase.isHTTPS, networkHints.isHTTPS()); |
EXPECT_EQ(testCase.isCrossOrigin, networkHints.isCrossOrigin()); |