Diff
Modified: trunk/Source/WebCore/ChangeLog (260510 => 260511)
--- trunk/Source/WebCore/ChangeLog 2020-04-22 14:42:38 UTC (rev 260510)
+++ trunk/Source/WebCore/ChangeLog 2020-04-22 15:37:29 UTC (rev 260511)
@@ -1,3 +1,16 @@
+2020-04-22 Chris Dumez <cdu...@apple.com>
+
+ Unreviewed, reverting r259116.
+
+ Broke login flow on some apple-internal sites
+ (rdar://problem/61905262)
+
+ Reverted changeset:
+
+ "Move applyUserAgentIfNeeded calls to a more central place"
+ https://bugs.webkit.org/show_bug.cgi?id=209587
+ https://trac.webkit.org/changeset/259116
+
2020-04-22 Zalan Bujtas <za...@apple.com>
[LFC][TFC] Introduce TableFormattingContext::computeAndDistributeExtraVerticalSpace
Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (260510 => 260511)
--- trunk/Source/WebCore/loader/FrameLoader.cpp 2020-04-22 14:42:38 UTC (rev 260510)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp 2020-04-22 15:37:29 UTC (rev 260511)
@@ -2962,6 +2962,8 @@
if (m_overrideResourceLoadPriorityForTesting)
request.setPriority(m_overrideResourceLoadPriorityForTesting.value());
+ applyUserAgentIfNeeded(request);
+
// Only set fallback array if it's still empty (later attempts may be incorrect, see bug 117818).
if (request.responseContentDispositionEncodingFallbackArray().isEmpty()) {
// Always try UTF-8. If that fails, try frame encoding (if any) and then the default.
Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp (260510 => 260511)
--- trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp 2020-04-22 14:42:38 UTC (rev 260510)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp 2020-04-22 15:37:29 UTC (rev 260511)
@@ -463,6 +463,7 @@
ResourceRequest ApplicationCacheGroup::createRequest(URL&& url, ApplicationCacheResource* resource)
{
ResourceRequest request { WTFMove(url) };
+ m_frame->loader().applyUserAgentIfNeeded(request);
request.setHTTPHeaderField(HTTPHeaderName::CacheControl, HTTPHeaderValues::maxAge0());
if (resource) {
Modified: trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp (260510 => 260511)
--- trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp 2020-04-22 14:42:38 UTC (rev 260510)
+++ trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp 2020-04-22 15:37:29 UTC (rev 260511)
@@ -734,14 +734,17 @@
// FIXME: Decide whether to support client hints
}
-void CachedResourceLoader::updateHTTPRequestHeaders(FrameLoader& frameLoader, CachedResource::Type type, CachedResourceRequest& request)
+void CachedResourceLoader::updateHTTPRequestHeaders(CachedResource::Type type, CachedResourceRequest& request)
{
// Implementing steps 7 to 12 of https://fetch.spec.whatwg.org/#http-network-or-cache-fetch
// FIXME: We should reconcile handling of MainResource with other resources.
- if (type != CachedResource::Type::MainResource)
- request.updateReferrerAndOriginHeaders(frameLoader);
- request.updateUserAgentHeader(frameLoader);
+ if (type != CachedResource::Type::MainResource) {
+ // In some cases we may try to load resources in frameless documents. Such loads always fail.
+ // FIXME: We shouldn't need to do the check on frame.
+ if (auto* frame = this->frame())
+ request.updateReferrerOriginAndUserAgentHeaders(frame->loader());
+ }
request.updateAccordingCacheMode();
request.updateAcceptEncodingHeader();
@@ -906,7 +909,7 @@
InitiatorContext initiatorContext = request.options().initiatorContext;
if (request.resourceRequest().url().protocolIsInHTTPFamily())
- updateHTTPRequestHeaders(frame.loader(), type, request);
+ updateHTTPRequestHeaders(type, request);
auto& memoryCache = MemoryCache::singleton();
if (request.allowsCaching() && memoryCache.disabled())
Modified: trunk/Source/WebCore/loader/cache/CachedResourceLoader.h (260510 => 260511)
--- trunk/Source/WebCore/loader/cache/CachedResourceLoader.h 2020-04-22 14:42:38 UTC (rev 260510)
+++ trunk/Source/WebCore/loader/cache/CachedResourceLoader.h 2020-04-22 15:37:29 UTC (rev 260511)
@@ -175,7 +175,7 @@
CachedResourceHandle<CachedResource> loadResource(CachedResource::Type, PAL::SessionID, CachedResourceRequest&&, const CookieJar&);
void prepareFetch(CachedResource::Type, CachedResourceRequest&);
- void updateHTTPRequestHeaders(FrameLoader&, CachedResource::Type, CachedResourceRequest&);
+ void updateHTTPRequestHeaders(CachedResource::Type, CachedResourceRequest&);
bool canRequest(CachedResource::Type, const URL&, const CachedResourceRequest&, ForPreload);
Modified: trunk/Source/WebCore/loader/cache/CachedResourceRequest.cpp (260510 => 260511)
--- trunk/Source/WebCore/loader/cache/CachedResourceRequest.cpp 2020-04-22 14:42:38 UTC (rev 260510)
+++ trunk/Source/WebCore/loader/cache/CachedResourceRequest.cpp 2020-04-22 15:37:29 UTC (rev 260511)
@@ -221,7 +221,7 @@
m_options.referrerPolicy = defaultPolicy;
}
-void CachedResourceRequest::updateReferrerAndOriginHeaders(FrameLoader& frameLoader)
+void CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders(FrameLoader& frameLoader)
{
// Implementing step 9 to 11 of https://fetch.spec.whatwg.org/#http-network-or-cache-fetch as of 16 March 2018
String outgoingReferrer = frameLoader.outgoingReferrer();
@@ -228,6 +228,7 @@
if (m_resourceRequest.hasHTTPReferrer())
outgoingReferrer = m_resourceRequest.httpReferrer();
updateRequestReferrer(m_resourceRequest, m_options.referrerPolicy, outgoingReferrer);
+ frameLoader.applyUserAgentIfNeeded(m_resourceRequest);
if (doesRequestNeedHTTPOriginHeader(m_resourceRequest)) {
auto outgoingOrigin = SecurityOrigin::createFromString(outgoingReferrer);
@@ -236,11 +237,6 @@
}
}
-void CachedResourceRequest::updateUserAgentHeader(FrameLoader& frameLoader)
-{
- frameLoader.applyUserAgentIfNeeded(m_resourceRequest);
-}
-
bool isRequestCrossOrigin(SecurityOrigin* origin, const URL& requestURL, const ResourceLoaderOptions& options)
{
if (!origin)
Modified: trunk/Source/WebCore/loader/cache/CachedResourceRequest.h (260510 => 260511)
--- trunk/Source/WebCore/loader/cache/CachedResourceRequest.h 2020-04-22 14:42:38 UTC (rev 260510)
+++ trunk/Source/WebCore/loader/cache/CachedResourceRequest.h 2020-04-22 15:37:29 UTC (rev 260511)
@@ -78,8 +78,7 @@
void updateForAccessControl(Document&);
void updateReferrerPolicy(ReferrerPolicy);
- void updateReferrerAndOriginHeaders(FrameLoader&);
- void updateUserAgentHeader(FrameLoader&);
+ void updateReferrerOriginAndUserAgentHeaders(FrameLoader&);
void upgradeInsecureRequestIfNeeded(Document&);
void setAcceptHeaderIfNone(CachedResource::Type);
void updateAccordingCacheMode();