Changeset 260596 in webkit


Ignore:
Timestamp:
Apr 23, 2020 1:37:54 PM (4 years ago)
Author:
commit-queue@webkit.org
Message:

Move applyUserAgentIfNeeded calls to a more central place
https://bugs.webkit.org/show_bug.cgi?id=209587

Patch by Rob Buis <rbuis@igalia.com> on 2020-04-23
Reviewed by Darin Adler.

Make main resource loads stop calling applyUserAgentIfNeeded
and instead do it in the CachedResourceLoader.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::addExtraFieldsToRequest):
(WebCore::FrameLoader::loadResourceSynchronously):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::createRequest):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::updateHTTPRequestHeaders):
(WebCore::CachedResourceLoader::requestResource):

  • loader/cache/CachedResourceLoader.h:
  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::updateReferrerAndOriginHeaders):
(WebCore::CachedResourceRequest::updateUserAgentHeader):
(WebCore::CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders): Deleted.

  • loader/cache/CachedResourceRequest.h:
Location:
trunk/Source/WebCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r260588 r260596  
     12020-04-23  Rob Buis  <rbuis@igalia.com>
     2
     3        Move applyUserAgentIfNeeded calls to a more central place
     4        https://bugs.webkit.org/show_bug.cgi?id=209587
     5
     6        Reviewed by Darin Adler.
     7
     8        Make main resource loads stop calling applyUserAgentIfNeeded
     9        and instead do it in the CachedResourceLoader.
     10
     11        * loader/FrameLoader.cpp:
     12        (WebCore::FrameLoader::addExtraFieldsToRequest):
     13        (WebCore::FrameLoader::loadResourceSynchronously):
     14        * loader/appcache/ApplicationCacheGroup.cpp:
     15        (WebCore::ApplicationCacheGroup::createRequest):
     16        * loader/cache/CachedResourceLoader.cpp:
     17        (WebCore::CachedResourceLoader::updateHTTPRequestHeaders):
     18        (WebCore::CachedResourceLoader::requestResource):
     19        * loader/cache/CachedResourceLoader.h:
     20        * loader/cache/CachedResourceRequest.cpp:
     21        (WebCore::CachedResourceRequest::updateReferrerAndOriginHeaders):
     22        (WebCore::CachedResourceRequest::updateUserAgentHeader):
     23        (WebCore::CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders): Deleted.
     24        * loader/cache/CachedResourceRequest.h:
     25
    1262020-04-23  Kenneth Russell  <kbr@chromium.org>
    227
  • trunk/Source/WebCore/loader/FrameLoader.cpp

    r260511 r260596  
    29632963        request.setPriority(m_overrideResourceLoadPriorityForTesting.value());
    29642964
    2965     applyUserAgentIfNeeded(request);
    2966 
    29672965    // Only set fallback array if it's still empty (later attempts may be incorrect, see bug 117818).
    29682966    if (request.responseContentDispositionEncodingFallbackArray().isEmpty()) {
     
    30663064   
    30673065    addExtraFieldsToRequest(initialRequest, IsMainResource::No);
     3066
     3067    applyUserAgentIfNeeded(initialRequest);
    30683068
    30693069    unsigned long identifier = 0;   
  • trunk/Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp

    r260511 r260596  
    464464{
    465465    ResourceRequest request { WTFMove(url) };
    466     m_frame->loader().applyUserAgentIfNeeded(request);
    467466    request.setHTTPHeaderField(HTTPHeaderName::CacheControl, HTTPHeaderValues::maxAge0());
    468467
  • trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp

    r260511 r260596  
    735735}
    736736
    737 void CachedResourceLoader::updateHTTPRequestHeaders(CachedResource::Type type, CachedResourceRequest& request)
     737void CachedResourceLoader::updateHTTPRequestHeaders(FrameLoader& frameLoader, CachedResource::Type type, CachedResourceRequest& request)
    738738{
    739739    // Implementing steps 7 to 12 of https://fetch.spec.whatwg.org/#http-network-or-cache-fetch
    740740
    741741    // FIXME: We should reconcile handling of MainResource with other resources.
    742     if (type != CachedResource::Type::MainResource) {
    743         // In some cases we may try to load resources in frameless documents. Such loads always fail.
    744         // FIXME: We shouldn't need to do the check on frame.
    745         if (auto* frame = this->frame())
    746             request.updateReferrerOriginAndUserAgentHeaders(frame->loader());
    747     }
     742    if (type != CachedResource::Type::MainResource)
     743        request.updateReferrerAndOriginHeaders(frameLoader);
     744    request.updateUserAgentHeader(frameLoader);
    748745
    749746    request.updateAccordingCacheMode();
     
    910907
    911908    if (request.resourceRequest().url().protocolIsInHTTPFamily())
    912         updateHTTPRequestHeaders(type, request);
     909        updateHTTPRequestHeaders(frame.loader(), type, request);
    913910
    914911    auto& memoryCache = MemoryCache::singleton();
  • trunk/Source/WebCore/loader/cache/CachedResourceLoader.h

    r260511 r260596  
    176176
    177177    void prepareFetch(CachedResource::Type, CachedResourceRequest&);
    178     void updateHTTPRequestHeaders(CachedResource::Type, CachedResourceRequest&);
     178    void updateHTTPRequestHeaders(FrameLoader&, CachedResource::Type, CachedResourceRequest&);
    179179
    180180    bool canRequest(CachedResource::Type, const URL&, const CachedResourceRequest&, ForPreload);
  • trunk/Source/WebCore/loader/cache/CachedResourceRequest.cpp

    r260511 r260596  
    222222}
    223223
    224 void CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders(FrameLoader& frameLoader)
     224void CachedResourceRequest::updateReferrerAndOriginHeaders(FrameLoader& frameLoader)
    225225{
    226226    // Implementing step 9 to 11 of https://fetch.spec.whatwg.org/#http-network-or-cache-fetch as of 16 March 2018
     
    229229        outgoingReferrer = m_resourceRequest.httpReferrer();
    230230    updateRequestReferrer(m_resourceRequest, m_options.referrerPolicy, outgoingReferrer);
    231     frameLoader.applyUserAgentIfNeeded(m_resourceRequest);
    232231
    233232    if (doesRequestNeedHTTPOriginHeader(m_resourceRequest)) {
     
    238237}
    239238
     239void CachedResourceRequest::updateUserAgentHeader(FrameLoader& frameLoader)
     240{
     241    frameLoader.applyUserAgentIfNeeded(m_resourceRequest);
     242}
     243
    240244bool isRequestCrossOrigin(SecurityOrigin* origin, const URL& requestURL, const ResourceLoaderOptions& options)
    241245{
  • trunk/Source/WebCore/loader/cache/CachedResourceRequest.h

    r260511 r260596  
    7979
    8080    void updateReferrerPolicy(ReferrerPolicy);
    81     void updateReferrerOriginAndUserAgentHeaders(FrameLoader&);
     81    void updateReferrerAndOriginHeaders(FrameLoader&);
     82    void updateUserAgentHeader(FrameLoader&);
    8283    void upgradeInsecureRequestIfNeeded(Document&);
    8384    void setAcceptHeaderIfNone(CachedResource::Type);
Note: See TracChangeset for help on using the changeset viewer.