Title: [259997] trunk/Source/WebCore
Revision
259997
Author
[email protected]
Date
2020-04-13 01:04:39 -0700 (Mon, 13 Apr 2020)

Log Message

Remove addExtraFieldsToSubresourceRequest
https://bugs.webkit.org/show_bug.cgi?id=210407

Patch by Rob Buis <[email protected]> on 2020-04-13
Reviewed by Darin Adler.

Remove addExtraFieldsToSubresourceRequest since it can be replaced by
calling addExtraFieldsToRequest. The loadType parameter is not taken
into account by defaultRequestCachingPolicy so FrameLoadType::Standard
rather than m_loadType is passed.

This patch also replaces the isMainResource boolean parameter with an enum.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::addExtraFieldsToRequest):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::FrameLoader::addExtraFieldsToSubresourceRequest): Deleted.
* loader/FrameLoader.h:
* loader/PingLoader.cpp:
(WebCore::PingLoader::loadImage):
(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (259996 => 259997)


--- trunk/Source/WebCore/ChangeLog	2020-04-13 07:15:26 UTC (rev 259996)
+++ trunk/Source/WebCore/ChangeLog	2020-04-13 08:04:39 UTC (rev 259997)
@@ -1,3 +1,33 @@
+2020-04-13  Rob Buis  <[email protected]>
+
+        Remove addExtraFieldsToSubresourceRequest
+        https://bugs.webkit.org/show_bug.cgi?id=210407
+
+        Reviewed by Darin Adler.
+
+        Remove addExtraFieldsToSubresourceRequest since it can be replaced by
+        calling addExtraFieldsToRequest. The loadType parameter is not taken
+        into account by defaultRequestCachingPolicy so FrameLoadType::Standard
+        rather than m_loadType is passed.
+
+        This patch also replaces the isMainResource boolean parameter with an enum.
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::loadURL):
+        (WebCore::FrameLoader::load):
+        (WebCore::FrameLoader::addExtraFieldsToRequest):
+        (WebCore::FrameLoader::loadPostRequest):
+        (WebCore::FrameLoader::loadResourceSynchronously):
+        (WebCore::FrameLoader::loadDifferentDocumentItem):
+        (WebCore::FrameLoader::addExtraFieldsToSubresourceRequest): Deleted.
+        * loader/FrameLoader.h:
+        * loader/PingLoader.cpp:
+        (WebCore::PingLoader::loadImage):
+        (WebCore::PingLoader::sendPing):
+        (WebCore::PingLoader::sendViolationReport):
+        * loader/cache/CachedResource.cpp:
+        (WebCore::CachedResource::load):
+
 2020-04-12  Darin Adler  <[email protected]>
 
         Fix a few mispellings of descendant and propagation

Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (259996 => 259997)


--- trunk/Source/WebCore/loader/FrameLoader.cpp	2020-04-13 07:15:26 UTC (rev 259996)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp	2020-04-13 08:04:39 UTC (rev 259997)
@@ -1354,7 +1354,7 @@
     if (!referrer.isEmpty())
         request.setHTTPReferrer(referrer);
 
-    addExtraFieldsToRequest(request, newLoadType, true);
+    addExtraFieldsToRequest(request, IsMainResource::Yes, newLoadType);
     if (isReload(newLoadType))
         request.setCachePolicy(ResourceRequestCachePolicy::ReloadIgnoringCacheData);
 
@@ -1515,7 +1515,7 @@
     ResourceRequest& r = newDocumentLoader.request();
     // FIXME: Using m_loadType seems wrong here.
     // If we are only preparing to load the main resource, that is previous load's load type!
-    addExtraFieldsToRequest(r, m_loadType, true);
+    addExtraFieldsToRequest(r, IsMainResource::Yes, m_loadType);
     FrameLoadType type;
 
     if (shouldTreatURLAsSameAsCurrent(newDocumentLoader.originalRequest().url())) {
@@ -2869,11 +2869,6 @@
     m_client->detachedFromParent3();
 }
 
