Changeset 240014 in webkit


Ignore:
Timestamp:
Jan 15, 2019, 3:31:33 PM (7 years ago)
Author:
achristensen@apple.com
Message:

Stop using CookiesStrategy
https://bugs.webkit.org/show_bug.cgi?id=161106

Reviewed by Don Olmstead and Antti Koivisto.

Source/WebCore:

CookiesStrategy is process-global and makes it difficult to switch NetworkStorageSession from having a process-global map.
Instead, use a CookieJar object in the WebProcess. This has the additional benefit of making it more clear which code
is used in the WebProcess and which code is used in the NetworkProcess.

  • Modules/beacon/NavigatorBeacon.cpp:
  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::processBuffer):

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::clientHandshakeRequest const):
(WebCore::WebSocketHandshake::clientHandshakeCookieRequestHeaderFieldProxy const):

  • WebCore.xcodeproj/project.pbxproj:
  • css/StyleRuleImport.cpp:

(WebCore::StyleRuleImport::requestStyleSheet):

  • dom/Document.cpp:

(WebCore::Document::cookie):
(WebCore::Document::setCookie):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerGetRawCookies const):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::getCookies):
(WebCore::InspectorPageAgent::deleteCookie):

  • loader/CookieJar.cpp:

(WebCore::CookieJar::shouldIncludeSecureCookies):
(WebCore::CookieJar::sameSiteInfo):
(WebCore::CookieJar::create):
(WebCore::CookieJar::cookies const):
(WebCore::CookieJar::cookieRequestHeaderFieldProxy):
(WebCore::CookieJar::setCookies):
(WebCore::CookieJar::cookiesEnabled const):
(WebCore::CookieJar::cookieRequestHeaderFieldValue const):
(WebCore::CookieJar::getRawCookies const):
(WebCore::CookieJar::deleteCookie):
(WebCore::shouldIncludeSecureCookies): Deleted.
(WebCore::sameSiteInfo): Deleted.
(WebCore::cookies): Deleted.
(WebCore::cookieRequestHeaderFieldProxy): Deleted.
(WebCore::setCookies): Deleted.
(WebCore::cookiesEnabled): Deleted.
(WebCore::cookieRequestHeaderFieldValue): Deleted.
(WebCore::getRawCookies): Deleted.
(WebCore::deleteCookie): Deleted.

  • loader/CookieJar.h:
  • loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):

  • loader/cache/CachedApplicationManifest.cpp:

(WebCore::CachedApplicationManifest::CachedApplicationManifest):

  • loader/cache/CachedApplicationManifest.h:
  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):

  • loader/cache/CachedCSSStyleSheet.h:
  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::CachedFont):

  • loader/cache/CachedFont.h:
  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::CachedImage):

  • loader/cache/CachedImage.h:
  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::CachedRawResource):

  • loader/cache/CachedRawResource.h:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::setResponse):
(WebCore::CachedResource::varyHeaderValuesMatch):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::cookieJar const):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::createResource):
(WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
(WebCore::CachedResourceLoader::updateCachedResourceWithCurrentRequest):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::revalidateResource):
(WebCore::CachedResourceLoader::loadResource):

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

(WebCore::CachedSVGDocument::CachedSVGDocument):

  • loader/cache/CachedSVGDocument.h:
  • loader/cache/CachedSVGFont.cpp:

(WebCore::CachedSVGFont::CachedSVGFont):

  • loader/cache/CachedSVGFont.h:
  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::CachedScript):

  • loader/cache/CachedScript.h:
  • loader/cache/CachedTextTrack.cpp:

(WebCore::CachedTextTrack::CachedTextTrack):

  • loader/cache/CachedTextTrack.h:
  • loader/cache/CachedXSLStyleSheet.cpp:

(WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):

  • loader/cache/CachedXSLStyleSheet.h:
  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::addImageToCache):

  • loader/cache/MemoryCache.h:
  • page/Navigator.cpp:

(WebCore::Navigator::cookieEnabled const):

  • page/Page.cpp:

(WebCore::Page::Page):

  • page/Page.h:

(WebCore::Page::cookieJar):

  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:
  • platform/CookiesStrategy.h: Removed.
  • platform/PlatformStrategies.h:

(WebCore::PlatformStrategies::cookiesStrategy): Deleted.

  • platform/network/CacheValidation.cpp:

(WebCore::cookieRequestHeaderFieldValue):
(WebCore::collectVaryingRequestHeaders):
(WebCore::verifyVaryingRequestHeaders):

  • platform/network/CacheValidation.h:
  • platform/network/CookieRequestHeaderFieldProxy.h:
  • platform/network/cf/NetworkStorageSessionCFNetWin.cpp:
  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:
  • platform/network/curl/ResourceHandleCurl.cpp:
  • rendering/RenderSnapshottedPlugIn.cpp:

(WebCore::RenderSnapshottedPlugIn::updateSnapshot):

  • testing/Internals.cpp:

(WebCore::Internals::getCookies const):

Source/WebKit:

  • NetworkProcess/NetworkProcessPlatformStrategies.cpp:

(WebKit::NetworkProcessPlatformStrategies::createCookiesStrategy): Deleted.

  • NetworkProcess/NetworkProcessPlatformStrategies.h:
  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::getCookiesForFrame):
(WebKit::WebAutomationSessionProxy::deleteCookie):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::cookiesForURL):
(WebKit::PluginView::setCookiesForURL):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::createCookiesStrategy): Deleted.
(WebKit::WebPlatformStrategies::cookiesForDOM): Deleted.
(WebKit::WebPlatformStrategies::setCookiesFromDOM): Deleted.
(WebKit::WebPlatformStrategies::cookiesEnabled): Deleted.
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue): Deleted.
(WebKit::WebPlatformStrategies::getRawCookies): Deleted.
(WebKit::WebPlatformStrategies::deleteCookie): Deleted.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
  • WebProcess/WebPage/WebCookieJar.cpp: Added.

(WebKit::WebCookieJar::cookies const):
(WebKit::WebCookieJar::setCookies):
(WebKit::WebCookieJar::cookiesEnabled const):
(WebKit::WebCookieJar::cookieRequestHeaderFieldValue const):
(WebKit::WebCookieJar::getRawCookies const):
(WebKit::WebCookieJar::deleteCookie):

  • WebProcess/WebPage/WebCookieJar.h: Added.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_shouldAttachDrawingAreaOnPageTransition):

Source/WebKitLegacy/mac:

  • Misc/WebCache.mm:

(+[WebCache addImageToCache:forURL:forFrame:]):

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::getCookies):
(WebKit::NetscapePluginInstanceProxy::setCookies):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView getVariable:forURL:value:length:]):
(-[WebNetscapePluginView setVariable:forURL:value:length:]):

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::createCookiesStrategy): Deleted.
(WebPlatformStrategies::cookiesForDOM): Deleted.
(WebPlatformStrategies::setCookiesFromDOM): Deleted.
(WebPlatformStrategies::cookiesEnabled): Deleted.
(WebPlatformStrategies::cookieRequestHeaderFieldValue): Deleted.
(WebPlatformStrategies::getRawCookies): Deleted.
(WebPlatformStrategies::deleteCookie): Deleted.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKitLegacy/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::getValueForURL):
(WebCore::PluginView::setValueForURL):

  • WebCoreSupport/WebPlatformStrategies.cpp:

(WebPlatformStrategies::createBlobRegistry):
(WebPlatformStrategies::createCookiesStrategy): Deleted.
(WebPlatformStrategies::cookiesForDOM): Deleted.
(WebPlatformStrategies::setCookiesFromDOM): Deleted.
(WebPlatformStrategies::cookiesEnabled): Deleted.
(WebPlatformStrategies::cookieRequestHeaderFieldValue): Deleted.
(WebPlatformStrategies::getRawCookies): Deleted.
(WebPlatformStrategies::deleteCookie): Deleted.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebView.cpp:

(WebView::initWithFrame):

