Title: [260511] trunk/Source/WebCore
Revision
260511
Author
cdu...@apple.com
Date
2020-04-22 08:37:29 -0700 (Wed, 22 Apr 2020)

Log Message

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

Modified Paths

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();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to