-void FrameLoader::addExtraFieldsToSubresourceRequest(ResourceRequest& request)
-{
-    addExtraFieldsToRequest(request, m_loadType, false);
-}
-
 ResourceRequestCachePolicy FrameLoader::defaultRequestCachingPolicy(const ResourceRequest& request, FrameLoadType loadType, bool isMainResource)
 {
     if (m_overrideCachePolicyForTesting)
@@ -2906,7 +2901,7 @@
     return ResourceRequestCachePolicy::UseProtocolCachePolicy;
 }
 
-void FrameLoader::addExtraFieldsToRequest(ResourceRequest& request, FrameLoadType loadType, bool isMainResource)
+void FrameLoader::addExtraFieldsToRequest(ResourceRequest& request, IsMainResource mainResource, FrameLoadType loadType)
 {
     // If the request came from a previous process due to process-swap-on-navigation then we should not modify the request.
     if (m_currentLoadContinuingState == LoadContinuingState::ContinuingWithRequest)
@@ -2914,6 +2909,7 @@
 
     // Don't set the cookie policy URL if it's already been set.
     // But make sure to set it on all requests regardless of protocol, as it has significance beyond the cookie policy (<rdar://problem/6616664>).
+    bool isMainResource = mainResource == IsMainResource::Yes;
     bool isMainFrameMainResource = isMainResource && m_frame.isMainFrame();
     if (request.firstPartyForCookies().isEmpty()) {
         if (isMainFrameMainResource)
@@ -3008,7 +3004,7 @@
     workingResourceRequest.setHTTPMethod("POST");
     workingResourceRequest.setHTTPBody(inRequest.httpBody());
     workingResourceRequest.setHTTPContentType(contentType);
-    addExtraFieldsToRequest(workingResourceRequest, loadType, true);
+    addExtraFieldsToRequest(workingResourceRequest, IsMainResource::Yes, loadType);
 
     if (Document* document = m_frame.document())
         document->contentSecurityPolicy()->upgradeInsecureRequestIfNeeded(workingResourceRequest, ContentSecurityPolicy::InsecureRequestType::Load);
@@ -3061,7 +3057,7 @@
 
     initialRequest.setFirstPartyForCookies(m_frame.mainFrame().loader().documentLoader()->request().url());
     
-    addExtraFieldsToSubresourceRequest(initialRequest);
+    addExtraFieldsToRequest(initialRequest, IsMainResource::No);
 
     unsigned long identifier = 0;    
     ResourceRequest newRequest(initialRequest);
@@ -3763,7 +3759,7 @@
 
         // Make sure to add extra fields to the request after the Origin header is added for the FormData case.
         // See https://bugs.webkit.org/show_bug.cgi?id=22194 for more discussion.
-        addExtraFieldsToRequest(request, loadType, true);
+        addExtraFieldsToRequest(request, IsMainResource::Yes, loadType);
         
         // FIXME: Slight hack to test if the NSURL cache contains the page we're going to.
         // We want to know this before talking to the policy delegate, since it affects whether 
@@ -3808,7 +3804,7 @@
             ASSERT_NOT_REACHED();
         }
 
-        addExtraFieldsToRequest(request, loadType, true);
+        addExtraFieldsToRequest(request, IsMainResource::Yes, loadType);
 
         ResourceRequest requestForOriginalURL(request);
         requestForOriginalURL.setURL(itemOriginalURL);

Modified: trunk/Source/WebCore/loader/FrameLoader.h (259996 => 259997)


--- trunk/Source/WebCore/loader/FrameLoader.h	2020-04-13 07:15:26 UTC (rev 259996)
+++ trunk/Source/WebCore/loader/FrameLoader.h	2020-04-13 08:04:39 UTC (rev 259997)
@@ -91,6 +91,7 @@
 enum class NavigationPolicyDecision : uint8_t;
 enum class ShouldTreatAsContinuingLoad : bool;
 enum class UsedLegacyTLS : bool;
+enum class IsMainResource : bool { No, Yes };
 
 struct WindowFeatures;
 
@@ -220,8 +221,6 @@
     WEBCORE_EXPORT void detachFromParent();
     void detachViewsAndDocumentLoader();
 
-    void addExtraFieldsToSubresourceRequest(ResourceRequest&);
-    
     static void addSameSiteInfoToRequestIfNeeded(ResourceRequest&, const Document* initiator = nullptr);
 
     const FrameLoaderClient& client() const { return m_client.get(); }
@@ -330,6 +329,9 @@
     void setAlwaysAllowLocalWebarchive(bool alwaysAllowLocalWebarchive) { m_alwaysAllowLocalWebarchive = alwaysAllowLocalWebarchive; }
     bool alwaysAllowLocalWebarchive() const { return m_alwaysAllowLocalWebarchive; }
 
+    // For subresource requests the FrameLoadType parameter has no effect and can be skipped.
+    void addExtraFieldsToRequest(ResourceRequest&, IsMainResource, FrameLoadType = FrameLoadType::Standard);
+
 private:
     enum FormSubmissionCacheLoadPolicy {
         MayAttemptCacheOnlyLoadForFormSubmissionItem,
@@ -349,7 +351,6 @@
     void updateFirstPartyForCookies();
     void setFirstPartyForCookies(const URL&);
 
-    void addExtraFieldsToRequest(ResourceRequest&, FrameLoadType, bool isMainResource);
     ResourceRequestCachePolicy defaultRequestCachingPolicy(const ResourceRequest&, FrameLoadType, bool isMainResource);
 
     void clearProvisionalLoad();

Modified: trunk/Source/WebCore/loader/PingLoader.cpp (259996 => 259997)


--- trunk/Source/WebCore/loader/PingLoader.cpp	2020-04-13 07:15:26 UTC (rev 259996)
+++ trunk/Source/WebCore/loader/PingLoader.cpp	2020-04-13 08:04:39 UTC (rev 259997)
@@ -105,7 +105,7 @@
     String referrer = SecurityPolicy::generateReferrerHeader(document.referrerPolicy(), request.url(), frame.loader().outgoingReferrer());
     if (!referrer.isEmpty())
         request.setHTTPReferrer(referrer);
-    frame.loader().addExtraFieldsToSubresourceRequest(request);
+    frame.loader().addExtraFieldsToRequest(request, IsMainResource::No);
 
     startPingLoad(frame, request, WTFMove(originalRequestHeader), ShouldFollowRedirects::Yes, ContentSecurityPolicyImposition::DoPolicyCheck, ReferrerPolicy::EmptyString);
 }
@@ -140,7 +140,7 @@
         auto origin = SecurityPolicy::generateOriginHeader(document.referrerPolicy(), request.url(), document.securityOrigin());
         request.setHTTPOrigin(origin);
     }
