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