Changeset 286655 in webkit


Ignore:
Timestamp:
Dec 8, 2021 7:59:47 AM (7 months ago)
Author:
youenn@apple.com
Message:

Safari Bug "no-cache" network error
https://bugs.webkit.org/show_bug.cgi?id=233916

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/wpt/service-workers/cache-control-request.html

Remove Cache-Control header when going the service worker road if it is added by the network code path and not the application.

  • loader/CrossOriginAccessControl.cpp:

(WebCore::httpHeadersToKeepFromCleaning):
(WebCore::cleanHTTPRequestHeadersForAccessControl):

  • loader/CrossOriginAccessControl.h:
  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::removeHTTPHeaderField):

  • platform/network/ResourceRequestBase.h:

LayoutTests:

  • http/wpt/service-workers/cache-control-request-expected.txt: Added.
  • http/wpt/service-workers/cache-control-request-worker.js: Added.

(async doTest):

  • http/wpt/service-workers/cache-control-request.html: Added.
  • http/wpt/service-workers/resources/cross-origin-allow.py: Added.

(main):

Location:
trunk
Files:
4 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r286654 r286655  
     12021-12-08  Youenn Fablet  <youenn@apple.com>
     2
     3        Safari Bug "no-cache" network error
     4        https://bugs.webkit.org/show_bug.cgi?id=233916
     5
     6        Reviewed by Chris Dumez.
     7
     8        * http/wpt/service-workers/cache-control-request-expected.txt: Added.
     9        * http/wpt/service-workers/cache-control-request-worker.js: Added.
     10        (async doTest):
     11        * http/wpt/service-workers/cache-control-request.html: Added.
     12        * http/wpt/service-workers/resources/cross-origin-allow.py: Added.
     13        (main):
     14
    1152021-12-08  Vitaly Dyachkov  <obyknovenius@me.com>
    216
  • trunk/Source/WebCore/ChangeLog

    r286654 r286655  
     12021-12-08  Youenn Fablet  <youenn@apple.com>
     2
     3        Safari Bug "no-cache" network error
     4        https://bugs.webkit.org/show_bug.cgi?id=233916
     5
     6        Reviewed by Chris Dumez.
     7
     8        Test: http/wpt/service-workers/cache-control-request.html
     9
     10        Remove Cache-Control header when going the service worker road if it is added by the network code path and not the application.
     11
     12        * loader/CrossOriginAccessControl.cpp:
     13        (WebCore::httpHeadersToKeepFromCleaning):
     14        (WebCore::cleanHTTPRequestHeadersForAccessControl):
     15        * loader/CrossOriginAccessControl.h:
     16        * platform/network/ResourceRequestBase.cpp:
     17        (WebCore::ResourceRequestBase::removeHTTPHeaderField):
     18        * platform/network/ResourceRequestBase.h:
     19
    1202021-12-08  Vitaly Dyachkov  <obyknovenius@me.com>
    221
  • trunk/Source/WebCore/loader/CrossOriginAccessControl.cpp

    r285145 r286655  
    190190    if (headers.contains(HTTPHeaderName::AcceptEncoding))
    191191        headersToKeep.add(HTTPHeadersToKeepFromCleaning::AcceptEncoding);
     192    if (headers.contains(HTTPHeaderName::CacheControl))
     193        headersToKeep.add(HTTPHeadersToKeepFromCleaning::CacheControl);
    192194    return headersToKeep;
    193195}
     
    209211    if (!headersToKeep.contains(HTTPHeadersToKeepFromCleaning::AcceptEncoding))
    210212        request.clearHTTPAcceptEncoding();
     213    if (!headersToKeep.contains(HTTPHeadersToKeepFromCleaning::CacheControl))
     214        request.removeHTTPHeaderField(HTTPHeaderName::CacheControl);
    211215}
    212216
  • trunk/Source/WebCore/loader/CrossOriginAccessControl.h

    r280953 r286655  
    6868    Origin = 1 << 2,
    6969    UserAgent = 1 << 3,
    70     AcceptEncoding = 1 << 4
     70    AcceptEncoding = 1 << 4,
     71    CacheControl = 1 << 5
    7172};
    7273
     
    103104        WebCore::HTTPHeadersToKeepFromCleaning::Origin,
    104105        WebCore::HTTPHeadersToKeepFromCleaning::UserAgent,
    105         WebCore::HTTPHeadersToKeepFromCleaning::AcceptEncoding
     106        WebCore::HTTPHeadersToKeepFromCleaning::AcceptEncoding,
     107        WebCore::HTTPHeadersToKeepFromCleaning::CacheControl
    106108    >;
    107109};
  • trunk/Source/WebCore/platform/network/ResourceRequestBase.cpp

    r285980 r286655  
    611611}
    612612
     613void ResourceRequestBase::removeHTTPHeaderField(HTTPHeaderName name)
     614{
     615    updateResourceRequest();
     616
     617    m_httpHeaderFields.remove(name);
     618
     619    m_platformRequestUpdated = false;
     620}
     621
    613622#if USE(SYSTEM_PREVIEW)
    614623
  • trunk/Source/WebCore/platform/network/ResourceRequestBase.h

    r285980 r286655  
    107107    WEBCORE_EXPORT void addHTTPHeaderFieldIfNotPresent(HTTPHeaderName, const String&);
    108108    void removeHTTPHeaderField(const String& name);
     109    void removeHTTPHeaderField(HTTPHeaderName);
    109110
    110111    WEBCORE_EXPORT bool hasHTTPHeaderField(HTTPHeaderName) const;
Note: See TracChangeset for help on using the changeset viewer.