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

Side by Side Diff: third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp

Issue 2383403002: Reflow comments in core/loader (Closed)
Patch Set: yhirano comments Created 4 years, 2 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2015, Google Inc. All rights reserved. 2 * Copyright (c) 2015, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 SubstituteData()); 114 SubstituteData());
115 childDocument = childFrame->document(); 115 childDocument = childFrame->document();
116 FrameFetchContext* childFetchContext = static_cast<FrameFetchContext*>( 116 FrameFetchContext* childFetchContext = static_cast<FrameFetchContext*>(
117 &childDocumentLoader->fetcher()->context()); 117 &childDocumentLoader->fetcher()->context());
118 FrameFetchContext::provideDocumentToContext(*childFetchContext, 118 FrameFetchContext::provideDocumentToContext(*childFetchContext,
119 childDocument.get()); 119 childDocument.get());
120 return childFetchContext; 120 return childFetchContext;
121 } 121 }
122 122
123 std::unique_ptr<DummyPageHolder> dummyPageHolder; 123 std::unique_ptr<DummyPageHolder> dummyPageHolder;
124 // We don't use the DocumentLoader directly in any tests, but need to keep it around as long 124 // We don't use the DocumentLoader directly in any tests, but need to keep it
125 // as the ResourceFetcher and Document live due to indirect usage. 125 // around as long as the ResourceFetcher and Document live due to indirect
126 // usage.
126 Persistent<DocumentLoader> documentLoader; 127 Persistent<DocumentLoader> documentLoader;
127 Persistent<Document> document; 128 Persistent<Document> document;
128 Persistent<FrameFetchContext> fetchContext; 129 Persistent<FrameFetchContext> fetchContext;
129 130
130 Persistent<StubFrameLoaderClientWithParent> childClient; 131 Persistent<StubFrameLoaderClientWithParent> childClient;
131 Persistent<LocalFrame> childFrame; 132 Persistent<LocalFrame> childFrame;
132 Persistent<DocumentLoader> childDocumentLoader; 133 Persistent<DocumentLoader> childDocumentLoader;
133 Persistent<Document> childDocument; 134 Persistent<Document> childDocument;
134 Persistent<DummyFrameOwner> owner; 135 Persistent<DummyFrameOwner> owner;
135 }; 136 };
136 137
137 // This test class sets up a mock frame loader client that expects a 138 // This test class sets up a mock frame loader client that expects a call to
138 // call to didDisplayContentWithCertificateErrors(). 139 // didDisplayContentWithCertificateErrors().
139 class FrameFetchContextDisplayedCertificateErrorsTest 140 class FrameFetchContextDisplayedCertificateErrorsTest
140 : public FrameFetchContextTest { 141 : public FrameFetchContextTest {
141 protected: 142 protected:
142 void SetUp() override { 143 void SetUp() override {
143 url = KURL(KURL(), "https://example.test/foo"); 144 url = KURL(KURL(), "https://example.test/foo");
144 mainResourceUrl = KURL(KURL(), "https://www.example.test"); 145 mainResourceUrl = KURL(KURL(), "https://www.example.test");
145 MockFrameLoaderClient* client = new MockFrameLoaderClient; 146 MockFrameLoaderClient* client = new MockFrameLoaderClient;
146 EXPECT_CALL(*client, didDisplayContentWithCertificateErrors(url)); 147 EXPECT_CALL(*client, didDisplayContentWithCertificateErrors(url));
147 dummyPageHolder = 148 dummyPageHolder =
148 DummyPageHolder::create(IntSize(500, 500), nullptr, client); 149 DummyPageHolder::create(IntSize(500, 500), nullptr, client);
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 fetchRequest.mutableResourceRequest().setRequestContext( 212 fetchRequest.mutableResourceRequest().setRequestContext(
212 WebURLRequest::RequestContextScript); 213 WebURLRequest::RequestContextScript);
213 fetchRequest.mutableResourceRequest().setFrameType(frameType); 214 fetchRequest.mutableResourceRequest().setFrameType(frameType);
214 215
215 fetchContext->upgradeInsecureRequest(fetchRequest.mutableResourceRequest()); 216 fetchContext->upgradeInsecureRequest(fetchRequest.mutableResourceRequest());
216 217
217 EXPECT_EQ(shouldPrefer ? String("1") : String(), 218 EXPECT_EQ(shouldPrefer ? String("1") : String(),
218 fetchRequest.resourceRequest().httpHeaderField( 219 fetchRequest.resourceRequest().httpHeaderField(
219 HTTPNames::Upgrade_Insecure_Requests)); 220 HTTPNames::Upgrade_Insecure_Requests));
220 221
221 // Calling upgradeInsecureRequest more than once shouldn't affect the header . 222 // Calling upgradeInsecureRequest more than once shouldn't affect the
223 // header.
222 if (shouldPrefer) { 224 if (shouldPrefer) {
223 fetchContext->upgradeInsecureRequest( 225 fetchContext->upgradeInsecureRequest(
224 fetchRequest.mutableResourceRequest()); 226 fetchRequest.mutableResourceRequest());
225 EXPECT_EQ("1", fetchRequest.resourceRequest().httpHeaderField( 227 EXPECT_EQ("1", fetchRequest.resourceRequest().httpHeaderField(
226 HTTPNames::Upgrade_Insecure_Requests)); 228 HTTPNames::Upgrade_Insecure_Requests));
227 } 229 }
228 } 230 }
229 231
230 RefPtr<SecurityOrigin> exampleOrigin; 232 RefPtr<SecurityOrigin> exampleOrigin;
231 RefPtr<SecurityOrigin> secureOrigin; 233 RefPtr<SecurityOrigin> secureOrigin;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 WebURLRequest::FrameTypeTopLevel, test.original); 273 WebURLRequest::FrameTypeTopLevel, test.original);
272 expectUpgrade(test.original, WebURLRequest::RequestContextScript, 274 expectUpgrade(test.original, WebURLRequest::RequestContextScript,
273 WebURLRequest::FrameTypeAuxiliary, test.original); 275 WebURLRequest::FrameTypeAuxiliary, test.original);
274 276
275 // unless the request context is RequestContextForm. 277 // unless the request context is RequestContextForm.
276 expectUpgrade(test.original, WebURLRequest::RequestContextForm, 278 expectUpgrade(test.original, WebURLRequest::RequestContextForm,
277 WebURLRequest::FrameTypeTopLevel, test.upgraded); 279 WebURLRequest::FrameTypeTopLevel, test.upgraded);
278 expectUpgrade(test.original, WebURLRequest::RequestContextForm, 280 expectUpgrade(test.original, WebURLRequest::RequestContextForm,
279 WebURLRequest::FrameTypeAuxiliary, test.upgraded); 281 WebURLRequest::FrameTypeAuxiliary, test.upgraded);
280 282
281 // Or unless the host of the resource is in the document's InsecureNavigatio nsSet: 283 // Or unless the host of the resource is in the document's
284 // InsecureNavigationsSet:
282 document->addInsecureNavigationUpgrade( 285 document->addInsecureNavigationUpgrade(
283 exampleOrigin->host().impl()->hash()); 286 exampleOrigin->host().impl()->hash());
284 expectUpgrade(test.original, WebURLRequest::RequestContextScript, 287 expectUpgrade(test.original, WebURLRequest::RequestContextScript,
285 WebURLRequest::FrameTypeTopLevel, test.upgraded); 288 WebURLRequest::FrameTypeTopLevel, test.upgraded);
286 expectUpgrade(test.original, WebURLRequest::RequestContextScript, 289 expectUpgrade(test.original, WebURLRequest::RequestContextScript,
287 WebURLRequest::FrameTypeAuxiliary, test.upgraded); 290 WebURLRequest::FrameTypeAuxiliary, test.upgraded);
288 } 291 }
289 } 292 }
290 293
291 TEST_F(FrameFetchContextUpgradeTest, DoNotUpgradeInsecureResourceRequests) { 294 TEST_F(FrameFetchContextUpgradeTest, DoNotUpgradeInsecureResourceRequests) {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 {"http://example.test/page.html", WebURLRequest::FrameTypeNested, true}, 328 {"http://example.test/page.html", WebURLRequest::FrameTypeNested, true},
326 {"http://example.test/page.html", WebURLRequest::FrameTypeNone, false}, 329 {"http://example.test/page.html", WebURLRequest::FrameTypeNone, false},
327 {"http://example.test/page.html", WebURLRequest::FrameTypeTopLevel, true}, 330 {"http://example.test/page.html", WebURLRequest::FrameTypeTopLevel, true},
328 {"https://example.test/page.html", WebURLRequest::FrameTypeAuxiliary, 331 {"https://example.test/page.html", WebURLRequest::FrameTypeAuxiliary,
329 true}, 332 true},
330 {"https://example.test/page.html", WebURLRequest::FrameTypeNested, true}, 333 {"https://example.test/page.html", WebURLRequest::FrameTypeNested, true},
331 {"https://example.test/page.html", WebURLRequest::FrameTypeNone, false}, 334 {"https://example.test/page.html", WebURLRequest::FrameTypeNone, false},
332 {"https://example.test/page.html", WebURLRequest::FrameTypeTopLevel, 335 {"https://example.test/page.html", WebURLRequest::FrameTypeTopLevel,
333 true}}; 336 true}};
334 337
335 // This should work correctly both when the FrameFetchContext has a Document, and 338 // This should work correctly both when the FrameFetchContext has a Document,
336 // when it doesn't (e.g. during main frame navigations), so run through the te sts 339 // and when it doesn't (e.g. during main frame navigations), so run through
337 // both before and after providing a document to the context. 340 // the tests both before and after providing a document to the context.
338 for (const auto& test : tests) { 341 for (const auto& test : tests) {
339 document->setInsecureRequestPolicy(kLeaveInsecureRequestsAlone); 342 document->setInsecureRequestPolicy(kLeaveInsecureRequestsAlone);
340 expectHTTPSHeader(test.toRequest, test.frameType, test.shouldPrefer); 343 expectHTTPSHeader(test.toRequest, test.frameType, test.shouldPrefer);
341 344
342 document->setInsecureRequestPolicy(kUpgradeInsecureRequests); 345 document->setInsecureRequestPolicy(kUpgradeInsecureRequests);
343 expectHTTPSHeader(test.toRequest, test.frameType, test.shouldPrefer); 346 expectHTTPSHeader(test.toRequest, test.frameType, test.shouldPrefer);
344 } 347 }
345 348
346 FrameFetchContext::provideDocumentToContext(*fetchContext, document.get()); 349 FrameFetchContext::provideDocumentToContext(*fetchContext, document.get());
347 350
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 // No document origin => unique request origin 504 // No document origin => unique request origin
502 {"", false, "", WebURLRequest::FrameTypeNone, "null"}, 505 {"", false, "", WebURLRequest::FrameTypeNone, "null"},
503 {"", true, "", WebURLRequest::FrameTypeNone, "null"}, 506 {"", true, "", WebURLRequest::FrameTypeNone, "null"},
504 507
505 // Document origin => request origin 508 // Document origin => request origin
506 {"http://example.test", false, "", WebURLRequest::FrameTypeNone, 509 {"http://example.test", false, "", WebURLRequest::FrameTypeNone,
507 "http://example.test"}, 510 "http://example.test"},
508 {"http://example.test", true, "", WebURLRequest::FrameTypeNone, 511 {"http://example.test", true, "", WebURLRequest::FrameTypeNone,
509 "http://example.test"}, 512 "http://example.test"},
510 513
511 // If the request already has a requestor origin, then 'populateRequestDat a' leaves it alone: 514 // If the request already has a requestor origin, then
515 // 'populateRequestData' leaves it alone:
512 {"http://example.test", false, "http://not-example.test", 516 {"http://example.test", false, "http://not-example.test",
513 WebURLRequest::FrameTypeNone, "http://not-example.test"}, 517 WebURLRequest::FrameTypeNone, "http://not-example.test"},
514 {"http://example.test", true, "http://not-example.test", 518 {"http://example.test", true, "http://not-example.test",
515 WebURLRequest::FrameTypeNone, "http://not-example.test"}, 519 WebURLRequest::FrameTypeNone, "http://not-example.test"},
516 520
517 // If the request's frame type is not 'none', then 'populateRequestData' l eaves it alone: 521 // If the request's frame type is not 'none', then 'populateRequestData'
522 // leaves it alone:
518 {"http://example.test", false, "", WebURLRequest::FrameTypeTopLevel, ""}, 523 {"http://example.test", false, "", WebURLRequest::FrameTypeTopLevel, ""},
519 {"http://example.test", false, "", WebURLRequest::FrameTypeAuxiliary, ""}, 524 {"http://example.test", false, "", WebURLRequest::FrameTypeAuxiliary, ""},
520 {"http://example.test", false, "", WebURLRequest::FrameTypeNested, ""}, 525 {"http://example.test", false, "", WebURLRequest::FrameTypeNested, ""},
521 }; 526 };
522 527
523 for (const auto& test : cases) { 528 for (const auto& test : cases) {
524 SCOPED_TRACE(::testing::Message() << test.documentURL << " => " 529 SCOPED_TRACE(::testing::Message() << test.documentURL << " => "
525 << test.serializedOrigin); 530 << test.serializedOrigin);
526 // Set up a new document to ensure sandbox flags are cleared: 531 // Set up a new document to ensure sandbox flags are cleared:
527 dummyPageHolder = DummyPageHolder::create(IntSize(500, 500)); 532 dummyPageHolder = DummyPageHolder::create(IntSize(500, 500));
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 fetchContext->addAdditionalRequestHeaders(resourceRequest, FetchMainResource); 598 fetchContext->addAdditionalRequestHeaders(resourceRequest, FetchMainResource);
594 EXPECT_EQ("on", resourceRequest.httpHeaderField("Save-Data")); 599 EXPECT_EQ("on", resourceRequest.httpHeaderField("Save-Data"));
595 } 600 }
596 601
597 TEST_F(FrameFetchContextTest, DisabledDataSaver) { 602 TEST_F(FrameFetchContextTest, DisabledDataSaver) {
598 ResourceRequest resourceRequest("http://www.example.com"); 603 ResourceRequest resourceRequest("http://www.example.com");
599 fetchContext->addAdditionalRequestHeaders(resourceRequest, FetchMainResource); 604 fetchContext->addAdditionalRequestHeaders(resourceRequest, FetchMainResource);
600 EXPECT_EQ(String(), resourceRequest.httpHeaderField("Save-Data")); 605 EXPECT_EQ(String(), resourceRequest.httpHeaderField("Save-Data"));
601 } 606 }
602 607
603 // Tests that when a resource with certificate errors is loaded from the 608 // Tests that when a resource with certificate errors is loaded from the memory
604 // memory cache, the embedder is notified. 609 // cache, the embedder is notified.
605 TEST_F(FrameFetchContextDisplayedCertificateErrorsTest, 610 TEST_F(FrameFetchContextDisplayedCertificateErrorsTest,
606 MemoryCacheCertificateError) { 611 MemoryCacheCertificateError) {
607 ResourceRequest resourceRequest(url); 612 ResourceRequest resourceRequest(url);
608 ResourceResponse response; 613 ResourceResponse response;
609 response.setURL(url); 614 response.setURL(url);
610 response.setHasMajorCertificateErrors(true); 615 response.setHasMajorCertificateErrors(true);
611 Resource* resource = Resource::create(resourceRequest, Resource::Image); 616 Resource* resource = Resource::create(resourceRequest, Resource::Image);
612 resource->setResponse(response); 617 resource->setResponse(response);
613 fetchContext->dispatchDidLoadResourceFromMemoryCache( 618 fetchContext->dispatchDidLoadResourceFromMemoryCache(
614 createUniqueIdentifier(), resource, WebURLRequest::FrameTypeNone, 619 createUniqueIdentifier(), resource, WebURLRequest::FrameTypeNone,
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 fetchContext->addAdditionalRequestHeaders(mainRequest, FetchMainResource); 738 fetchContext->addAdditionalRequestHeaders(mainRequest, FetchMainResource);
734 EXPECT_EQ(test.isExternalExpectation, mainRequest.isExternalRequest()); 739 EXPECT_EQ(test.isExternalExpectation, mainRequest.isExternalRequest());
735 740
736 ResourceRequest subRequest(test.url); 741 ResourceRequest subRequest(test.url);
737 fetchContext->addAdditionalRequestHeaders(subRequest, FetchSubresource); 742 fetchContext->addAdditionalRequestHeaders(subRequest, FetchSubresource);
738 EXPECT_EQ(test.isExternalExpectation, subRequest.isExternalRequest()); 743 EXPECT_EQ(test.isExternalExpectation, subRequest.isExternalRequest());
739 } 744 }
740 } 745 }
741 746
742 } // namespace blink 747 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698