Location:
trunk/Source
Files:
2 added
1 deleted
78 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r240012 r240014  
     12019-01-15  Alex Christensen  <achristensen@webkit.org>
     2
     3        Stop using CookiesStrategy
     4        https://bugs.webkit.org/show_bug.cgi?id=161106
     5
     6        Reviewed by Don Olmstead and Antti Koivisto.
     7
     8        CookiesStrategy is process-global and makes it difficult to switch NetworkStorageSession from having a process-global map.
     9        Instead, use a CookieJar object in the WebProcess.  This has the additional benefit of making it more clear which code
     10        is used in the WebProcess and which code is used in the NetworkProcess.
     11
     12        * Modules/beacon/NavigatorBeacon.cpp:
     13        * Modules/websockets/WebSocketChannel.cpp:
     14        (WebCore::WebSocketChannel::processBuffer):
     15        * Modules/websockets/WebSocketHandshake.cpp:
     16        (WebCore::WebSocketHandshake::clientHandshakeRequest const):
     17        (WebCore::WebSocketHandshake::clientHandshakeCookieRequestHeaderFieldProxy const):
     18        * WebCore.xcodeproj/project.pbxproj:
     19        * css/StyleRuleImport.cpp:
     20        (WebCore::StyleRuleImport::requestStyleSheet):
     21        * dom/Document.cpp:
     22        (WebCore::Document::cookie):
     23        (WebCore::Document::setCookie):
     24        * html/HTMLMediaElement.cpp:
     25        (WebCore::HTMLMediaElement::mediaPlayerGetRawCookies const):
     26        * inspector/agents/InspectorPageAgent.cpp:
     27        (WebCore::InspectorPageAgent::getCookies):
     28        (WebCore::InspectorPageAgent::deleteCookie):
     29        * loader/CookieJar.cpp:
     30        (WebCore::CookieJar::shouldIncludeSecureCookies):
     31        (WebCore::CookieJar::sameSiteInfo):
     32        (WebCore::CookieJar::create):
     33        (WebCore::CookieJar::cookies const):
     34        (WebCore::CookieJar::cookieRequestHeaderFieldProxy):
     35        (WebCore::CookieJar::setCookies):
     36        (WebCore::CookieJar::cookiesEnabled const):
     37        (WebCore::CookieJar::cookieRequestHeaderFieldValue const):
     38        (WebCore::CookieJar::getRawCookies const):
     39        (WebCore::CookieJar::deleteCookie):
     40        (WebCore::shouldIncludeSecureCookies): Deleted.
     41        (WebCore::sameSiteInfo): Deleted.
     42        (WebCore::cookies): Deleted.
     43        (WebCore::cookieRequestHeaderFieldProxy): Deleted.
     44        (WebCore::setCookies): Deleted.
     45        (WebCore::cookiesEnabled): Deleted.
     46        (WebCore::cookieRequestHeaderFieldValue): Deleted.
     47        (WebCore::getRawCookies): Deleted.
     48        (WebCore::deleteCookie): Deleted.
     49        * loader/CookieJar.h:
     50        * loader/EmptyClients.cpp:
     51        (WebCore::pageConfigurationWithEmptyClients):
     52        * loader/ImageLoader.cpp:
     53        (WebCore::ImageLoader::updateFromElement):
     54        * loader/cache/CachedApplicationManifest.cpp:
     55        (WebCore::CachedApplicationManifest::CachedApplicationManifest):
     56        * loader/cache/CachedApplicationManifest.h:
     57        * loader/cache/CachedCSSStyleSheet.cpp:
     58        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
     59        * loader/cache/CachedCSSStyleSheet.h:
     60        * loader/cache/CachedFont.cpp:
     61        (WebCore::CachedFont::CachedFont):
     62        * loader/cache/CachedFont.h:
     63        * loader/cache/CachedImage.cpp:
     64        (WebCore::CachedImage::CachedImage):
     65        * loader/cache/CachedImage.h:
     66        * loader/cache/CachedRawResource.cpp:
     67        (WebCore::CachedRawResource::CachedRawResource):
     68        * loader/cache/CachedRawResource.h:
     69        * loader/cache/CachedResource.cpp:
     70        (WebCore::CachedResource::CachedResource):
     71        (WebCore::CachedResource::setResponse):
     72        (WebCore::CachedResource::varyHeaderValuesMatch):
     73        * loader/cache/CachedResource.h:
     74        (WebCore::CachedResource::cookieJar const):
     75        * loader/cache/CachedResourceLoader.cpp:
     76        (WebCore::createResource):
     77        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
     78        (WebCore::CachedResourceLoader::updateCachedResourceWithCurrentRequest):
     79        (WebCore::CachedResourceLoader::requestResource):
     80        (WebCore::CachedResourceLoader::revalidateResource):
     81        (WebCore::CachedResourceLoader::loadResource):
     82        * loader/cache/CachedResourceLoader.h:
     83        * loader/cache/CachedSVGDocument.cpp:
     84        (WebCore::CachedSVGDocument::CachedSVGDocument):
     85        * loader/cache/CachedSVGDocument.h:
     86        * loader/cache/CachedSVGFont.cpp:
     87        (WebCore::CachedSVGFont::CachedSVGFont):
     88        * loader/cache/CachedSVGFont.h:
     89        * loader/cache/CachedScript.cpp:
     90        (WebCore::CachedScript::CachedScript):
     91        * loader/cache/CachedScript.h:
     92        * loader/cache/CachedTextTrack.cpp:
     93        (WebCore::CachedTextTrack::CachedTextTrack):
     94        * loader/cache/CachedTextTrack.h:
     95        * loader/cache/CachedXSLStyleSheet.cpp:
     96        (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
     97        * loader/cache/CachedXSLStyleSheet.h:
     98        * loader/cache/MemoryCache.cpp:
     99        (WebCore::MemoryCache::addImageToCache):
     100        * loader/cache/MemoryCache.h:
     101        * page/Navigator.cpp:
     102        (WebCore::Navigator::cookieEnabled const):
     103        * page/Page.cpp:
     104        (WebCore::Page::Page):
     105        * page/Page.h:
     106        (WebCore::Page::cookieJar):
     107        * page/PageConfiguration.cpp:
     108        (WebCore::PageConfiguration::PageConfiguration):
     109        * page/PageConfiguration.h:
     110        * platform/CookiesStrategy.h: Removed.
     111        * platform/PlatformStrategies.h:
     112        (WebCore::PlatformStrategies::cookiesStrategy): Deleted.
     113        * platform/network/CacheValidation.cpp:
     114        (WebCore::cookieRequestHeaderFieldValue):
     115        (WebCore::collectVaryingRequestHeaders):
     116        (WebCore::verifyVaryingRequestHeaders):
     117        * platform/network/CacheValidation.h:
     118        * platform/network/CookieRequestHeaderFieldProxy.h:
     119        * platform/network/cf/NetworkStorageSessionCFNetWin.cpp:
     120        * platform/network/cocoa/NetworkStorageSessionCocoa.mm:
     121        * platform/network/curl/ResourceHandleCurl.cpp:
     122        * rendering/RenderSnapshottedPlugIn.cpp:
     123        (WebCore::RenderSnapshottedPlugIn::updateSnapshot):
     124        * testing/Internals.cpp:
     125        (WebCore::Internals::getCookies const):
     126
    11272019-01-15  Simon Fraser  <simon.fraser@apple.com>
    2128
  • trunk/Source/WebCore/Modules/beacon/NavigatorBeacon.cpp

    r239427 r240014  
    3333#include "HTTPParsers.h"
    3434#include "Navigator.h"
     35#include "Page.h"
    3536#include <wtf/URL.h>
    3637
  • trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp

    r230875 r240014  
    451451            String serverSetCookie = m_handshake->serverSetCookie();
    452452            if (!serverSetCookie.isEmpty()) {
    453                 if (m_document && cookiesEnabled(*m_document))
    454                     setCookies(*m_document, m_handshake->httpURLForAuthenticationAndCookies(), serverSetCookie);
     453                if (m_document && m_document->page() && m_document->page()->cookieJar().cookiesEnabled(*m_document))
     454                    m_document->page()->cookieJar().setCookies(*m_document, m_handshake->httpURLForAuthenticationAndCookies(), serverSetCookie);
    455455            }
    456456            LOG(Network, "WebSocketChannel %p Connected", this);
  • trunk/Source/WebCore/Modules/websockets/WebSocketHandshake.cpp

    r239427 r240014  
    243243
    244244    URL url = httpURLForAuthenticationAndCookies();
    245     if (m_allowCookies && m_document) {
     245    if (m_allowCookies && m_document && m_document->page()) {
    246246        RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(InspectorInstrumentation::hasFrontends());
    247         String cookie = cookieRequestHeaderFieldValue(*m_document, url);
     247        String cookie = m_document->page()->cookieJar().cookieRequestHeaderFieldValue(*m_document, url);
    248248        if (!cookie.isEmpty())
    249249            request.setHTTPHeaderField(HTTPHeaderName::Cookie, cookie);
     
    269269    if (!m_document || !m_allowCookies)
    270270        return WTF::nullopt;
    271     return cookieRequestHeaderFieldProxy(*m_document, httpURLForAuthenticationAndCookies());
     271    return CookieJar::cookieRequestHeaderFieldProxy(*m_document, httpURLForAuthenticationAndCookies());
    272272}
    273273
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r240005 r240014  
    10141014                33503C9A10179A74003B47E1 /* NotificationClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 33503C9910179A74003B47E1 /* NotificationClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
    10151015                33503CA410179AD7003B47E1 /* JSNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 33503CA010179AD7003B47E1 /* JSNotification.h */; settings = {ATTRIBUTES = (Private, ); }; };
    1016                 339B5B63131DAA3200F48D02 /* CookiesStrategy.h in Headers */ = {isa = PBXBuildFile; fileRef = 339B5B62131DAA3200F48D02 /* CookiesStrategy.h */; settings = {ATTRIBUTES = (Private, ); }; };
    10171016                33D0212D131DB37B004091A8 /* CookieStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = E13F01EA1270E10D00DFBA71 /* CookieStorage.h */; settings = {ATTRIBUTES = (Private, ); }; };
    10181017                3717D7E817ECC591003C276D /* extract-localizable-strings.pl in Copy Scripts */ = {isa = PBXBuildFile; fileRef = 3717D7E517ECC3A6003C276D /* extract-localizable-strings.pl */; };
     
    71757174                33503CA010179AD7003B47E1 /* JSNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSNotification.h; sourceTree = "<group>"; };
    71767175                33503CC61017A1B1003B47E1 /* Notification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Notification.cpp; sourceTree = "<group>"; };
    7177                 339B5B62131DAA3200F48D02 /* CookiesStrategy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CookiesStrategy.h; sourceTree = "<group>"; };
    71787176                3662F984047CEDBE5DDDAFAA /* RenderMathMLMenclose.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLMenclose.cpp; sourceTree = "<group>"; };
    71797177                37119A7920CCB610002C6DC9 /* WebKitTargetConditionals.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = WebKitTargetConditionals.xcconfig; sourceTree = "<group>"; };
     
    2527825276                                311C08BC18E35D6800B65615 /* ControlStates.h */,
    2527925277                                D8B6152E1032495100C8554A /* Cookie.h */,
    25280                                 339B5B62131DAA3200F48D02 /* CookiesStrategy.h */,
    2528125278                                862F129D18C1572C005C54AF /* CountedUserActivity.h */,
    2528225279                                46C696CA1E7205E400597937 /* CPUMonitor.cpp */,
     
    2858328580                                E1424C94164B52C800F32D40 /* CookieJar.h in Headers */,
    2858428581                                7A5699702086C619000E0433 /* CookieRequestHeaderFieldProxy.h in Headers */,
    28585                                 339B5B63131DAA3200F48D02 /* CookiesStrategy.h in Headers */,
    2858628582                                33D0212D131DB37B004091A8 /* CookieStorage.h in Headers */,
    2858728583                                5120BBAF1F1CECE700EFEBF1 /* CookieStorageObserver.h in Headers */,
  • trunk/Source/WebCore/css/StyleRuleImport.cpp

    r239427 r240014  
    9696    if (!m_parentStyleSheet)
    9797        return;
    98     Document* document = m_parentStyleSheet->singleOwnerDocument();
     98    auto* document = m_parentStyleSheet->singleOwnerDocument();
    9999    if (!document)
     100        return;
     101    auto* page = document->page();
     102    if (!page)
    100103        return;
    101104
     
    142145        request.setOptions(WTFMove(options));
    143146
    144         m_cachedSheet = document->cachedResourceLoader().requestUserCSSStyleSheet(WTFMove(request));
     147        m_cachedSheet = document->cachedResourceLoader().requestUserCSSStyleSheet(*page, WTFMove(request));
    145148    } else {
    146149        auto options = request.options();
  • trunk/Source/WebCore/dom/Document.cpp

    r240011 r240014  
    48734873        return String();
    48744874
    4875     if (!isDOMCookieCacheValid())
    4876         setCachedDOMCookies(cookies(*this, cookieURL));
     4875    if (!isDOMCookieCacheValid() && page())
     4876        setCachedDOMCookies(page()->cookieJar().cookies(*this, cookieURL));
    48774877
    48784878    return String { cachedDOMCookies() };
     
    48954895
    48964896    invalidateDOMCookieCache();
    4897     setCookies(*this, cookieURL, value);
     4897    if (page())
     4898        page()->cookieJar().setCookies(*this, cookieURL, value);
    48984899    return { };
    48994900}
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r239640 r240014  
    70997099bool HTMLMediaElement::mediaPlayerGetRawCookies(const URL& url, Vector<Cookie>& cookies) const
    71007100{
    7101     return getRawCookies(document(), url, cookies);
     7101    if (auto* page = document().page())
     7102        return page->cookieJar().getRawCookies(document(), url, cookies);
     7103    return false;
    71027104}
    71037105#endif
  • trunk/Source/WebCore/inspector/agents/InspectorPageAgent.cpp

    r239904 r240014  
    440440    for (Frame* frame = &mainFrame(); frame; frame = frame->tree().traverseNext()) {
    441441        Document* document = frame->document();
    442         if (!document)
     442        if (!document || !document->page())
    443443            continue;
    444444
    445445        for (auto& url : allResourcesURLsForFrame(frame)) {
    446446            Vector<Cookie> docCookiesList;
    447             rawCookiesImplemented = getRawCookies(*document, URL({ }, url), docCookiesList);
     447            rawCookiesImplemented = document->page()->cookieJar().getRawCookies(*document, URL({ }, url), docCookiesList);
    448448
    449449            if (!rawCookiesImplemented) {
     
    470470    URL parsedURL({ }, url);
    471471    for (Frame* frame = &m_page.mainFrame(); frame; frame = frame->tree().traverseNext()) {
    472         if (auto* document = frame->document())
    473             WebCore::deleteCookie(*document, parsedURL, cookieName);
     472        if (auto* document = frame->document()) {
     473            if (auto* page = document->page())
     474                page->cookieJar().deleteCookie(*document, parsedURL, cookieName);
     475        }
    474476    }
    475477}
  • trunk/Source/WebCore/loader/CookieJar.cpp

    r239737 r240014  
    2828
    2929#include "CookieRequestHeaderFieldProxy.h"
    30 #include "CookiesStrategy.h"
    3130#include "Document.h"
    3231#include "DocumentLoader.h"
     
    4241namespace WebCore {
    4342
    44 static IncludeSecureCookies shouldIncludeSecureCookies(const Document& document, const URL& url)
     43IncludeSecureCookies CookieJar::shouldIncludeSecureCookies(const Document& document, const URL& url)
    4544{
    4645    return (url.protocolIs("https") && !document.foundMixedContent().contains(SecurityContext::MixedContentType::Active)) ? IncludeSecureCookies::Yes : IncludeSecureCookies::No;
    4746}
    4847
    49 static inline SameSiteInfo sameSiteInfo(const Document& document)
     48SameSiteInfo CookieJar::sameSiteInfo(const Document& document)
    5049{
    5150    if (auto* loader = document.loader())
     
    5453}
    5554
    56 String cookies(Document& document, const URL& url)
     55Ref<CookieJar> CookieJar::create()
     56{
     57    return adoptRef(*new CookieJar);
     58}
     59
     60CookieJar::~CookieJar() = default;
     61
     62String CookieJar::cookies(Document& document, const URL& url) const
    5763{
    5864    TraceScope scope(FetchCookiesStart, FetchCookiesEnd);
     
    6066    auto includeSecureCookies = shouldIncludeSecureCookies(document, url);
    6167
     68    Optional<uint64_t> frameID;
     69    Optional<uint64_t> pageID;
     70    if (auto* frame = document.frame()) {
     71        frameID = frame->loader().client().frameID();
     72        pageID = frame->loader().client().pageID();
     73    }
     74
    6275    std::pair<String, bool> result;
    63     auto frame = document.frame();
    64     if (frame)
    65         result = platformStrategies()->cookiesStrategy()->cookiesForDOM(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), includeSecureCookies);
     76    if (auto* session = NetworkStorageSession::storageSession(document.sessionID()))
     77        result = session->cookiesForDOM(document.firstPartyForCookies(), sameSiteInfo(document), url, frameID, pageID, includeSecureCookies);
    6678    else
    67         result = platformStrategies()->cookiesStrategy()->cookiesForDOM(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, includeSecureCookies);
     79        ASSERT_NOT_REACHED();
    6880
    6981    if (result.second)
     
    7385}
    7486
    75 CookieRequestHeaderFieldProxy cookieRequestHeaderFieldProxy(const Document& document, const URL& url)
     87CookieRequestHeaderFieldProxy CookieJar::cookieRequestHeaderFieldProxy(const Document& document, const URL& url)
    7688{
    7789    TraceScope scope(FetchCookiesStart, FetchCookiesEnd);
     
    90102}
    91103
    92 void setCookies(Document& document, const URL& url, const String& cookieString)
     104void CookieJar::setCookies(Document& document, const URL& url, const String& cookieString)
    93105{
    94     auto frame = document.frame();
    95     if (frame)
    96         platformStrategies()->cookiesStrategy()->setCookiesFromDOM(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), cookieString);
     106    Optional<uint64_t> frameID;
     107    Optional<uint64_t> pageID;
     108    if (auto* frame = document.frame()) {
     109        frameID = frame->loader().client().frameID();
     110        pageID = frame->loader().client().pageID();
     111    }
     112
     113    if (auto* session = NetworkStorageSession::storageSession(document.sessionID()))
     114        session->setCookiesFromDOM(document.firstPartyForCookies(), sameSiteInfo(document), url, frameID, pageID, cookieString);
    97115    else
    98         platformStrategies()->cookiesStrategy()->setCookiesFromDOM(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, cookieString);
     116        ASSERT_NOT_REACHED();
    99117}
    100118
    101 bool cookiesEnabled(const Document& document)
     119bool CookieJar::cookiesEnabled(const Document& document) const
    102120{
    103     return platformStrategies()->cookiesStrategy()->cookiesEnabled(document.sessionID());
     121    if (auto* session = NetworkStorageSession::storageSession(document.sessionID()))
     122        return session->cookiesEnabled();
     123
     124    ASSERT_NOT_REACHED();
     125    return false;
    104126}
    105127
    106 String cookieRequestHeaderFieldValue(Document& document, const URL& url)
     128std::pair<String, SecureCookiesAccessed> CookieJar::cookieRequestHeaderFieldValue(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) const
    107129{
    108     auto includeSecureCookies = shouldIncludeSecureCookies(document, url);
     130    if (auto* session = NetworkStorageSession::storageSession(sessionID)) {
     131        std::pair<String, bool> result = session->cookieRequestHeaderFieldValue(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies);
     132        return { result.first, result.second ? SecureCookiesAccessed::Yes : SecureCookiesAccessed::No };
     133    }
    109134
    110     std::pair<String, bool> result;
    111     auto frame = document.frame();
    112     if (frame)
    113         result = platformStrategies()->cookiesStrategy()->cookieRequestHeaderFieldValue(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), includeSecureCookies);
    114     else
    115         result = platformStrategies()->cookiesStrategy()->cookieRequestHeaderFieldValue(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, includeSecureCookies);
     135    ASSERT_NOT_REACHED();
     136    return { };
     137}
    116138
    117     if (result.second)
     139String CookieJar::cookieRequestHeaderFieldValue(Document& document, const URL& url) const
     140{
     141    Optional<uint64_t> frameID;
     142    Optional<uint64_t> pageID;
     143    if (auto* frame = document.frame()) {
     144        frameID = frame->loader().client().frameID();
     145        pageID = frame->loader().client().pageID();
     146    }
     147
     148    auto result = cookieRequestHeaderFieldValue(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, frameID, pageID, shouldIncludeSecureCookies(document, url));
     149    if (result.second == SecureCookiesAccessed::Yes)
    118150        document.setSecureCookiesAccessed();
    119 
    120151    return result.first;
    121152}
    122153
    123 bool getRawCookies(const Document& document, const URL& url, Vector<Cookie>& cookies)
     154bool CookieJar::getRawCookies(const Document& document, const URL& url, Vector<Cookie>& cookies) const
    124155{
    125     auto frame = document.frame();
    126     if (frame)
    127         return platformStrategies()->cookiesStrategy()->getRawCookies(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, frame->loader().client().frameID(), frame->loader().client().pageID(), cookies);
     156    Optional<uint64_t> frameID;
     157    Optional<uint64_t> pageID;
     158    if (auto* frame = document.frame()) {
     159        frameID = frame->loader().client().frameID();
     160        pageID = frame->loader().client().pageID();
     161    }
    128162
    129     return platformStrategies()->cookiesStrategy()->getRawCookies(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, cookies);
     163    if (auto* session = NetworkStorageSession::storageSession(document.sessionID()))
     164        return session->getRawCookies(document.firstPartyForCookies(), sameSiteInfo(document), url, frameID, pageID, cookies);
     165
     166    ASSERT_NOT_REACHED();
     167    return false;
    130168}
    131169
    132 void deleteCookie(const Document& document, const URL& url, const String& cookieName)
     170void CookieJar::deleteCookie(const Document& document, const URL& url, const String& cookieName)
    133171{
    134     platformStrategies()->cookiesStrategy()->deleteCookie(document.sessionID(), url, cookieName);
     172    if (auto* session = NetworkStorageSession::storageSession(document.sessionID()))
     173        session->deleteCookie(url, cookieName);
     174    else
     175        ASSERT_NOT_REACHED();
    135176}
    136177
  • trunk/Source/WebCore/loader/CookieJar.h

    r238771 r240014  
    2929#include <wtf/text/WTFString.h>
    3030
     31namespace PAL {
     32class SessionID;
     33}
     34
    3135namespace WebCore {
     36
     37enum class IncludeSecureCookies : bool { No, Yes };
     38enum class SecureCookiesAccessed : bool { No, Yes };
    3239
    3340class Document;
    3441struct Cookie;
    3542struct CookieRequestHeaderFieldProxy;
     43struct SameSiteInfo;
    3644
    37 // Functions in this file take a Document pointer to determine which cookie storage to use. We should merge that into call sites, and use PlatformCookieJar directly.
     45class WEBCORE_EXPORT CookieJar : public RefCounted<CookieJar> {
     46public:
     47    static Ref<CookieJar> create();
     48   
     49    static CookieRequestHeaderFieldProxy cookieRequestHeaderFieldProxy(const Document&, const URL&);
    3850
    39 // These two functions implement document.cookie API, with special rules for HttpOnly cookies.
    40 WEBCORE_EXPORT String cookies(Document&, const URL&);
    41 WEBCORE_EXPORT void setCookies(Document&, const URL&, const String& cookieString);
     51    String cookieRequestHeaderFieldValue(Document&, const URL&) const;
    4252
    43 WEBCORE_EXPORT bool cookiesEnabled(const Document&);
    44 WEBCORE_EXPORT String cookieRequestHeaderFieldValue(Document&, const URL&);
    45 WEBCORE_EXPORT CookieRequestHeaderFieldProxy cookieRequestHeaderFieldProxy(const Document&, const URL&);
    46 WEBCORE_EXPORT bool getRawCookies(const Document&, const URL&, Vector<Cookie>&);
    47 WEBCORE_EXPORT void deleteCookie(const Document&, const URL&, const String& cookieName);
     53    // These two functions implement document.cookie API, with special rules for HttpOnly cookies.
     54    virtual String cookies(Document&, const URL&) const;
     55    virtual void setCookies(Document&, const URL&, const String& cookieString);
     56
     57    virtual bool cookiesEnabled(const Document&) const;
     58    virtual std::pair<String, SecureCookiesAccessed> cookieRequestHeaderFieldValue(const PAL::SessionID&, const URL& firstParty, const SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies) const;
     59    virtual bool getRawCookies(const Document&, const URL&, Vector<Cookie>&) const;
     60    virtual void deleteCookie(const Document&, const URL&, const String& cookieName);
     61
     62    virtual ~CookieJar();
     63protected:
     64    static SameSiteInfo sameSiteInfo(const Document&);
     65    static IncludeSecureCookies shouldIncludeSecureCookies(const Document&, const URL&);
     66};
    4867
    4968} // namespace WebCore
  • trunk/Source/WebCore/loader/EmptyClients.cpp

    r239737 r240014  
    3434#include "ColorChooser.h"
    3535#include "ContextMenuClient.h"
     36#include "CookieJar.h"
    3637#include "DataListSuggestionPicker.h"
    3738#include "DatabaseProvider.h"
     
    542543        LibWebRTCProvider::create(),
    543544        CacheStorageProvider::create(),
    544         adoptRef(*new EmptyBackForwardClient)
     545        adoptRef(*new EmptyBackForwardClient),
     546        CookieJar::create()
    545547    };
    546548
  • trunk/Source/WebCore/loader/ImageLoader.cpp

    r236927 r240014  
    191191            bool autoLoadOtherImages = document.cachedResourceLoader().autoLoadImages();
    192192            document.cachedResourceLoader().setAutoLoadImages(false);
    193             newImage = new CachedImage(WTFMove(request), m_element.document().page()->sessionID());
     193            auto* page = m_element.document().page();
     194            newImage = new CachedImage(WTFMove(request), page->sessionID(), &page->cookieJar());
    194195            newImage->setStatus(CachedResource::Pending);
    195196            newImage->setLoading(true);
  • trunk/Source/WebCore/loader/cache/CachedApplicationManifest.cpp

    r239427 r240014  
    3535namespace WebCore {
    3636
    37 CachedApplicationManifest::CachedApplicationManifest(CachedResourceRequest&& request, PAL::SessionID sessionID)
    38     : CachedResource(WTFMove(request), Type::ApplicationManifest, sessionID)
     37CachedApplicationManifest::CachedApplicationManifest(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar)
     38    : CachedResource(WTFMove(request), Type::ApplicationManifest, sessionID, cookieJar)
    3939    , m_decoder(TextResourceDecoder::create("application/manifest+json", UTF8Encoding()))
    4040{
  • trunk/Source/WebCore/loader/cache/CachedApplicationManifest.h

    r239427 r240014  
    3939class CachedApplicationManifest final : public CachedResource {
    4040public:
    41     CachedApplicationManifest(CachedResourceRequest&&, PAL::SessionID);
     41    CachedApplicationManifest(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*);
    4242
    4343    Optional<struct ApplicationManifest> process(const URL& manifestURL, const URL& documentURL, RefPtr<ScriptExecutionContext> = nullptr);
  • trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp

    r233668 r240014  
    3838namespace WebCore {
    3939
    40 CachedCSSStyleSheet::CachedCSSStyleSheet(CachedResourceRequest&& request, PAL::SessionID sessionID)
    41     : CachedResource(WTFMove(request), Type::CSSStyleSheet, sessionID)
     40CachedCSSStyleSheet::CachedCSSStyleSheet(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar)
     41    : CachedResource(WTFMove(request), Type::CSSStyleSheet, sessionID, cookieJar)
    4242    , m_decoder(TextResourceDecoder::create("text/css", request.charset()))
    4343{
  • trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.h

    r233668 r240014  
    3535class CachedCSSStyleSheet final : public CachedResource {
    3636public:
    37     CachedCSSStyleSheet(CachedResourceRequest&&, PAL::SessionID);
     37    CachedCSSStyleSheet(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*);
    3838    virtual ~CachedCSSStyleSheet();
    3939
  • trunk/Source/WebCore/loader/cache/CachedFont.cpp

    r239156 r240014  
    4646namespace WebCore {
    4747
    48 CachedFont::CachedFont(CachedResourceRequest&& request, PAL::SessionID sessionID, Type type)
    49     : CachedResource(WTFMove(request), type, sessionID)
     48CachedFont::CachedFont(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar, Type type)
     49    : CachedResource(WTFMove(request), type, sessionID, cookieJar)
    5050    , m_loadInitiated(false)
    5151    , m_hasCreatedFontDataWrappingResource(false)
  • trunk/Source/WebCore/loader/cache/CachedFont.h

    r233839 r240014  
    4646class CachedFont : public CachedResource {
    4747public:
    48     CachedFont(CachedResourceRequest&&, PAL::SessionID, Type = Type::FontResource);
     48    CachedFont(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*, Type = Type::FontResource);
    4949    virtual ~CachedFont();
    5050
  • trunk/Source/WebCore/loader/cache/CachedImage.cpp

    r239636 r240014  
    5656namespace WebCore {
    5757
    58 CachedImage::CachedImage(CachedResourceRequest&& request, PAL::SessionID sessionID)
    59     : CachedResource(WTFMove(request), Type::ImageResource, sessionID)
     58CachedImage::CachedImage(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar)
     59    : CachedResource(WTFMove(request), Type::ImageResource, sessionID, cookieJar)
    6060{
    6161    setStatus(Unknown);
    6262}
    6363
    64 CachedImage::CachedImage(Image* image, PAL::SessionID sessionID)
    65     : CachedResource(URL(), Type::ImageResource, sessionID)
     64CachedImage::CachedImage(Image* image, const PAL::SessionID& sessionID, const CookieJar* cookieJar)
     65    : CachedResource(URL(), Type::ImageResource, sessionID, cookieJar)
    6666    , m_image(image)
    6767{
    6868}
    6969
    70 CachedImage::CachedImage(const URL& url, Image* image, PAL::SessionID sessionID, const String& domainForCachePartition)
    71     : CachedResource(url, Type::ImageResource, sessionID)
     70CachedImage::CachedImage(const URL& url, Image* image, const PAL::SessionID& sessionID, const CookieJar* cookieJar, const String& domainForCachePartition)
     71    : CachedResource(url, Type::ImageResource, sessionID, cookieJar)
    7272    , m_image(image)
    7373    , m_isManuallyCached(true)
  • trunk/Source/WebCore/loader/cache/CachedImage.h

    r239636 r240014  
    4848
    4949public:
    50     CachedImage(CachedResourceRequest&&, PAL::SessionID);
    51     CachedImage(Image*, PAL::SessionID);
     50    CachedImage(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*);
     51    CachedImage(Image*, const PAL::SessionID&, const CookieJar*);
    5252    // Constructor to use for manually cached images.
    53     CachedImage(const URL&, Image*, PAL::SessionID, const String& domainForCachePartition);
     53    CachedImage(const URL&, Image*, const PAL::SessionID&, const CookieJar*, const String& domainForCachePartition);
    5454    virtual ~CachedImage();
    5555
  • trunk/Source/WebCore/loader/cache/CachedRawResource.cpp

    r239427 r240014  
    3939namespace WebCore {
    4040
    41 CachedRawResource::CachedRawResource(CachedResourceRequest&& request, Type type, PAL::SessionID sessionID)
    42     : CachedResource(WTFMove(request), type, sessionID)
     41CachedRawResource::CachedRawResource(CachedResourceRequest&& request, Type type, const PAL::SessionID& sessionID, const CookieJar* cookieJar)
     42    : CachedResource(WTFMove(request), type, sessionID, cookieJar)
    4343    , m_identifier(0)
    4444    , m_allowEncodedDataReplacement(true)
  • trunk/Source/WebCore/loader/cache/CachedRawResource.h

    r239427 r240014  
    3333class CachedRawResource final : public CachedResource {
    3434public:
    35     CachedRawResource(CachedResourceRequest&&, Type, PAL::SessionID);
     35    CachedRawResource(CachedResourceRequest&&, Type, const PAL::SessionID&, const CookieJar*);
    3636
    3737    void setDefersLoading(bool);
  • trunk/Source/WebCore/loader/cache/CachedResource.cpp

    r239974 r240014  
    2929#include "CachedResourceHandle.h"
    3030#include "CachedResourceLoader.h"
     31#include "CookieJar.h"
    3132#include "CrossOriginAccessControl.h"
    3233#include "DiagnosticLoggingClient.h"
     
    117118DEFINE_DEBUG_ONLY_GLOBAL(RefCountedLeakCounter, cachedResourceLeakCounter, ("CachedResource"));
    118119
    119 CachedResource::CachedResource(CachedResourceRequest&& request, Type type, PAL::SessionID sessionID)
     120CachedResource::CachedResource(CachedResourceRequest&& request, Type type, const PAL::SessionID& sessionID, const CookieJar* cookieJar)
    120121    : m_options(request.options())
    121122    , m_resourceRequest(request.releaseResourceRequest())
    122123    , m_decodedDataDeletionTimer(*this, &CachedResource::destroyDecodedData, deadDecodedDataDeletionIntervalForResourceType(type))
    123124    , m_sessionID(sessionID)
     125    , m_cookieJar(cookieJar)
    124126    , m_responseTimestamp(WallTime::now())
    125127    , m_fragmentIdentifierForRequest(request.releaseFragmentIdentifier())
     
    132134    , m_ignoreForRequestCount(request.ignoreForRequestCount())
    133135{
    134     ASSERT(sessionID.isValid());
     136    ASSERT(m_sessionID.isValid());
    135137
    136138    setLoadPriority(request.priority());
     
    147149
    148150// FIXME: For this constructor, we should probably mandate that the URL has no fragment identifier.
    149 CachedResource::CachedResource(const URL& url, Type type, PAL::SessionID sessionID)
     151CachedResource::CachedResource(const URL& url, Type type, const PAL::SessionID& sessionID, const CookieJar* cookieJar)
    150152    : m_resourceRequest(url)
    151153    , m_decodedDataDeletionTimer(*this, &CachedResource::destroyDecodedData, deadDecodedDataDeletionIntervalForResourceType(type))
    152154    , m_sessionID(sessionID)
     155    , m_cookieJar(cookieJar)
    153156    , m_responseTimestamp(WallTime::now())
    154157    , m_fragmentIdentifierForRequest(CachedResourceRequest::splitFragmentIdentifierFromRequestURL(m_resourceRequest))
     
    156159    , m_type(type)
    157160{
    158     ASSERT(sessionID.isValid());
     161    ASSERT(m_sessionID.isValid());
    159162#ifndef NDEBUG
    160163    cachedResourceLeakCounter.increment();
     
    477480    ASSERT(m_response.type() == ResourceResponse::Type::Default);
    478481    m_response = response;
    479     m_varyingHeaderValues = collectVaryingRequestHeaders(*platformStrategies()->cookiesStrategy(), m_resourceRequest, m_response, m_sessionID);
     482    m_varyingHeaderValues = collectVaryingRequestHeaders(cookieJar(), m_resourceRequest, m_response, sessionID());
    480483
    481484#if ENABLE(SERVICE_WORKER)
     
    859862        return true;
    860863
    861     return verifyVaryingRequestHeaders(*platformStrategies()->cookiesStrategy(), m_varyingHeaderValues, request, m_sessionID);
     864    return verifyVaryingRequestHeaders(cookieJar(), m_varyingHeaderValues, request, sessionID());
    862865}
    863866
  • trunk/Source/WebCore/loader/cache/CachedResource.h

    r239427 r240014  
    4646class CachedResourceLoader;
    4747class CachedResourceRequest;
     48class CookieJar;
    4849class LoadTiming;
    4950class MemoryCache;
     
    9596    };
    9697
    97     CachedResource(CachedResourceRequest&&, Type, PAL::SessionID);
     98    CachedResource(CachedResourceRequest&&, Type, const PAL::SessionID&, const CookieJar*);
    9899    virtual ~CachedResource();
    99100
     
    117118    const String& cachePartition() const { return m_resourceRequest.cachePartition(); }
    118119    PAL::SessionID sessionID() const { return m_sessionID; }
     120    const CookieJar* cookieJar() const { return m_cookieJar.get(); }
    119121    Type type() const { return m_type; }
    120122    String mimeType() const { return m_response.mimeType(); }
     
    280282protected:
    281283    // CachedResource constructor that may be used when the CachedResource can already be filled with response data.
    282     CachedResource(const URL&, Type, PAL::SessionID);
     284    CachedResource(const URL&, Type, const PAL::SessionID&, const CookieJar*);
    283285
    284286    void setEncodedSize(unsigned);
     
    321323    MonotonicTime m_lastDecodedAccessTime; // Used as a "thrash guard" in the cache
    322324    PAL::SessionID m_sessionID;
     325    RefPtr<const CookieJar> m_cookieJar;
    323326    WallTime m_responseTimestamp;
    324327    unsigned long m_identifierForLoadWithoutResourceLoader { 0 };
  • trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp

    r238913 r240014  
    102102}
    103103
    104 static CachedResource* createResource(CachedResource::Type type, CachedResourceRequest&& request, PAL::SessionID sessionID)
     104static CachedResource* createResource(CachedResource::Type type, CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar)
    105105{
    106106    switch (type) {
    107107    case CachedResource::Type::ImageResource:
    108         return new CachedImage(WTFMove(request), sessionID);
     108        return new CachedImage(WTFMove(request), sessionID, cookieJar);
    109109    case CachedResource::Type::CSSStyleSheet:
    110         return new CachedCSSStyleSheet(WTFMove(request), sessionID);
     110        return new CachedCSSStyleSheet(WTFMove(request), sessionID, cookieJar);
    111111    case CachedResource::Type::Script:
    112         return new CachedScript(WTFMove(request), sessionID);
     112        return new CachedScript(WTFMove(request), sessionID, cookieJar);
    113113    case CachedResource::Type::SVGDocumentResource:
    114         return new CachedSVGDocument(WTFMove(request), sessionID);
     114        return new CachedSVGDocument(WTFMove(request), sessionID, cookieJar);
    115115#if ENABLE(SVG_FONTS)
    116116    case CachedResource::Type::SVGFontResource:
    117         return new CachedSVGFont(WTFMove(request), sessionID);
     117        return new CachedSVGFont(WTFMove(request), sessionID, cookieJar);
    118118#endif
    119119    case CachedResource::Type::FontResource:
    120         return new CachedFont(WTFMove(request), sessionID);
     120        return new CachedFont(WTFMove(request), sessionID, cookieJar);
    121121    case CachedResource::Type::Beacon:
    122122    case CachedResource::Type::MediaResource:
     
    124124    case CachedResource::Type::Icon:
    125125    case CachedResource::Type::MainResource:
    126         return new CachedRawResource(WTFMove(request), type, sessionID);
     126        return new CachedRawResource(WTFMove(request), type, sessionID, cookieJar);
    127127#if ENABLE(XSLT)
    128128    case CachedResource::Type::XSLStyleSheet:
    129         return new CachedXSLStyleSheet(WTFMove(request), sessionID);
     129        return new CachedXSLStyleSheet(WTFMove(request), sessionID, cookieJar);
    130130#endif
    131131    case CachedResource::Type::LinkPrefetch:
    132         return new CachedResource(WTFMove(request), CachedResource::Type::LinkPrefetch, sessionID);
     132        return new CachedResource(WTFMove(request), CachedResource::Type::LinkPrefetch, sessionID, cookieJar);
    133133#if ENABLE(VIDEO_TRACK)
    134134    case CachedResource::Type::TextTrackResource:
    135         return new CachedTextTrack(WTFMove(request), sessionID);
     135        return new CachedTextTrack(WTFMove(request), sessionID, cookieJar);
    136136#endif
    137137#if ENABLE(APPLICATION_MANIFEST)
    138138    case CachedResource::Type::ApplicationManifest:
    139         return new CachedApplicationManifest(WTFMove(request), sessionID);
     139        return new CachedApplicationManifest(WTFMove(request), sessionID, cookieJar);
    140140#endif
    141141    }
     
    237237}
    238238
    239 CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestUserCSSStyleSheet(CachedResourceRequest&& request)
     239CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestUserCSSStyleSheet(Page& page, CachedResourceRequest&& request)
    240240{
    241241    request.setDestinationIfNotSet(FetchOptions::Destination::Style);
     
    255255    request.removeFragmentIdentifierIfNeeded();
    256256
    257     CachedResourceHandle<CachedCSSStyleSheet> userSheet = new CachedCSSStyleSheet(WTFMove(request), sessionID());
     257    CachedResourceHandle<CachedCSSStyleSheet> userSheet = new CachedCSSStyleSheet(WTFMove(request), page.sessionID(), &page.cookieJar());
    258258
    259259    if (userSheet->allowsCaching())
     
    678678}
    679679
    680 CachedResourceHandle<CachedResource> CachedResourceLoader::updateCachedResourceWithCurrentRequest(const CachedResource& resource, CachedResourceRequest&& request)
     680CachedResourceHandle<CachedResource> CachedResourceLoader::updateCachedResourceWithCurrentRequest(const CachedResource& resource, CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar)
    681681{
    682682    if (!isResourceSuitableForDirectReuse(resource, request)) {
    683683        request.setCachingPolicy(CachingPolicy::DisallowCaching);
    684         return loadResource(resource.type(), WTFMove(request));
    685     }
    686 
    687     auto resourceHandle = createResource(resource.type(), WTFMove(request), sessionID());
     684        return loadResource(resource.type(), WTFMove(request), cookieJar);
     685    }
     686
     687    auto resourceHandle = createResource(resource.type(), WTFMove(request), sessionID, cookieJar);
    688688    resourceHandle->loadFrom(resource);
    689689    return resourceHandle;
     
    817817            RELEASE_LOG_IF_ALLOWED("requestResource: Resource blocked by content blocker (frame = %p)", frame());
    818818            if (type == CachedResource::Type::MainResource) {
    819                 CachedResourceHandle<CachedResource> resource = createResource(type, WTFMove(request), sessionID());
     819                CachedResourceHandle<CachedResource> resource = createResource(type, WTFMove(request), page->sessionID(), &page->cookieJar());
    820820                ASSERT(resource);
    821821                resource->error(CachedResource::Status::LoadError);
     
    880880    logMemoryCacheResourceRequest(frame(), DiagnosticLoggingKeys::memoryCacheUsageKey(), resource ? DiagnosticLoggingKeys::inMemoryCacheKey() : DiagnosticLoggingKeys::notInMemoryCacheKey());
    881881
     882    auto* cookieJar = document() && document()->page() ? &document()->page()->cookieJar() : nullptr;
     883
    882884    RevalidationPolicy policy = determineRevalidationPolicy(type, request, resource.get(), forPreload, defer);
    883885    switch (policy) {
     
    888890        if (resource)
    889891            logMemoryCacheResourceRequest(frame(), DiagnosticLoggingKeys::memoryCacheEntryDecisionKey(), DiagnosticLoggingKeys::unusedKey());
    890         resource = loadResource(type, WTFMove(request));
     892        resource = loadResource(type, WTFMove(request), cookieJar);
    891893        break;
    892894    case Revalidate:
     
    902904        }
    903905        if (shouldUpdateCachedResourceWithCurrentRequest(*resource, request)) {
    904             resource = updateCachedResourceWithCurrentRequest(*resource, WTFMove(request));
     906            resource = updateCachedResourceWithCurrentRequest(*resource, WTFMove(request), document()->page()->sessionID(), cookieJar);
    905907            if (resource->status() != CachedResource::Status::Cached)
    906908                policy = Load;
     
    988990    ASSERT(resource.allowsCaching());
    989991
    990     CachedResourceHandle<CachedResource> newResource = createResource(resource.type(), WTFMove(request), resource.sessionID());
     992    CachedResourceHandle<CachedResource> newResource = createResource(resource.type(), WTFMove(request), resource.sessionID(), resource.cookieJar());
    991993
    992994    LOG(ResourceLoading, "Resource %p created to revalidate %p", newResource.get(), &resource);
     
    10021004}
    10031005
    1004 CachedResourceHandle<CachedResource> CachedResourceLoader::loadResource(CachedResource::Type type, CachedResourceRequest&& request)
     1006CachedResourceHandle<CachedResource> CachedResourceLoader::loadResource(CachedResource::Type type, CachedResourceRequest&& request, const CookieJar* cookieJar)
    10051007{
    10061008    auto& memoryCache = MemoryCache::singleton();
     
    10101012    LOG(ResourceLoading, "Loading CachedResource for '%s'.", request.resourceRequest().url().stringCenterEllipsizedToLength().latin1().data());
    10111013
    1012     CachedResourceHandle<CachedResource> resource = createResource(type, WTFMove(request), sessionID());
     1014    CachedResourceHandle<CachedResource> resource = createResource(type, WTFMove(request), sessionID(), cookieJar);
    10131015
    10141016    if (resource->allowsCaching() && !memoryCache.add(*resource))
  • trunk/Source/WebCore/loader/cache/CachedResourceLoader.h

    r238771 r240014  
    5757class Frame;
    5858class ImageLoader;
     59class Page;
    5960class Settings;
    6061
     
    8182    ResourceErrorOr<CachedResourceHandle<CachedImage>> requestImage(CachedResourceRequest&&);
    8283    ResourceErrorOr<CachedResourceHandle<CachedCSSStyleSheet>> requestCSSStyleSheet(CachedResourceRequest&&);
    83     CachedResourceHandle<CachedCSSStyleSheet> requestUserCSSStyleSheet(CachedResourceRequest&&);
     84    CachedResourceHandle<CachedCSSStyleSheet> requestUserCSSStyleSheet(Page&, CachedResourceRequest&&);
    8485    ResourceErrorOr<CachedResourceHandle<CachedScript>> requestScript(CachedResourceRequest&&);
    8586    ResourceErrorOr<CachedResourceHandle<CachedFont>> requestFont(CachedResourceRequest&&, bool isSVG);
     
    169170    ResourceErrorOr<CachedResourceHandle<CachedResource>> requestResource(CachedResource::Type, CachedResourceRequest&&, ForPreload = ForPreload::No, DeferOption = DeferOption::NoDefer);
    170171    CachedResourceHandle<CachedResource> revalidateResource(CachedResourceRequest&&, CachedResource&);
    171     CachedResourceHandle<CachedResource> loadResource(CachedResource::Type, CachedResourceRequest&&);
     172    CachedResourceHandle<CachedResource> loadResource(CachedResource::Type, CachedResourceRequest&&, const CookieJar*);
    172173
    173174    void prepareFetch(CachedResource::Type, CachedResourceRequest&);
     
    180181
    181182    bool shouldUpdateCachedResourceWithCurrentRequest(const CachedResource&, const CachedResourceRequest&);
    182     CachedResourceHandle<CachedResource> updateCachedResourceWithCurrentRequest(const CachedResource&, CachedResourceRequest&&);
     183    CachedResourceHandle<CachedResource> updateCachedResourceWithCurrentRequest(const CachedResource&, CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*);
    183184
    184185    bool shouldContinueAfterNotifyingLoadedFromMemoryCache(const CachedResourceRequest&, CachedResource&, ResourceError&);
  • trunk/Source/WebCore/loader/cache/CachedSVGDocument.cpp

    r233668 r240014  
    2828namespace WebCore {
    2929
    30 CachedSVGDocument::CachedSVGDocument(CachedResourceRequest&& request, PAL::SessionID sessionID)
    31     : CachedResource(WTFMove(request), Type::SVGDocumentResource, sessionID)
     30CachedSVGDocument::CachedSVGDocument(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar)
     31    : CachedResource(WTFMove(request), Type::SVGDocumentResource, sessionID, cookieJar)
    3232    , m_decoder(TextResourceDecoder::create("application/xml"))
    3333{
  • trunk/Source/WebCore/loader/cache/CachedSVGDocument.h

    r233668 r240014  
    3131class CachedSVGDocument final : public CachedResource {
    3232public:
    33     explicit CachedSVGDocument(CachedResourceRequest&&, PAL::SessionID);
     33    explicit CachedSVGDocument(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*);
    3434    virtual ~CachedSVGDocument();
    3535
  • trunk/Source/WebCore/loader/cache/CachedSVGFont.cpp

    r233668 r240014  
    4747namespace WebCore {
    4848
    49 CachedSVGFont::CachedSVGFont(CachedResourceRequest&& request, PAL::SessionID sessionID)
    50     : CachedFont(WTFMove(request), sessionID, Type::SVGFontResource)
     49CachedSVGFont::CachedSVGFont(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar)
     50    : CachedFont(WTFMove(request), sessionID, cookieJar, Type::SVGFontResource)
    5151    , m_externalSVGFontElement(nullptr)
    5252{
  • trunk/Source/WebCore/loader/cache/CachedSVGFont.h

    r233668 r240014  
    3636class CachedSVGFont final : public CachedFont {
    3737public:
    38     CachedSVGFont(CachedResourceRequest&&, PAL::SessionID);
     38    CachedSVGFont(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*);
    3939
    4040    bool ensureCustomFontData(const AtomicString& remoteURI) override;
  • trunk/Source/WebCore/loader/cache/CachedScript.cpp

    r239037 r240014  
    3737namespace WebCore {
    3838
    39 CachedScript::CachedScript(CachedResourceRequest&& request, PAL::SessionID sessionID)
    40     : CachedResource(WTFMove(request), Type::Script, sessionID)
     39CachedScript::CachedScript(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar)
     40    : CachedResource(WTFMove(request), Type::Script, sessionID, cookieJar)
    4141    , m_decoder(TextResourceDecoder::create("text/javascript"_s, request.charset()))
    4242{
  • trunk/Source/WebCore/loader/cache/CachedScript.h

    r233668 r240014  
    3434class CachedScript final : public CachedResource {
    3535public:
    36     CachedScript(CachedResourceRequest&&, PAL::SessionID);
     36    CachedScript(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*);
    3737    virtual ~CachedScript();
    3838
  • trunk/Source/WebCore/loader/cache/CachedTextTrack.cpp

    r233668 r240014  
    3838namespace WebCore {
    3939
    40 CachedTextTrack::CachedTextTrack(CachedResourceRequest&& request, PAL::SessionID sessionID)
    41     : CachedResource(WTFMove(request), Type::TextTrackResource, sessionID)
     40CachedTextTrack::CachedTextTrack(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar)
     41    : CachedResource(WTFMove(request), Type::TextTrackResource, sessionID, cookieJar)
    4242{
    4343}
  • trunk/Source/WebCore/loader/cache/CachedTextTrack.h

    r233668 r240014  
    3434class CachedTextTrack final : public CachedResource {
    3535public:
    36     CachedTextTrack(CachedResourceRequest&&, PAL::SessionID);
     36    CachedTextTrack(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*);
    3737
    3838private:
  • trunk/Source/WebCore/loader/cache/CachedXSLStyleSheet.cpp

    r233668 r240014  
    3737#if ENABLE(XSLT)
    3838
    39 CachedXSLStyleSheet::CachedXSLStyleSheet(CachedResourceRequest&& request, PAL::SessionID sessionID)
    40     : CachedResource(WTFMove(request), Type::XSLStyleSheet, sessionID)
     39CachedXSLStyleSheet::CachedXSLStyleSheet(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar)
     40    : CachedResource(WTFMove(request), Type::XSLStyleSheet, sessionID, cookieJar)
    4141    , m_decoder(TextResourceDecoder::create("text/xsl"))
    4242{
  • trunk/Source/WebCore/loader/cache/CachedXSLStyleSheet.h

    r233668 r240014  
    3636class CachedXSLStyleSheet final : public CachedResource {
    3737public:
    38     CachedXSLStyleSheet(CachedResourceRequest&&, PAL::SessionID);
     38    CachedXSLStyleSheet(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*);
    3939    virtual ~CachedXSLStyleSheet();
    4040
  • trunk/Source/WebCore/loader/cache/MemoryCache.cpp

    r239535 r240014  
    211211}
    212212
    213 bool MemoryCache::addImageToCache(NativeImagePtr&& image, const URL& url, const String& domainForCachePartition)
     213bool MemoryCache::addImageToCache(NativeImagePtr&& image, const URL& url, const String& domainForCachePartition, const PAL::SessionID& sessionID, const CookieJar* cookieJar)
    214214{
    215215    ASSERT(image);
    216     PAL::SessionID sessionID = PAL::SessionID::defaultSessionID();
    217216    removeImageFromCache(url, domainForCachePartition); // Remove cache entry if it already exists.
    218217
    219218    auto bitmapImage = BitmapImage::create(WTFMove(image), nullptr);
    220     auto cachedImage = std::make_unique<CachedImage>(url, bitmapImage.ptr(), sessionID, domainForCachePartition);
     219    auto cachedImage = std::make_unique<CachedImage>(url, bitmapImage.ptr(), sessionID, cookieJar, domainForCachePartition);
    221220
    222221    cachedImage->addClient(dummyCachedImageClient());
  • trunk/Source/WebCore/loader/cache/MemoryCache.h

    r238771 r240014  
    4242
    4343class CachedResource;
     44class CookieJar;
    4445class ResourceRequest;
    4546class ResourceResponse;
     
    157158    WEBCORE_EXPORT HashSet<RefPtr<SecurityOrigin>> originsWithCache(PAL::SessionID) const;
    158159
    159     WEBCORE_EXPORT bool addImageToCache(NativeImagePtr&&, const URL&, const String& domainForCachePartition);
     160    WEBCORE_EXPORT bool addImageToCache(NativeImagePtr&&, const URL&, const String& domainForCachePartition, const PAL::SessionID&, const CookieJar*);
    160161    WEBCORE_EXPORT void removeImageFromCache(const URL&, const String& domainForCachePartition);
    161162
  • trunk/Source/WebCore/page/Navigator.cpp

    r239427 r240014  
    193193        ResourceLoadObserver::shared().logNavigatorAPIAccessed(*frame->document(), ResourceLoadStatistics::NavigatorAPI::CookieEnabled);
    194194
    195     if (frame->page() && !frame->page()->settings().cookieEnabled())
     195    auto* page = frame->page();
     196    if (!page)
     197        return false;
     198   
     199    if (!page->settings().cookieEnabled())
    196200        return false;
    197201
     
    200204        return false;
    201205
    202     return cookiesEnabled(*document);
     206    return page->cookieJar().cookiesEnabled(*document);
    203207}
    204208
  • trunk/Source/WebCore/page/Page.cpp

    r239904 r240014  
    3535#include "ContextMenuClient.h"
    3636#include "ContextMenuController.h"
     37#include "CookieJar.h"
    3738#include "DOMRect.h"
    3839#include "DOMRectList.h"
     
    239240#endif
    240241    , m_socketProvider(WTFMove(pageConfiguration.socketProvider))
     242    , m_cookieJar(WTFMove(pageConfiguration.cookieJar))
    241243    , m_applicationCacheStorage(*WTFMove(pageConfiguration.applicationCacheStorage))
    242244    , m_cacheStorageProvider(WTFMove(pageConfiguration.cacheStorageProvider))
  • trunk/Source/WebCore/page/Page.h

    r239640 r240014  
    8787class ContextMenuClient;
    8888class ContextMenuController;
     89class CookieJar;
    8990class DOMRect;
    9091class DOMRectList;
     
    575576    CacheStorageProvider& cacheStorageProvider() { return m_cacheStorageProvider; }
    576577    SocketProvider& socketProvider() { return m_socketProvider; }
     578    CookieJar& cookieJar() { return m_cookieJar.get(); }
    577579
    578580    StorageNamespaceProvider& storageNamespaceProvider() { return m_storageNamespaceProvider.get(); }
     
    874876
    875877    Ref<SocketProvider> m_socketProvider;
     878    Ref<CookieJar> m_cookieJar;
    876879    Ref<ApplicationCacheStorage> m_applicationCacheStorage;
    877880    Ref<CacheStorageProvider> m_cacheStorageProvider;
  • trunk/Source/WebCore/page/PageConfiguration.cpp

    r237157 r240014  
    4949namespace WebCore {
    5050
    51 PageConfiguration::PageConfiguration(UniqueRef<EditorClient>&& editorClient, Ref<SocketProvider>&& socketProvider, UniqueRef<LibWebRTCProvider>&& libWebRTCProvider, Ref<CacheStorageProvider>&& cacheStorageProvider, Ref<BackForwardClient>&& backForwardClient)
     51PageConfiguration::PageConfiguration(UniqueRef<EditorClient>&& editorClient, Ref<SocketProvider>&& socketProvider, UniqueRef<LibWebRTCProvider>&& libWebRTCProvider, Ref<CacheStorageProvider>&& cacheStorageProvider, Ref<BackForwardClient>&& backForwardClient, Ref<CookieJar>&& cookieJar)
    5252    : editorClient(WTFMove(editorClient))
    5353    , socketProvider(WTFMove(socketProvider))
    5454    , libWebRTCProvider(WTFMove(libWebRTCProvider))
    5555    , backForwardClient(WTFMove(backForwardClient))
     56    , cookieJar(WTFMove(cookieJar))
    5657    , cacheStorageProvider(WTFMove(cacheStorageProvider))
    5758{
  • trunk/Source/WebCore/page/PageConfiguration.h

    r239427 r240014  
    4242class BackForwardClient;
    4343class CacheStorageProvider;
     44class CookieJar;
    4445class ChromeClient;
    4546class ContextMenuClient;
     
    6667    WTF_MAKE_NONCOPYABLE(PageConfiguration); WTF_MAKE_FAST_ALLOCATED;
    6768public:
    68     WEBCORE_EXPORT PageConfiguration(UniqueRef<EditorClient>&&, Ref<SocketProvider>&&, UniqueRef<LibWebRTCProvider>&&, Ref<CacheStorageProvider>&&, Ref<BackForwardClient>&&);
     69    WEBCORE_EXPORT PageConfiguration(UniqueRef<EditorClient>&&, Ref<SocketProvider>&&, UniqueRef<LibWebRTCProvider>&&, Ref<CacheStorageProvider>&&, Ref<BackForwardClient>&&, Ref<CookieJar>&&);
    6970    WEBCORE_EXPORT ~PageConfiguration();
    7071    PageConfiguration(PageConfiguration&&);
     
    9697    ProgressTrackerClient* progressTrackerClient { nullptr };
    9798    Ref<BackForwardClient> backForwardClient;
     99    Ref<CookieJar> cookieJar;
    98100    std::unique_ptr<ValidationMessageClient> validationMessageClient;
    99101    FrameLoaderClient* loaderClientForMainFrame { nullptr };
  • trunk/Source/WebCore/platform/PlatformStrategies.h

    r223794 r240014  
    2929
    3030class BlobRegistry;
    31 class CookiesStrategy;
    3231class LoaderStrategy;
    3332class PasteboardStrategy;
     
    3534class PlatformStrategies {
    3635public:
    37     CookiesStrategy* cookiesStrategy()
    38     {
    39         if (!m_cookiesStrategy)
    40             m_cookiesStrategy = createCookiesStrategy();
    41         return m_cookiesStrategy;
    42     }
    43 
    4436    LoaderStrategy* loaderStrategy()
    4537    {
     
    7163
    7264private:
    73     virtual CookiesStrategy* createCookiesStrategy() = 0;
    7465    virtual LoaderStrategy* createLoaderStrategy() = 0;
    7566    virtual PasteboardStrategy* createPasteboardStrategy() = 0;
    7667    virtual BlobRegistry* createBlobRegistry() = 0;
    7768
    78     CookiesStrategy* m_cookiesStrategy { };
    7969    LoaderStrategy* m_loaderStrategy { };
    8070    PasteboardStrategy* m_pasteboardStrategy { };
  • trunk/Source/WebCore/platform/network/CacheValidation.cpp

    r239974 r240014  
    2727#include "CacheValidation.h"
    2828
    29 #include "CookiesStrategy.h"
     29#include "CookieJar.h"
    3030#include "HTTPHeaderMap.h"
    3131#include "NetworkStorageSession.h"
    32 #include "PlatformStrategies.h"
    3332#include "ResourceRequest.h"
    3433#include "ResourceResponse.h"
     
    332331}
    333332
    334 static String cookieRequestHeaderFieldValue(CookiesStrategy& cookiesStrategy, const PAL::SessionID& sessionID, const ResourceRequest& request)
    335 {
    336     return cookiesStrategy.cookieRequestHeaderFieldValue(sessionID, request.firstPartyForCookies(), SameSiteInfo::create(request), request.url(), WTF::nullopt, WTF::nullopt, request.url().protocolIs("https") ? IncludeSecureCookies::Yes : IncludeSecureCookies::No).first;
     333static String cookieRequestHeaderFieldValue(const CookieJar* cookieJar, const PAL::SessionID& sessionID, const ResourceRequest& request)
     334{
     335    if (!cookieJar)
     336        return { };
     337
     338    return cookieJar->cookieRequestHeaderFieldValue(sessionID, request.firstPartyForCookies(), SameSiteInfo::create(request), request.url(), WTF::nullopt, WTF::nullopt, request.url().protocolIs("https") ? IncludeSecureCookies::Yes : IncludeSecureCookies::No).first;
    337339}
    338340
     
    373375}
    374376
    375 Vector<std::pair<String, String>> collectVaryingRequestHeaders(CookiesStrategy& cookiesStrategy, const ResourceRequest& request, const ResourceResponse& response, const PAL::SessionID& sessionID)
     377Vector<std::pair<String, String>> collectVaryingRequestHeaders(const CookieJar* cookieJar, const ResourceRequest& request, const ResourceResponse& response, const PAL::SessionID& sessionID)
    376378{
    377379    return collectVaryingRequestHeadersInternal(response, [&] (const String& headerName) {
    378380        return headerValueForVary(request, headerName, [&] {
    379             return cookieRequestHeaderFieldValue(cookiesStrategy, sessionID, request);
     381            return cookieRequestHeaderFieldValue(cookieJar, sessionID, request);
    380382        });
    381383    });
     
    403405}
    404406
    405 bool verifyVaryingRequestHeaders(CookiesStrategy& cookiesStrategy, const Vector<std::pair<String, String>>& varyingRequestHeaders, const ResourceRequest& request, const PAL::SessionID& sessionID)
     407bool verifyVaryingRequestHeaders(const CookieJar* cookieJar, const Vector<std::pair<String, String>>& varyingRequestHeaders, const ResourceRequest& request, const PAL::SessionID& sessionID)
    406408{
    407409    return verifyVaryingRequestHeadersInternal(varyingRequestHeaders, [&] (const String& headerName) {
    408410        return headerValueForVary(request, headerName, [&] {
    409             return cookieRequestHeaderFieldValue(cookiesStrategy, sessionID, request);
     411            return cookieRequestHeaderFieldValue(cookieJar, sessionID, request);
    410412        });
    411413    });
  • trunk/Source/WebCore/platform/network/CacheValidation.h

    r239974 r240014  
    3535namespace WebCore {
    3636
    37 class CookiesStrategy;
     37class CookieJar;
    3838class HTTPHeaderMap;
    3939class NetworkStorageSession;
     
    8181
    8282WEBCORE_EXPORT Vector<std::pair<String, String>> collectVaryingRequestHeaders(NetworkStorageSession&, const ResourceRequest&, const ResourceResponse&);
    83 WEBCORE_EXPORT Vector<std::pair<String, String>> collectVaryingRequestHeaders(CookiesStrategy&, const ResourceRequest&, const ResourceResponse&, const PAL::SessionID&);
     83WEBCORE_EXPORT Vector<std::pair<String, String>> collectVaryingRequestHeaders(const CookieJar*, const ResourceRequest&, const ResourceResponse&, const PAL::SessionID&);
    8484WEBCORE_EXPORT bool verifyVaryingRequestHeaders(NetworkStorageSession&, const Vector<std::pair<String, String>>& varyingRequestHeaders, const ResourceRequest&);
    85 WEBCORE_EXPORT bool verifyVaryingRequestHeaders(CookiesStrategy&, const Vector<std::pair<String, String>>& varyingRequestHeaders, const ResourceRequest&, const PAL::SessionID&);
     85WEBCORE_EXPORT bool verifyVaryingRequestHeaders(const CookieJar*, const Vector<std::pair<String, String>>& varyingRequestHeaders, const ResourceRequest&, const PAL::SessionID&);
    8686
    8787WEBCORE_EXPORT bool isStatusCodeCacheableByDefault(int statusCode);
  • trunk/Source/WebCore/platform/network/CookieRequestHeaderFieldProxy.h

    r239427 r240014  
    2626#pragma once
    2727
    28 #include "CookiesStrategy.h"
     28#include "CookieJar.h"
    2929#include "SameSiteInfo.h"
    3030#include <pal/SessionID.h>
  • trunk/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNetWin.cpp

    r239724 r240014  
    2929#include "Cookie.h"
    3030#include "CookieRequestHeaderFieldProxy.h"
    31 #include "CookiesStrategy.h"
    3231#include "NotImplemented.h"
    3332#include <CFNetwork/CFHTTPCookiesPriv.h>
  • trunk/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm

    r239709 r240014  
    3030#import "CookieRequestHeaderFieldProxy.h"
    3131#import "CookieStorageObserver.h"
    32 #import "CookiesStrategy.h"
    3332#import "SameSiteInfo.h"
    3433#import <pal/spi/cf/CFNetworkSPI.h>
  • trunk/Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp

    r239427 r240014  
    3333#if USE(CURL)
    3434
     35#include "CookieJar.h"
    3536#include "CookieJarCurl.h"
    36 #include "CookiesStrategy.h"
    3737#include "CredentialStorage.h"
    3838#include "CurlCacheManager.h"
  • trunk/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp

    r234619 r240014  
    9797        return;
    9898
    99     m_snapshotResource->setCachedImage(new CachedImage(image, page().sessionID()));
     99    m_snapshotResource->setCachedImage(new CachedImage(image, page().sessionID(), &page().cookieJar()));
    100100    repaint();
    101101}
  • trunk/Source/WebCore/testing/Internals.cpp

    r239840 r240014  
    48534853        return { };
    48544854
     4855    auto* page = document->page();
     4856    if (!page)
     4857        return { };
     4858
    48554859    Vector<Cookie> cookies;
    4856     getRawCookies(*document, document->cookieURL(), cookies);
     4860    page->cookieJar().getRawCookies(*document, document->cookieURL(), cookies);
    48574861    return WTF::map(cookies, [](auto& cookie) {
    48584862        return CookieData { cookie };
  • trunk/Source/WebKit/ChangeLog

    r240013 r240014  
     12019-01-15  Alex Christensen  <achristensen@webkit.org>
     2
     3        Stop using CookiesStrategy
     4        https://bugs.webkit.org/show_bug.cgi?id=161106
     5
     6        Reviewed by Don Olmstead and Antti Koivisto.
     7
     8        * NetworkProcess/NetworkProcessPlatformStrategies.cpp:
     9        (WebKit::NetworkProcessPlatformStrategies::createCookiesStrategy): Deleted.
     10        * NetworkProcess/NetworkProcessPlatformStrategies.h:
     11        * NetworkProcess/curl/NetworkDataTaskCurl.cpp:
     12        * Scripts/webkit/messages.py:
     13        * Sources.txt:
     14        * WebKit.xcodeproj/project.pbxproj:
     15        * WebProcess/Automation/WebAutomationSessionProxy.cpp:
     16        (WebKit::WebAutomationSessionProxy::getCookiesForFrame):
     17        (WebKit::WebAutomationSessionProxy::deleteCookie):
     18        * WebProcess/Plugins/PluginView.cpp:
     19        (WebKit::PluginView::cookiesForURL):
     20        (WebKit::PluginView::setCookiesForURL):
     21        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
     22        (WebKit::WebPlatformStrategies::createCookiesStrategy): Deleted.
     23        (WebKit::WebPlatformStrategies::cookiesForDOM): Deleted.
     24        (WebKit::WebPlatformStrategies::setCookiesFromDOM): Deleted.
     25        (WebKit::WebPlatformStrategies::cookiesEnabled): Deleted.
     26        (WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue): Deleted.
     27        (WebKit::WebPlatformStrategies::getRawCookies): Deleted.
     28        (WebKit::WebPlatformStrategies::deleteCookie): Deleted.
     29        * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
     30        * WebProcess/WebPage/WebCookieJar.cpp: Added.
     31        (WebKit::WebCookieJar::cookies const):
     32        (WebKit::WebCookieJar::setCookies):
     33        (WebKit::WebCookieJar::cookiesEnabled const):
     34        (WebKit::WebCookieJar::cookieRequestHeaderFieldValue const):
     35        (WebKit::WebCookieJar::getRawCookies const):
     36        (WebKit::WebCookieJar::deleteCookie):
     37        * WebProcess/WebPage/WebCookieJar.h: Added.
     38        * WebProcess/WebPage/WebPage.cpp:
     39        (WebKit::m_shouldAttachDrawingAreaOnPageTransition):
     40
    1412019-01-15  Per Arne Vollan  <pvollan@apple.com>
    242
  • trunk/Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.cpp

    r235101 r240014  
    3939}
    4040
    41 CookiesStrategy* NetworkProcessPlatformStrategies::createCookiesStrategy()
    42 {
    43     return nullptr;
    44 }
    45 
    4641LoaderStrategy* NetworkProcessPlatformStrategies::createLoaderStrategy()
    4742{
  • trunk/Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.h

    r204287 r240014  
    2424 */
    2525
    26 #ifndef NetworkProcessPlatformStrategies_h
    27 #define NetworkProcessPlatformStrategies_h
     26#pragma once
    2827
    2928#include <WebCore/LoaderStrategy.h>
     
    3837private:
    3938    // WebCore::PlatformStrategies
    40     WebCore::CookiesStrategy* createCookiesStrategy() override;
    4139    WebCore::LoaderStrategy* createLoaderStrategy() override;
    4240    WebCore::PasteboardStrategy* createPasteboardStrategy() override;
     
    4543
    4644} // namespace WebKit
    47 
    48 
    49 #endif // NetworkProcessPlatformStrategies_h
  • trunk/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp

    r239550 r240014  
    3131#include "NetworkSessionCurl.h"
    3232#include <WebCore/AuthenticationChallenge.h>
    33 #include <WebCore/CookiesStrategy.h>
    3433#include <WebCore/CurlRequest.h>
    3534#include <WebCore/NetworkStorageSession.h>
  • trunk/Source/WebKit/Scripts/webkit/messages.py

    r239427 r240014  
    407407        'WebCore::HasInsecureContent': ['<WebCore/FrameLoaderTypes.h>'],
    408408        'WebCore::Highlight': ['<WebCore/InspectorOverlay.h>'],
    409         'WebCore::IncludeSecureCookies': ['<WebCore/CookiesStrategy.h>'],
     409        'WebCore::IncludeSecureCookies': ['<WebCore/CookieJar.h>'],
    410410        'WebCore::KeyframeValueList': ['<WebCore/GraphicsLayer.h>'],
    411411        'WebCore::KeypressCommand': ['<WebCore/KeyboardEvent.h>'],
  • trunk/Source/WebKit/Sources.txt

    r239993 r240014  
    540540WebProcess/WebPage/WebBackForwardListProxy.cpp
    541541WebProcess/WebPage/WebContextMenu.cpp
     542WebProcess/WebPage/WebCookieJar.cpp
    542543WebProcess/WebPage/WebDocumentLoader.cpp
    543544WebProcess/WebPage/WebFrame.cpp
  • trunk/Source/WebKit/UIProcess/Cocoa/WKSafeBrowsingWarning.mm

    r239408 r240014  
    369369    ViewType *box = _box.get().get();
    370370    ButtonType *showDetails = box.subviews.lastObject;
     371    WTFLogAlways("SHOW DETAILS BUTTON? %@", showDetails);
    371372    [showDetails removeFromSuperview];
    372373
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r239993 r240014  
    10511051                5C4B9D8B210A8CCF008F14D1 /* UndoOrRedo.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C4B9D8A210A8C46008F14D1 /* UndoOrRedo.h */; };
    10521052                5C62FDF91EFC271C00CE072E /* WKURLSchemeTaskPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C62FDF81EFC263C00CE072E /* WKURLSchemeTaskPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
     1053                5C7FB47021E97DC5009E3241 /* WebCookieJar.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C7FB46F21E97C0C009E3241 /* WebCookieJar.h */; };
    10531054                5C8BC797218CBB4800813886 /* SafeBrowsing.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5C8BC796218CB58A00813886 /* SafeBrowsing.xcassets */; };
    10541055                5C8DD3801FE4521600F2A556 /* WebsiteAutoplayPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C8DD37F1FE4519200F2A556 /* WebsiteAutoplayPolicy.h */; };
     
    34313432                5C7ACFD1218DD8BD004CBB59 /* Network-OSX.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "Network-OSX.entitlements"; sourceTree = "<group>"; };
    34323433                5C7C88DC1D0F41A0009D2F6D /* WebSocketProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebSocketProvider.h; path = Network/WebSocketProvider.h; sourceTree = "<group>"; };
     3434                5C7FB46E21E97C0B009E3241 /* WebCookieJar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebCookieJar.cpp; sourceTree = "<group>"; };
     3435                5C7FB46F21E97C0C009E3241 /* WebCookieJar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCookieJar.h; sourceTree = "<group>"; };
    34333436                5C84CF901F96AC4E00B6705A /* NetworkSessionCreationParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkSessionCreationParameters.h; sourceTree = "<group>"; };
    34343437                5C85C7861C3F23C50061A4FA /* PendingDownload.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PendingDownload.cpp; sourceTree = "<group>"; };
     
    72207223                                51871B59127CB89D00F76232 /* WebContextMenu.cpp */,
    72217224                                51871B5A127CB89D00F76232 /* WebContextMenu.h */,
     7225                                5C7FB46E21E97C0B009E3241 /* WebCookieJar.cpp */,
     7226                                5C7FB46F21E97C0C009E3241 /* WebCookieJar.h */,
    72227227                                1A5B1C5218987EDF004FCF9B /* WebDocumentLoader.cpp */,
    72237228                                1A5B1C5318987EDF004FCF9B /* WebDocumentLoader.h */,
     
    93599364                                51ACBBA0127A8F2C00D203B9 /* WebContextMenuProxyMac.h in Headers */,
    93609365                                BCF4DE25168FA44800C94AFC /* WebContextSupplement.h in Headers */,
     9366                                5C7FB47021E97DC5009E3241 /* WebCookieJar.h in Headers */,
    93619367                                330934501315B94D0097A7BC /* WebCookieManager.h in Headers */,
    93629368                                330934481315B9220097A7BC /* WebCookieManagerMessages.h in Headers */,
  • trunk/Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp

    r239477 r240014  
    751751    Vector<WebCore::Cookie> foundCookies;
    752752    if (!document.cookieURL().isEmpty())
    753         WebCore::getRawCookies(document, document.cookieURL(), foundCookies);
     753        page->corePage()->cookieJar().getRawCookies(document, document.cookieURL(), foundCookies);
    754754
    755755    WebProcess::singleton().parentProcessConnection()->send(Messages::WebAutomationSession::DidGetCookiesForFrame(callbackID, foundCookies, String()), 0);
     
    773773
    774774    auto& document = *frame->coreFrame()->document();
    775     WebCore::deleteCookie(document, document.cookieURL(), cookieName);
     775    page->corePage()->cookieJar().deleteCookie(document, document.cookieURL(), cookieName);
    776776
    777777    WebProcess::singleton().parentProcessConnection()->send(Messages::WebAutomationSession::DidDeleteCookie(callbackID, String()), 0);
  • trunk/Source/WebKit/WebProcess/Plugins/PluginView.cpp

    r239535 r240014  
    15821582String PluginView::cookiesForURL(const String& urlString)
    15831583{
    1584     return cookies(m_pluginElement->document(), URL(URL(), urlString));
     1584    if (auto* page = m_pluginElement->document().page())
     1585        return page->cookieJar().cookies(m_pluginElement->document(), URL(URL(), urlString));
     1586    ASSERT_NOT_REACHED();
     1587    return { };
    15851588}
    15861589
    15871590void PluginView::setCookiesForURL(const String& urlString, const String& cookieString)
    15881591{
    1589     setCookies(m_pluginElement->document(), URL(URL(), urlString), cookieString);
     1592    if (auto* page = m_pluginElement->document().page())
     1593        page->cookieJar().setCookies(m_pluginElement->document(), URL(URL(), urlString), cookieString);
     1594    else
     1595        ASSERT_NOT_REACHED();
    15901596}
    15911597
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp

    r239815 r240014  
    8585}
    8686
    87 CookiesStrategy* WebPlatformStrategies::createCookiesStrategy()
     87LoaderStrategy* WebPlatformStrategies::createLoaderStrategy()
     88{
     89    return &WebProcess::singleton().webLoaderStrategy();
     90}
     91
     92PasteboardStrategy* WebPlatformStrategies::createPasteboardStrategy()
    8893{
    8994    return this;
    9095}
    9196
    92 LoaderStrategy* WebPlatformStrategies::createLoaderStrategy()
    93 {
    94     return &WebProcess::singleton().webLoaderStrategy();
    95 }
    96 
    97 PasteboardStrategy* WebPlatformStrategies::createPasteboardStrategy()
    98 {
    99     return this;
    100 }
    101 
    10297BlobRegistry* WebPlatformStrategies::createBlobRegistry()
    10398{
    10499    return new BlobRegistryProxy;
    105 }
    106 
    107 // CookiesStrategy
    108 
    109 std::pair<String, bool> WebPlatformStrategies::cookiesForDOM(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies)
    110 {
    111     String cookieString;
    112     bool secureCookiesAccessed = false;
    113     if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookiesForDOM(sessionID, firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies), Messages::NetworkConnectionToWebProcess::CookiesForDOM::Reply(cookieString, secureCookiesAccessed), 0))
    114         return { String(), false };
    115 
    116     return { cookieString, secureCookiesAccessed };
    117 }
    118 
    119 void WebPlatformStrategies::setCookiesFromDOM(const PAL::SessionID& sessionID, const URL& firstParty, const WebCore::SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& cookieString)
    120 {
    121     WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::SetCookiesFromDOM(sessionID, firstParty, sameSiteInfo, url, frameID, pageID, cookieString), 0);
    122 }
    123 
    124 bool WebPlatformStrategies::cookiesEnabled(const PAL::SessionID& sessionID)
    125 {
    126     bool result;
    127     if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookiesEnabled(sessionID), Messages::NetworkConnectionToWebProcess::CookiesEnabled::Reply(result), 0))
    128         return false;
    129     return result;
    130 }
    131 
    132 std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies)
    133 {
    134     String cookieString;
    135     bool secureCookiesAccessed = false;
    136     if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookieRequestHeaderFieldValue(sessionID, firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies), Messages::NetworkConnectionToWebProcess::CookieRequestHeaderFieldValue::Reply(cookieString, secureCookiesAccessed), 0))
    137         return { String(), false };
    138     return { cookieString, secureCookiesAccessed };
    139 }
    140 
    141 bool WebPlatformStrategies::getRawCookies(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>& rawCookies)
    142 {
    143     if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::GetRawCookies(sessionID, firstParty, sameSiteInfo, url, frameID, pageID), Messages::NetworkConnectionToWebProcess::GetRawCookies::Reply(rawCookies), 0))
    144         return false;
    145     return true;
    146 }
    147 
    148 void WebPlatformStrategies::deleteCookie(const PAL::SessionID& sessionID, const URL& url, const String& cookieName)
    149 {
    150     WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::DeleteCookie(sessionID, url, cookieName), 0);
    151100}
    152101
  • trunk/Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.h

    r239737 r240014  
    2626#pragma once
    2727
    28 #include <WebCore/CookiesStrategy.h>
    2928#include <WebCore/LoaderStrategy.h>
    3029#include <WebCore/PasteboardStrategy.h>
     
    3332namespace WebKit {
    3433
    35 class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::CookiesStrategy, private WebCore::PasteboardStrategy {
     34class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::PasteboardStrategy {
    3635    friend NeverDestroyed<WebPlatformStrategies>;
    3736public:
     
    4241   
    4342    // WebCore::PlatformStrategies
    44     WebCore::CookiesStrategy* createCookiesStrategy() override;
    4543    WebCore::LoaderStrategy* createLoaderStrategy() override;
    4644    WebCore::PasteboardStrategy* createPasteboardStrategy() override;
    4745    WebCore::BlobRegistry* createBlobRegistry() override;
    48 
    49     // WebCore::CookiesStrategy
    50     std::pair<String, bool> cookiesForDOM(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override;
    51     void setCookiesFromDOM(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&) override;
    52     bool cookiesEnabled(const PAL::SessionID&) override;
    53     std::pair<String, bool> cookieRequestHeaderFieldValue(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override;
    54     bool getRawCookies(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<WebCore::Cookie>&) override;
    55     void deleteCookie(const PAL::SessionID&, const URL&, const String&) override;
    5646
    5747    // WebCore::PasteboardStrategy
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp

    r239993 r240014  
    7676#include "WebContextMenu.h"
    7777#include "WebContextMenuClient.h"
     78#include "WebCookieJar.h"
    7879#include "WebCoreArgumentCoders.h"
    7980#include "WebDataListSuggestionPicker.h"
     
    418419        makeUniqueRef<WebKit::LibWebRTCProvider>(),
    419420        WebProcess::singleton().cacheStorageProvider(),
    420         WebBackForwardListProxy::create(*this)
     421        WebBackForwardListProxy::create(*this),
     422        WebCookieJar::create()
    421423    );
    422424    pageConfiguration.chromeClient = new WebChromeClient(*this);
  • trunk/Source/WebKitLegacy/mac/ChangeLog

    r240010 r240014  
     12019-01-15  Alex Christensen  <achristensen@webkit.org>
     2
     3        Stop using CookiesStrategy
     4        https://bugs.webkit.org/show_bug.cgi?id=161106
     5
     6        Reviewed by Don Olmstead and Antti Koivisto.
     7
     8        * Misc/WebCache.mm:
     9        (+[WebCache addImageToCache:forURL:forFrame:]):
     10        * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
     11        (WebKit::NetscapePluginInstanceProxy::getCookies):
     12        (WebKit::NetscapePluginInstanceProxy::setCookies):
     13        * Plugins/WebNetscapePluginView.mm:
     14        (-[WebNetscapePluginView getVariable:forURL:value:length:]):
     15        (-[WebNetscapePluginView setVariable:forURL:value:length:]):
     16        * WebCoreSupport/WebPlatformStrategies.h:
     17        * WebCoreSupport/WebPlatformStrategies.mm:
     18        (WebPlatformStrategies::createCookiesStrategy): Deleted.
     19        (WebPlatformStrategies::cookiesForDOM): Deleted.
     20        (WebPlatformStrategies::setCookiesFromDOM): Deleted.
     21        (WebPlatformStrategies::cookiesEnabled): Deleted.
     22        (WebPlatformStrategies::cookieRequestHeaderFieldValue): Deleted.
     23        (WebPlatformStrategies::getRawCookies): Deleted.
     24        (WebPlatformStrategies::deleteCookie): Deleted.
     25        * WebView/WebView.mm:
     26        (-[WebView _commonInitializationWithFrameName:groupName:]):
     27        (-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
     28
    1292019-01-15  Tim Horton  <timothy_horton@apple.com>
    230
  • trunk/Source/WebKitLegacy/mac/Misc/WebCache.mm

    r237266 r240014  
    3333#import <JavaScriptCore/InitializeThreading.h>
    3434#import <WebCore/ApplicationCacheStorage.h>
     35#import <WebCore/CookieJar.h>
    3536#import <WebCore/CredentialStorage.h>
    3637#import <WebCore/CrossOriginPreflightResultCache.h>
     
    164165        return false;
    165166
    166     return WebCore::MemoryCache::singleton().addImageToCache(RetainPtr<CGImageRef>(image), url, frame ? core(frame)->document()->domainForCachePartition() : emptyString());
     167    return WebCore::MemoryCache::singleton().addImageToCache(RetainPtr<CGImageRef>(image), url, frame ? core(frame)->document()->domainForCachePartition() : emptyString(), PAL::SessionID::defaultSessionID(), WebCore::CookieJar::create().ptr());
    167168}
    168169
  • trunk/Source/WebKitLegacy/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm

    r239709 r240014  
    5555#import <WebCore/FrameLoader.h>
    5656#import <WebCore/FrameTree.h>
     57#import <WebCore/Page.h>
    5758#import <WebCore/PlatformEventFactoryMac.h>
    5859#import <WebCore/ProxyServer.h>
     
    15681569        if (!document)
    15691570            return false;
    1570 
    1571         String cookieString = cookies(*document, url);
     1571       
     1572        auto* page = document->page();
     1573        if (!page)
     1574            return false;
     1575
     1576        String cookieString = page->cookieJar().cookies(*document, url);
    15721577        WTF::CString cookieStringUTF8 = cookieString.utf8();
    15731578        if (cookieStringUTF8.isNull())
     
    16011606            return false;
    16021607
    1603         WebCore::setCookies(*document, url, cookieString);
     1608        auto* page = document->page();
     1609        if (!page)
     1610            return false;
     1611       
     1612        page->cookieJar().setCookies(*document, url, cookieString);
    16041613        return true;
    16051614    }
  • trunk/Source/WebKitLegacy/mac/Plugins/WebNetscapePluginView.mm

    r239535 r240014  
    21352135                if (!document)
    21362136                    break;
    2137 
    2138                 String cookieString = cookies(*document, URL);
     2137               
     2138                auto* page = document->page();
     2139                if (!page)
     2140                    break;
     2141
     2142                String cookieString = page->cookieJar().cookies(*document, URL);
    21392143                CString cookieStringUTF8 = cookieString.utf8();
    21402144                if (cookieStringUTF8.isNull())
     
    21862190           
    21872191            if (Frame* frame = core([self webFrame])) {
    2188                 if (auto* document = frame->document())
    2189                     setCookies(*document, URL, cookieString);
     2192                if (auto* document = frame->document()) {
     2193                    if (auto* page = document->page())
     2194                        page->cookieJar().setCookies(*document, URL, cookieString);
     2195                }
    21902196                return NPERR_NO_ERROR;
    21912197            }
  • trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.h

    r239737 r240014  
    2626#pragma once
    2727
    28 #include <WebCore/CookiesStrategy.h>
    2928#include <WebCore/LoaderStrategy.h>
    3029#include <WebCore/PasteboardStrategy.h>
     
    3534struct PasteboardCustomData;
    3635
    37 class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::CookiesStrategy, private WebCore::PasteboardStrategy {
     36class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::PasteboardStrategy {
    3837public:
    3938    static void initializeIfNecessary();
     
    4342   
    4443    // WebCore::PlatformStrategies
    45     WebCore::CookiesStrategy* createCookiesStrategy() override;
    4644    WebCore::LoaderStrategy* createLoaderStrategy() override;
    4745    WebCore::PasteboardStrategy* createPasteboardStrategy() override;
    4846    WebCore::BlobRegistry* createBlobRegistry() override;
    49 
    50     // WebCore::CookiesStrategy
    51     std::pair<String, bool> cookiesForDOM(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override;
    52     void setCookiesFromDOM(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&) override;
    53     bool cookiesEnabled(const PAL::SessionID&) override;
    54     std::pair<String, bool> cookieRequestHeaderFieldValue(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override;
    55     bool getRawCookies(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<WebCore::Cookie>&) override;
    56     void deleteCookie(const PAL::SessionID&, const URL&, const String&) override;
    5747
    5848    // WebCore::PasteboardStrategy
  • trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.mm

    r239737 r240014  
    5353}
    5454
    55 CookiesStrategy* WebPlatformStrategies::createCookiesStrategy()
     55LoaderStrategy* WebPlatformStrategies::createLoaderStrategy()
     56{
     57    return new WebResourceLoadScheduler;
     58}
     59
     60PasteboardStrategy* WebPlatformStrategies::createPasteboardStrategy()
    5661{
    5762    return this;
    5863}
    5964
    60 LoaderStrategy* WebPlatformStrategies::createLoaderStrategy()
    61 {
    62     return new WebResourceLoadScheduler;
    63 }
    64 
    65 PasteboardStrategy* WebPlatformStrategies::createPasteboardStrategy()
    66 {
    67     return this;
    68 }
    69 
    7065BlobRegistry* WebPlatformStrategies::createBlobRegistry()
    7166{
    7267    return new WebCore::BlobRegistryImpl;
    73 }
    74 
    75 std::pair<String, bool> WebPlatformStrategies::cookiesForDOM(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies)
    76 {
    77     auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession();
    78     return session.cookiesForDOM(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies);
    79 }
    80 
    81 void WebPlatformStrategies::setCookiesFromDOM(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& cookieString)
    82 {
    83     auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession();
    84     session.setCookiesFromDOM(firstParty, sameSiteInfo, url, frameID, pageID, cookieString);
    85 }
    86 
    87 bool WebPlatformStrategies::cookiesEnabled(const PAL::SessionID& sessionID)
    88 {
    89     auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession();
    90     return session.cookiesEnabled();
    91 }
    92 
    93 std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies)
    94 {
    95     auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession();
    96     return session.cookieRequestHeaderFieldValue(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies);
    97 }
    98 
    99 bool WebPlatformStrategies::getRawCookies(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>& rawCookies)
    100 {
    101     auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession();
    102     return session.getRawCookies(firstParty, sameSiteInfo, url, frameID, pageID, rawCookies);
    103 }
    104 
    105 void WebPlatformStrategies::deleteCookie(const PAL::SessionID& sessionID, const URL& url, const String& cookieName)
    106 {
    107     auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession();
    108     session.deleteCookie(url, cookieName);
    10968}
    11069
  • trunk/Source/WebKitLegacy/mac/WebView/WebView.mm

    r240010 r240014  
    135135#import <WebCore/Chrome.h>
    136136#import <WebCore/ColorMac.h>
     137#import <WebCore/CookieJar.h>
    137138#import <WebCore/DatabaseManager.h>
    138139#import <WebCore/DeprecatedGlobalSettings.h>
     
    14451446        LibWebRTCProvider::create(),
    14461447        WebCore::CacheStorageProvider::create(),
    1447         BackForwardList::create(self)
     1448        BackForwardList::create(self),
     1449        CookieJar::create()
    14481450    );
    14491451#if !PLATFORM(IOS_FAMILY)
     
    17101712        LibWebRTCProvider::create(),
    17111713        WebCore::CacheStorageProvider::create(),
    1712         BackForwardList::create(self)
     1714        BackForwardList::create(self),
     1715        CookieJar::create()
    17131716    );
    17141717    pageConfiguration.chromeClient = new WebChromeClientIOS(self);
  • trunk/Source/WebKitLegacy/win/ChangeLog

    r239737 r240014  
     12019-01-15  Alex Christensen  <achristensen@webkit.org>
     2
     3        Stop using CookiesStrategy
     4        https://bugs.webkit.org/show_bug.cgi?id=161106
     5
     6        Reviewed by Don Olmstead and Antti Koivisto.
     7
     8        * Plugins/PluginView.cpp:
     9        (WebCore::PluginView::getValueForURL):
     10        (WebCore::PluginView::setValueForURL):
     11        * WebCoreSupport/WebPlatformStrategies.cpp:
     12        (WebPlatformStrategies::createBlobRegistry):
     13        (WebPlatformStrategies::createCookiesStrategy): Deleted.
     14        (WebPlatformStrategies::cookiesForDOM): Deleted.
     15        (WebPlatformStrategies::setCookiesFromDOM): Deleted.
     16        (WebPlatformStrategies::cookiesEnabled): Deleted.
     17        (WebPlatformStrategies::cookieRequestHeaderFieldValue): Deleted.
     18        (WebPlatformStrategies::getRawCookies): Deleted.
     19        (WebPlatformStrategies::deleteCookie): Deleted.
     20        * WebCoreSupport/WebPlatformStrategies.h:
     21        * WebView.cpp:
     22        (WebView::initWithFrame):
     23
    1242019-01-08  Alex Christensen  <achristensen@webkit.org>
    225
  • trunk/Source/WebKitLegacy/win/Plugins/PluginView.cpp

    r239535 r240014  
    12771277            Frame* frame = getFrame(parentFrame(), m_element);
    12781278            if (frame && frame->document()) {
    1279                 const CString cookieStr = cookies(*frame->document(), u).utf8();
    1280                 if (!cookieStr.isNull()) {
    1281                     const int size = cookieStr.length();
    1282                     *value = static_cast<char*>(NPN_MemAlloc(size+1));
    1283                     if (*value) {
    1284                         memset(*value, 0, size+1);
    1285                         memcpy(*value, cookieStr.data(), size+1);
    1286                         if (len)
    1287                             *len = size;
    1288                     } else
    1289                         result = NPERR_OUT_OF_MEMORY_ERROR;
     1279                if (auto* page = frame->document()->page()) {
     1280                    const CString cookieStr = page->cookieJar().cookies(*frame->document(), u).utf8();
     1281                    if (!cookieStr.isNull()) {
     1282                        const int size = cookieStr.length();
     1283                        *value = static_cast<char*>(NPN_MemAlloc(size+1));
     1284                        if (*value) {
     1285                            memset(*value, 0, size+1);
     1286                            memcpy(*value, cookieStr.data(), size+1);
     1287                            if (len)
     1288                                *len = size;
     1289                        } else
     1290                            result = NPERR_OUT_OF_MEMORY_ERROR;
     1291                    }
    12901292                }
    12911293            }
     
    13351337            const String cookieStr = String::fromUTF8(value, len);
    13361338            Frame* frame = getFrame(parentFrame(), m_element);
    1337             if (frame && frame->document() && !cookieStr.isEmpty())
    1338                 setCookies(*frame->document(), u, cookieStr);
     1339            if (frame && frame->document() && !cookieStr.isEmpty()) {
     1340                if (auto* page = frame->document()->page())
     1341                    page->cookieJar().setCookies(*frame->document(), u, cookieStr);
     1342            }
    13391343        } else
    13401344            result = NPERR_INVALID_URL;
  • trunk/Source/WebKitLegacy/win/WebCoreSupport/WebPlatformStrategies.cpp

    r239737 r240014  
    5050}
    5151
    52 CookiesStrategy* WebPlatformStrategies::createCookiesStrategy()
    53 {
    54     return this;
    55 }
    56 
    5752LoaderStrategy* WebPlatformStrategies::createLoaderStrategy()
    5853{
     
    6964    return new BlobRegistryImpl;
    7065}
    71 
    72 std::pair<String, bool> WebPlatformStrategies::cookiesForDOM(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies)
    73 {
    74     auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession();
    75     return session.cookiesForDOM(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies);
    76 }
    77 
    78 void WebPlatformStrategies::setCookiesFromDOM(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String& cookieString)
    79 {
    80     auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession();
    81     session.setCookiesFromDOM(firstParty, sameSiteInfo, url, frameID, pageID, cookieString);
    82 }
    83 
    84 bool WebPlatformStrategies::cookiesEnabled(const PAL::SessionID& sessionID)
    85 {
    86     auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession();
    87     return session.cookiesEnabled();
    88 }
    89 
    90 std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies)
    91 {
    92     auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession();
    93     return session.cookieRequestHeaderFieldValue(firstParty, sameSiteInfo, url, frameID, pageID, includeSecureCookies);
    94 }
    95 
    96 bool WebPlatformStrategies::getRawCookies(const PAL::SessionID& sessionID, const URL& firstParty, const SameSiteInfo& sameSiteInfo, const URL& url, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<Cookie>& rawCookies)
    97 {
    98     auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession();
    99     return session.getRawCookies(firstParty, sameSiteInfo, url, frameID, pageID, rawCookies);
    100 }
    101 
    102 void WebPlatformStrategies::deleteCookie(const PAL::SessionID& sessionID, const URL& url, const String& cookieName)
    103 {
    104     auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession();
    105     session.deleteCookie(url, cookieName);
    106 }
  • trunk/Source/WebKitLegacy/win/WebCoreSupport/WebPlatformStrategies.h

    r239737 r240014  
    2626#pragma once
    2727
    28 #include <WebCore/CookiesStrategy.h>
    2928#include <WebCore/LoaderStrategy.h>
    3029#include <WebCore/PlatformStrategies.h>
    3130#include <wtf/Forward.h>
    3231
    33 class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::CookiesStrategy {
     32class WebPlatformStrategies : public WebCore::PlatformStrategies {
    3433public:
    3534    static void initialize();
     
    4039
    4140    // WebCore::PlatformStrategies
    42     virtual WebCore::CookiesStrategy* createCookiesStrategy();
    4341    virtual WebCore::LoaderStrategy* createLoaderStrategy();
    4442    virtual WebCore::PasteboardStrategy* createPasteboardStrategy();
    4543    virtual WebCore::BlobRegistry* createBlobRegistry();
    46 
    47     // WebCore::CookiesStrategy
    48     std::pair<String, bool> cookiesForDOM(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override;
    49     virtual void setCookiesFromDOM(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, const String&);
    50     virtual bool cookiesEnabled(const PAL::SessionID&);
    51     std::pair<String, bool> cookieRequestHeaderFieldValue(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override;
    52     virtual bool getRawCookies(const PAL::SessionID&, const URL& firstParty, const WebCore::SameSiteInfo&, const URL&, Optional<uint64_t> frameID, Optional<uint64_t> pageID, Vector<WebCore::Cookie>&);
    53     virtual void deleteCookie(const PAL::SessionID&, const URL&, const String&);
    5444};
  • trunk/Source/WebKitLegacy/win/WebView.cpp

    r239549 r240014  
    31113111        makeUniqueRef<LibWebRTCProvider>(),
    31123112        WebCore::CacheStorageProvider::create(),
    3113         BackForwardList::create()
     3113        BackForwardList::create(),
     3114        CookieJar::create()
    31143115    );
    31153116    configuration.chromeClient = new WebChromeClient(this);
Note: See TracChangeset for help on using the changeset viewer.