| Index: Source/core/fetch/ResourceFetcherTest.cpp
|
| diff --git a/Source/core/fetch/ResourceFetcherTest.cpp b/Source/core/fetch/ResourceFetcherTest.cpp
|
| index 95ab72163abdfa479d43b8d57a70bdd0624ab848..1527e1d66d2a9322980e639f27435569b495f21c 100644
|
| --- a/Source/core/fetch/ResourceFetcherTest.cpp
|
| +++ b/Source/core/fetch/ResourceFetcherTest.cpp
|
| @@ -81,7 +81,7 @@ protected:
|
| fetchRequest.mutableResourceRequest().setRequestContext(requestContext);
|
| fetchRequest.mutableResourceRequest().setFrameType(frameType);
|
|
|
| - fetcher->maybeUpgradeInsecureRequestURL(fetchRequest);
|
| + fetcher->upgradeInsecureRequest(fetchRequest);
|
|
|
| EXPECT_STREQ(expectedURL.string().utf8().data(), fetchRequest.resourceRequest().url().string().utf8().data());
|
| EXPECT_EQ(expectedURL.protocol(), fetchRequest.resourceRequest().url().protocol());
|
| @@ -91,6 +91,20 @@ protected:
|
| EXPECT_EQ(expectedURL.path(), fetchRequest.resourceRequest().url().path());
|
| }
|
|
|
| + void expectPreferHeader(const char* input, WebURLRequest::FrameType frameType, bool shouldPrefer)
|
| + {
|
| + KURL inputURL(ParsedURLString, input);
|
| +
|
| + FetchRequest fetchRequest = FetchRequest(ResourceRequest(inputURL), FetchInitiatorInfo());
|
| + fetchRequest.mutableResourceRequest().setRequestContext(WebURLRequest::RequestContextScript);
|
| + fetchRequest.mutableResourceRequest().setFrameType(frameType);
|
| +
|
| + fetcher->upgradeInsecureRequest(fetchRequest);
|
| +
|
| + EXPECT_STREQ(shouldPrefer ? "return=secure-representation" : "",
|
| + fetchRequest.resourceRequest().httpHeaderField("Prefer").utf8().data());
|
| + }
|
| +
|
| KURL secureURL;
|
| RefPtr<SecurityOrigin> exampleOrigin;
|
| RefPtr<SecurityOrigin> secureOrigin;
|
| @@ -194,4 +208,33 @@ TEST_F(ResourceFetcherTest, MonitorInsecureResourceRequests)
|
| expectUpgrade("ftp://example.test:1212/image.png", "ftp://example.test:1212/image.png");
|
| }
|
|
|
| +TEST_F(ResourceFetcherTest, SendPreferHeader)
|
| +{
|
| + struct TestCase {
|
| + const char* toRequest;
|
| + WebURLRequest::FrameType frameType;
|
| + bool shouldPrefer;
|
| + } tests[] = {
|
| + { "http://example.test/page.html", WebURLRequest::FrameTypeAuxiliary, true },
|
| + { "http://example.test/page.html", WebURLRequest::FrameTypeNested, true },
|
| + { "http://example.test/page.html", WebURLRequest::FrameTypeNone, false },
|
| + { "http://example.test/page.html", WebURLRequest::FrameTypeTopLevel, true },
|
| + { "https://example.test/page.html", WebURLRequest::FrameTypeAuxiliary, false },
|
| + { "https://example.test/page.html", WebURLRequest::FrameTypeNested, false },
|
| + { "https://example.test/page.html", WebURLRequest::FrameTypeNone, false },
|
| + { "https://example.test/page.html", WebURLRequest::FrameTypeTopLevel, false }
|
| + };
|
| +
|
| + for (auto test : tests) {
|
| + document->setInsecureContentPolicy(SecurityContext::InsecureContentDoNotUpgrade);
|
| + expectPreferHeader(test.toRequest, test.frameType, test.shouldPrefer);
|
| +
|
| + document->setInsecureContentPolicy(SecurityContext::InsecureContentUpgrade);
|
| + expectPreferHeader(test.toRequest, test.frameType, test.shouldPrefer);
|
| +
|
| + document->setInsecureContentPolicy(SecurityContext::InsecureContentMonitor);
|
| + expectPreferHeader(test.toRequest, test.frameType, test.shouldPrefer);
|
| + }
|
| +}
|
| +
|
| } // namespace
|
|
|