-    frame.loader().addExtraFieldsToSubresourceRequest(request);
+    frame.loader().addExtraFieldsToRequest(request, IsMainResource::No);
     request.setHTTPHeaderField(HTTPHeaderName::PingTo, destinationURL);
     if (!SecurityPolicy::shouldHideReferrer(pingURL, frame.loader().outgoingReferrer()))
         request.setHTTPHeaderField(HTTPHeaderName::PingFrom, document.url());
@@ -180,7 +180,7 @@
 
     HTTPHeaderMap originalRequestHeader = request.httpHeaderFields();
 
-    frame.loader().addExtraFieldsToSubresourceRequest(request);
+    frame.loader().addExtraFieldsToRequest(request, IsMainResource::No);
 
     String referrer = SecurityPolicy::generateReferrerHeader(document.referrerPolicy(), reportURL, frame.loader().outgoingReferrer());
     if (!referrer.isEmpty())

Modified: trunk/Source/WebCore/loader/cache/CachedResource.cpp (259996 => 259997)


--- trunk/Source/WebCore/loader/cache/CachedResource.cpp	2020-04-13 07:15:26 UTC (rev 259996)
+++ trunk/Source/WebCore/loader/cache/CachedResource.cpp	2020-04-13 08:04:39 UTC (rev 259997)
@@ -284,9 +284,8 @@
     // Navigation algorithm is setting up the request before sending it to CachedResourceLoader?CachedResource.
     // So no need for extra fields for MainResource.
     if (type() != Type::MainResource)
-        frameLoader.addExtraFieldsToSubresourceRequest(m_resourceRequest);
+        frameLoader.addExtraFieldsToRequest(m_resourceRequest, IsMainResource::No);
 
-
     // FIXME: It's unfortunate that the cache layer and below get to know anything about fragment identifiers.
     // We should look into removing the expectation of that knowledge from the platform network stacks.
     ResourceRequest request(m_resourceRequest);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to