Changeset 240014 in webkit
- Timestamp:
- Jan 15, 2019, 3:31:33 PM (7 years ago)
- Location:
- trunk/Source
- Files:
-
- 2 added
- 1 deleted
- 78 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r240012 r240014 1 2019-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 1 127 2019-01-15 Simon Fraser <simon.fraser@apple.com> 2 128 -
trunk/Source/WebCore/Modules/beacon/NavigatorBeacon.cpp
r239427 r240014 33 33 #include "HTTPParsers.h" 34 34 #include "Navigator.h" 35 #include "Page.h" 35 36 #include <wtf/URL.h> 36 37 -
trunk/Source/WebCore/Modules/websockets/WebSocketChannel.cpp
r230875 r240014 451 451 String serverSetCookie = m_handshake->serverSetCookie(); 452 452 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); 455 455 } 456 456 LOG(Network, "WebSocketChannel %p Connected", this); -
trunk/Source/WebCore/Modules/websockets/WebSocketHandshake.cpp
r239427 r240014 243 243 244 244 URL url = httpURLForAuthenticationAndCookies(); 245 if (m_allowCookies && m_document ) {245 if (m_allowCookies && m_document && m_document->page()) { 246 246 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); 248 248 if (!cookie.isEmpty()) 249 249 request.setHTTPHeaderField(HTTPHeaderName::Cookie, cookie); … … 269 269 if (!m_document || !m_allowCookies) 270 270 return WTF::nullopt; 271 return cookieRequestHeaderFieldProxy(*m_document, httpURLForAuthenticationAndCookies());271 return CookieJar::cookieRequestHeaderFieldProxy(*m_document, httpURLForAuthenticationAndCookies()); 272 272 } 273 273 -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r240005 r240014 1014 1014 33503C9A10179A74003B47E1 /* NotificationClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 33503C9910179A74003B47E1 /* NotificationClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1015 1015 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, ); }; };1017 1016 33D0212D131DB37B004091A8 /* CookieStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = E13F01EA1270E10D00DFBA71 /* CookieStorage.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1018 1017 3717D7E817ECC591003C276D /* extract-localizable-strings.pl in Copy Scripts */ = {isa = PBXBuildFile; fileRef = 3717D7E517ECC3A6003C276D /* extract-localizable-strings.pl */; }; … … 7175 7174 33503CA010179AD7003B47E1 /* JSNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSNotification.h; sourceTree = "<group>"; }; 7176 7175 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>"; };7178 7176 3662F984047CEDBE5DDDAFAA /* RenderMathMLMenclose.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMathMLMenclose.cpp; sourceTree = "<group>"; }; 7179 7177 37119A7920CCB610002C6DC9 /* WebKitTargetConditionals.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = WebKitTargetConditionals.xcconfig; sourceTree = "<group>"; }; … … 25278 25276 311C08BC18E35D6800B65615 /* ControlStates.h */, 25279 25277 D8B6152E1032495100C8554A /* Cookie.h */, 25280 339B5B62131DAA3200F48D02 /* CookiesStrategy.h */,25281 25278 862F129D18C1572C005C54AF /* CountedUserActivity.h */, 25282 25279 46C696CA1E7205E400597937 /* CPUMonitor.cpp */, … … 28583 28580 E1424C94164B52C800F32D40 /* CookieJar.h in Headers */, 28584 28581 7A5699702086C619000E0433 /* CookieRequestHeaderFieldProxy.h in Headers */, 28585 339B5B63131DAA3200F48D02 /* CookiesStrategy.h in Headers */,28586 28582 33D0212D131DB37B004091A8 /* CookieStorage.h in Headers */, 28587 28583 5120BBAF1F1CECE700EFEBF1 /* CookieStorageObserver.h in Headers */, -
trunk/Source/WebCore/css/StyleRuleImport.cpp
r239427 r240014 96 96 if (!m_parentStyleSheet) 97 97 return; 98 Document* document = m_parentStyleSheet->singleOwnerDocument();98 auto* document = m_parentStyleSheet->singleOwnerDocument(); 99 99 if (!document) 100 return; 101 auto* page = document->page(); 102 if (!page) 100 103 return; 101 104 … … 142 145 request.setOptions(WTFMove(options)); 143 146 144 m_cachedSheet = document->cachedResourceLoader().requestUserCSSStyleSheet( WTFMove(request));147 m_cachedSheet = document->cachedResourceLoader().requestUserCSSStyleSheet(*page, WTFMove(request)); 145 148 } else { 146 149 auto options = request.options(); -
trunk/Source/WebCore/dom/Document.cpp
r240011 r240014 4873 4873 return String(); 4874 4874 4875 if (!isDOMCookieCacheValid() )4876 setCachedDOMCookies( cookies(*this, cookieURL));4875 if (!isDOMCookieCacheValid() && page()) 4876 setCachedDOMCookies(page()->cookieJar().cookies(*this, cookieURL)); 4877 4877 4878 4878 return String { cachedDOMCookies() }; … … 4895 4895 4896 4896 invalidateDOMCookieCache(); 4897 setCookies(*this, cookieURL, value); 4897 if (page()) 4898 page()->cookieJar().setCookies(*this, cookieURL, value); 4898 4899 return { }; 4899 4900 } -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r239640 r240014 7099 7099 bool HTMLMediaElement::mediaPlayerGetRawCookies(const URL& url, Vector<Cookie>& cookies) const 7100 7100 { 7101 return getRawCookies(document(), url, cookies); 7101 if (auto* page = document().page()) 7102 return page->cookieJar().getRawCookies(document(), url, cookies); 7103 return false; 7102 7104 } 7103 7105 #endif -
trunk/Source/WebCore/inspector/agents/InspectorPageAgent.cpp
r239904 r240014 440 440 for (Frame* frame = &mainFrame(); frame; frame = frame->tree().traverseNext()) { 441 441 Document* document = frame->document(); 442 if (!document )442 if (!document || !document->page()) 443 443 continue; 444 444 445 445 for (auto& url : allResourcesURLsForFrame(frame)) { 446 446 Vector<Cookie> docCookiesList; 447 rawCookiesImplemented = getRawCookies(*document, URL({ }, url), docCookiesList);447 rawCookiesImplemented = document->page()->cookieJar().getRawCookies(*document, URL({ }, url), docCookiesList); 448 448 449 449 if (!rawCookiesImplemented) { … … 470 470 URL parsedURL({ }, url); 471 471 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 } 474 476 } 475 477 } -
trunk/Source/WebCore/loader/CookieJar.cpp
r239737 r240014 28 28 29 29 #include "CookieRequestHeaderFieldProxy.h" 30 #include "CookiesStrategy.h"31 30 #include "Document.h" 32 31 #include "DocumentLoader.h" … … 42 41 namespace WebCore { 43 42 44 static IncludeSecureCookiesshouldIncludeSecureCookies(const Document& document, const URL& url)43 IncludeSecureCookies CookieJar::shouldIncludeSecureCookies(const Document& document, const URL& url) 45 44 { 46 45 return (url.protocolIs("https") && !document.foundMixedContent().contains(SecurityContext::MixedContentType::Active)) ? IncludeSecureCookies::Yes : IncludeSecureCookies::No; 47 46 } 48 47 49 static inline SameSiteInfosameSiteInfo(const Document& document)48 SameSiteInfo CookieJar::sameSiteInfo(const Document& document) 50 49 { 51 50 if (auto* loader = document.loader()) … … 54 53 } 55 54 56 String cookies(Document& document, const URL& url) 55 Ref<CookieJar> CookieJar::create() 56 { 57 return adoptRef(*new CookieJar); 58 } 59 60 CookieJar::~CookieJar() = default; 61 62 String CookieJar::cookies(Document& document, const URL& url) const 57 63 { 58 64 TraceScope scope(FetchCookiesStart, FetchCookiesEnd); … … 60 66 auto includeSecureCookies = shouldIncludeSecureCookies(document, url); 61 67 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 62 75 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); 66 78 else 67 result = platformStrategies()->cookiesStrategy()->cookiesForDOM(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, includeSecureCookies);79 ASSERT_NOT_REACHED(); 68 80 69 81 if (result.second) … … 73 85 } 74 86 75 CookieRequestHeaderFieldProxy cookieRequestHeaderFieldProxy(const Document& document, const URL& url)87 CookieRequestHeaderFieldProxy CookieJar::cookieRequestHeaderFieldProxy(const Document& document, const URL& url) 76 88 { 77 89 TraceScope scope(FetchCookiesStart, FetchCookiesEnd); … … 90 102 } 91 103 92 void setCookies(Document& document, const URL& url, const String& cookieString)104 void CookieJar::setCookies(Document& document, const URL& url, const String& cookieString) 93 105 { 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); 97 115 else 98 platformStrategies()->cookiesStrategy()->setCookiesFromDOM(document.sessionID(), document.firstPartyForCookies(), sameSiteInfo(document), url, WTF::nullopt, WTF::nullopt, cookieString);116 ASSERT_NOT_REACHED(); 99 117 } 100 118 101 bool cookiesEnabled(const Document& document)119 bool CookieJar::cookiesEnabled(const Document& document) const 102 120 { 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; 104 126 } 105 127 106 String cookieRequestHeaderFieldValue(Document& document, const URL& url) 128 std::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 107 129 { 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 } 109 134 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 } 116 138 117 if (result.second) 139 String 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) 118 150 document.setSecureCookiesAccessed(); 119 120 151 return result.first; 121 152 } 122 153 123 bool getRawCookies(const Document& document, const URL& url, Vector<Cookie>& cookies)154 bool CookieJar::getRawCookies(const Document& document, const URL& url, Vector<Cookie>& cookies) const 124 155 { 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 } 128 162 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; 130 168 } 131 169 132 void deleteCookie(const Document& document, const URL& url, const String& cookieName)170 void CookieJar::deleteCookie(const Document& document, const URL& url, const String& cookieName) 133 171 { 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(); 135 176 } 136 177 -
trunk/Source/WebCore/loader/CookieJar.h
r238771 r240014 29 29 #include <wtf/text/WTFString.h> 30 30 31 namespace PAL { 32 class SessionID; 33 } 34 31 35 namespace WebCore { 36 37 enum class IncludeSecureCookies : bool { No, Yes }; 38 enum class SecureCookiesAccessed : bool { No, Yes }; 32 39 33 40 class Document; 34 41 struct Cookie; 35 42 struct CookieRequestHeaderFieldProxy; 43 struct SameSiteInfo; 36 44 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. 45 class WEBCORE_EXPORT CookieJar : public RefCounted<CookieJar> { 46 public: 47 static Ref<CookieJar> create(); 48 49 static CookieRequestHeaderFieldProxy cookieRequestHeaderFieldProxy(const Document&, const URL&); 38 50 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; 42 52 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(); 63 protected: 64 static SameSiteInfo sameSiteInfo(const Document&); 65 static IncludeSecureCookies shouldIncludeSecureCookies(const Document&, const URL&); 66 }; 48 67 49 68 } // namespace WebCore -
trunk/Source/WebCore/loader/EmptyClients.cpp
r239737 r240014 34 34 #include "ColorChooser.h" 35 35 #include "ContextMenuClient.h" 36 #include "CookieJar.h" 36 37 #include "DataListSuggestionPicker.h" 37 38 #include "DatabaseProvider.h" … … 542 543 LibWebRTCProvider::create(), 543 544 CacheStorageProvider::create(), 544 adoptRef(*new EmptyBackForwardClient) 545 adoptRef(*new EmptyBackForwardClient), 546 CookieJar::create() 545 547 }; 546 548 -
trunk/Source/WebCore/loader/ImageLoader.cpp
r236927 r240014 191 191 bool autoLoadOtherImages = document.cachedResourceLoader().autoLoadImages(); 192 192 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()); 194 195 newImage->setStatus(CachedResource::Pending); 195 196 newImage->setLoading(true); -
trunk/Source/WebCore/loader/cache/CachedApplicationManifest.cpp
r239427 r240014 35 35 namespace WebCore { 36 36 37 CachedApplicationManifest::CachedApplicationManifest(CachedResourceRequest&& request, PAL::SessionID sessionID)38 : CachedResource(WTFMove(request), Type::ApplicationManifest, sessionID )37 CachedApplicationManifest::CachedApplicationManifest(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar) 38 : CachedResource(WTFMove(request), Type::ApplicationManifest, sessionID, cookieJar) 39 39 , m_decoder(TextResourceDecoder::create("application/manifest+json", UTF8Encoding())) 40 40 { -
trunk/Source/WebCore/loader/cache/CachedApplicationManifest.h
r239427 r240014 39 39 class CachedApplicationManifest final : public CachedResource { 40 40 public: 41 CachedApplicationManifest(CachedResourceRequest&&, PAL::SessionID);41 CachedApplicationManifest(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*); 42 42 43 43 Optional<struct ApplicationManifest> process(const URL& manifestURL, const URL& documentURL, RefPtr<ScriptExecutionContext> = nullptr); -
trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp
r233668 r240014 38 38 namespace WebCore { 39 39 40 CachedCSSStyleSheet::CachedCSSStyleSheet(CachedResourceRequest&& request, PAL::SessionID sessionID)41 : CachedResource(WTFMove(request), Type::CSSStyleSheet, sessionID )40 CachedCSSStyleSheet::CachedCSSStyleSheet(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar) 41 : CachedResource(WTFMove(request), Type::CSSStyleSheet, sessionID, cookieJar) 42 42 , m_decoder(TextResourceDecoder::create("text/css", request.charset())) 43 43 { -
trunk/Source/WebCore/loader/cache/CachedCSSStyleSheet.h
r233668 r240014 35 35 class CachedCSSStyleSheet final : public CachedResource { 36 36 public: 37 CachedCSSStyleSheet(CachedResourceRequest&&, PAL::SessionID);37 CachedCSSStyleSheet(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*); 38 38 virtual ~CachedCSSStyleSheet(); 39 39 -
trunk/Source/WebCore/loader/cache/CachedFont.cpp
r239156 r240014 46 46 namespace WebCore { 47 47 48 CachedFont::CachedFont(CachedResourceRequest&& request, PAL::SessionID sessionID, Type type)49 : CachedResource(WTFMove(request), type, sessionID )48 CachedFont::CachedFont(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar, Type type) 49 : CachedResource(WTFMove(request), type, sessionID, cookieJar) 50 50 , m_loadInitiated(false) 51 51 , m_hasCreatedFontDataWrappingResource(false) -
trunk/Source/WebCore/loader/cache/CachedFont.h
r233839 r240014 46 46 class CachedFont : public CachedResource { 47 47 public: 48 CachedFont(CachedResourceRequest&&, PAL::SessionID, Type = Type::FontResource);48 CachedFont(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*, Type = Type::FontResource); 49 49 virtual ~CachedFont(); 50 50 -
trunk/Source/WebCore/loader/cache/CachedImage.cpp
r239636 r240014 56 56 namespace WebCore { 57 57 58 CachedImage::CachedImage(CachedResourceRequest&& request, PAL::SessionID sessionID)59 : CachedResource(WTFMove(request), Type::ImageResource, sessionID )58 CachedImage::CachedImage(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar) 59 : CachedResource(WTFMove(request), Type::ImageResource, sessionID, cookieJar) 60 60 { 61 61 setStatus(Unknown); 62 62 } 63 63 64 CachedImage::CachedImage(Image* image, PAL::SessionID sessionID)65 : CachedResource(URL(), Type::ImageResource, sessionID )64 CachedImage::CachedImage(Image* image, const PAL::SessionID& sessionID, const CookieJar* cookieJar) 65 : CachedResource(URL(), Type::ImageResource, sessionID, cookieJar) 66 66 , m_image(image) 67 67 { 68 68 } 69 69 70 CachedImage::CachedImage(const URL& url, Image* image, PAL::SessionID sessionID, const String& domainForCachePartition)71 : CachedResource(url, Type::ImageResource, sessionID )70 CachedImage::CachedImage(const URL& url, Image* image, const PAL::SessionID& sessionID, const CookieJar* cookieJar, const String& domainForCachePartition) 71 : CachedResource(url, Type::ImageResource, sessionID, cookieJar) 72 72 , m_image(image) 73 73 , m_isManuallyCached(true) -
trunk/Source/WebCore/loader/cache/CachedImage.h
r239636 r240014 48 48 49 49 public: 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*); 52 52 // 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); 54 54 virtual ~CachedImage(); 55 55 -
trunk/Source/WebCore/loader/cache/CachedRawResource.cpp
r239427 r240014 39 39 namespace WebCore { 40 40 41 CachedRawResource::CachedRawResource(CachedResourceRequest&& request, Type type, PAL::SessionID sessionID)42 : CachedResource(WTFMove(request), type, sessionID )41 CachedRawResource::CachedRawResource(CachedResourceRequest&& request, Type type, const PAL::SessionID& sessionID, const CookieJar* cookieJar) 42 : CachedResource(WTFMove(request), type, sessionID, cookieJar) 43 43 , m_identifier(0) 44 44 , m_allowEncodedDataReplacement(true) -
trunk/Source/WebCore/loader/cache/CachedRawResource.h
r239427 r240014 33 33 class CachedRawResource final : public CachedResource { 34 34 public: 35 CachedRawResource(CachedResourceRequest&&, Type, PAL::SessionID);35 CachedRawResource(CachedResourceRequest&&, Type, const PAL::SessionID&, const CookieJar*); 36 36 37 37 void setDefersLoading(bool); -
trunk/Source/WebCore/loader/cache/CachedResource.cpp
r239974 r240014 29 29 #include "CachedResourceHandle.h" 30 30 #include "CachedResourceLoader.h" 31 #include "CookieJar.h" 31 32 #include "CrossOriginAccessControl.h" 32 33 #include "DiagnosticLoggingClient.h" … … 117 118 DEFINE_DEBUG_ONLY_GLOBAL(RefCountedLeakCounter, cachedResourceLeakCounter, ("CachedResource")); 118 119 119 CachedResource::CachedResource(CachedResourceRequest&& request, Type type, PAL::SessionID sessionID)120 CachedResource::CachedResource(CachedResourceRequest&& request, Type type, const PAL::SessionID& sessionID, const CookieJar* cookieJar) 120 121 : m_options(request.options()) 121 122 , m_resourceRequest(request.releaseResourceRequest()) 122 123 , m_decodedDataDeletionTimer(*this, &CachedResource::destroyDecodedData, deadDecodedDataDeletionIntervalForResourceType(type)) 123 124 , m_sessionID(sessionID) 125 , m_cookieJar(cookieJar) 124 126 , m_responseTimestamp(WallTime::now()) 125 127 , m_fragmentIdentifierForRequest(request.releaseFragmentIdentifier()) … … 132 134 , m_ignoreForRequestCount(request.ignoreForRequestCount()) 133 135 { 134 ASSERT( sessionID.isValid());136 ASSERT(m_sessionID.isValid()); 135 137 136 138 setLoadPriority(request.priority()); … … 147 149 148 150 // 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)151 CachedResource::CachedResource(const URL& url, Type type, const PAL::SessionID& sessionID, const CookieJar* cookieJar) 150 152 : m_resourceRequest(url) 151 153 , m_decodedDataDeletionTimer(*this, &CachedResource::destroyDecodedData, deadDecodedDataDeletionIntervalForResourceType(type)) 152 154 , m_sessionID(sessionID) 155 , m_cookieJar(cookieJar) 153 156 , m_responseTimestamp(WallTime::now()) 154 157 , m_fragmentIdentifierForRequest(CachedResourceRequest::splitFragmentIdentifierFromRequestURL(m_resourceRequest)) … … 156 159 , m_type(type) 157 160 { 158 ASSERT( sessionID.isValid());161 ASSERT(m_sessionID.isValid()); 159 162 #ifndef NDEBUG 160 163 cachedResourceLeakCounter.increment(); … … 477 480 ASSERT(m_response.type() == ResourceResponse::Type::Default); 478 481 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()); 480 483 481 484 #if ENABLE(SERVICE_WORKER) … … 859 862 return true; 860 863 861 return verifyVaryingRequestHeaders( *platformStrategies()->cookiesStrategy(), m_varyingHeaderValues, request, m_sessionID);864 return verifyVaryingRequestHeaders(cookieJar(), m_varyingHeaderValues, request, sessionID()); 862 865 } 863 866 -
trunk/Source/WebCore/loader/cache/CachedResource.h
r239427 r240014 46 46 class CachedResourceLoader; 47 47 class CachedResourceRequest; 48 class CookieJar; 48 49 class LoadTiming; 49 50 class MemoryCache; … … 95 96 }; 96 97 97 CachedResource(CachedResourceRequest&&, Type, PAL::SessionID);98 CachedResource(CachedResourceRequest&&, Type, const PAL::SessionID&, const CookieJar*); 98 99 virtual ~CachedResource(); 99 100 … … 117 118 const String& cachePartition() const { return m_resourceRequest.cachePartition(); } 118 119 PAL::SessionID sessionID() const { return m_sessionID; } 120 const CookieJar* cookieJar() const { return m_cookieJar.get(); } 119 121 Type type() const { return m_type; } 120 122 String mimeType() const { return m_response.mimeType(); } … … 280 282 protected: 281 283 // 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*); 283 285 284 286 void setEncodedSize(unsigned); … … 321 323 MonotonicTime m_lastDecodedAccessTime; // Used as a "thrash guard" in the cache 322 324 PAL::SessionID m_sessionID; 325 RefPtr<const CookieJar> m_cookieJar; 323 326 WallTime m_responseTimestamp; 324 327 unsigned long m_identifierForLoadWithoutResourceLoader { 0 }; -
trunk/Source/WebCore/loader/cache/CachedResourceLoader.cpp
r238913 r240014 102 102 } 103 103 104 static CachedResource* createResource(CachedResource::Type type, CachedResourceRequest&& request, PAL::SessionID sessionID)104 static CachedResource* createResource(CachedResource::Type type, CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar) 105 105 { 106 106 switch (type) { 107 107 case CachedResource::Type::ImageResource: 108 return new CachedImage(WTFMove(request), sessionID );108 return new CachedImage(WTFMove(request), sessionID, cookieJar); 109 109 case CachedResource::Type::CSSStyleSheet: 110 return new CachedCSSStyleSheet(WTFMove(request), sessionID );110 return new CachedCSSStyleSheet(WTFMove(request), sessionID, cookieJar); 111 111 case CachedResource::Type::Script: 112 return new CachedScript(WTFMove(request), sessionID );112 return new CachedScript(WTFMove(request), sessionID, cookieJar); 113 113 case CachedResource::Type::SVGDocumentResource: 114 return new CachedSVGDocument(WTFMove(request), sessionID );114 return new CachedSVGDocument(WTFMove(request), sessionID, cookieJar); 115 115 #if ENABLE(SVG_FONTS) 116 116 case CachedResource::Type::SVGFontResource: 117 return new CachedSVGFont(WTFMove(request), sessionID );117 return new CachedSVGFont(WTFMove(request), sessionID, cookieJar); 118 118 #endif 119 119 case CachedResource::Type::FontResource: 120 return new CachedFont(WTFMove(request), sessionID );120 return new CachedFont(WTFMove(request), sessionID, cookieJar); 121 121 case CachedResource::Type::Beacon: 122 122 case CachedResource::Type::MediaResource: … … 124 124 case CachedResource::Type::Icon: 125 125 case CachedResource::Type::MainResource: 126 return new CachedRawResource(WTFMove(request), type, sessionID );126 return new CachedRawResource(WTFMove(request), type, sessionID, cookieJar); 127 127 #if ENABLE(XSLT) 128 128 case CachedResource::Type::XSLStyleSheet: 129 return new CachedXSLStyleSheet(WTFMove(request), sessionID );129 return new CachedXSLStyleSheet(WTFMove(request), sessionID, cookieJar); 130 130 #endif 131 131 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); 133 133 #if ENABLE(VIDEO_TRACK) 134 134 case CachedResource::Type::TextTrackResource: 135 return new CachedTextTrack(WTFMove(request), sessionID );135 return new CachedTextTrack(WTFMove(request), sessionID, cookieJar); 136 136 #endif 137 137 #if ENABLE(APPLICATION_MANIFEST) 138 138 case CachedResource::Type::ApplicationManifest: 139 return new CachedApplicationManifest(WTFMove(request), sessionID );139 return new CachedApplicationManifest(WTFMove(request), sessionID, cookieJar); 140 140 #endif 141 141 } … … 237 237 } 238 238 239 CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestUserCSSStyleSheet( CachedResourceRequest&& request)239 CachedResourceHandle<CachedCSSStyleSheet> CachedResourceLoader::requestUserCSSStyleSheet(Page& page, CachedResourceRequest&& request) 240 240 { 241 241 request.setDestinationIfNotSet(FetchOptions::Destination::Style); … … 255 255 request.removeFragmentIdentifierIfNeeded(); 256 256 257 CachedResourceHandle<CachedCSSStyleSheet> userSheet = new CachedCSSStyleSheet(WTFMove(request), sessionID());257 CachedResourceHandle<CachedCSSStyleSheet> userSheet = new CachedCSSStyleSheet(WTFMove(request), page.sessionID(), &page.cookieJar()); 258 258 259 259 if (userSheet->allowsCaching()) … … 678 678 } 679 679 680 CachedResourceHandle<CachedResource> CachedResourceLoader::updateCachedResourceWithCurrentRequest(const CachedResource& resource, CachedResourceRequest&& request )680 CachedResourceHandle<CachedResource> CachedResourceLoader::updateCachedResourceWithCurrentRequest(const CachedResource& resource, CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar) 681 681 { 682 682 if (!isResourceSuitableForDirectReuse(resource, request)) { 683 683 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); 688 688 resourceHandle->loadFrom(resource); 689 689 return resourceHandle; … … 817 817 RELEASE_LOG_IF_ALLOWED("requestResource: Resource blocked by content blocker (frame = %p)", frame()); 818 818 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()); 820 820 ASSERT(resource); 821 821 resource->error(CachedResource::Status::LoadError); … … 880 880 logMemoryCacheResourceRequest(frame(), DiagnosticLoggingKeys::memoryCacheUsageKey(), resource ? DiagnosticLoggingKeys::inMemoryCacheKey() : DiagnosticLoggingKeys::notInMemoryCacheKey()); 881 881 882 auto* cookieJar = document() && document()->page() ? &document()->page()->cookieJar() : nullptr; 883 882 884 RevalidationPolicy policy = determineRevalidationPolicy(type, request, resource.get(), forPreload, defer); 883 885 switch (policy) { … … 888 890 if (resource) 889 891 logMemoryCacheResourceRequest(frame(), DiagnosticLoggingKeys::memoryCacheEntryDecisionKey(), DiagnosticLoggingKeys::unusedKey()); 890 resource = loadResource(type, WTFMove(request) );892 resource = loadResource(type, WTFMove(request), cookieJar); 891 893 break; 892 894 case Revalidate: … … 902 904 } 903 905 if (shouldUpdateCachedResourceWithCurrentRequest(*resource, request)) { 904 resource = updateCachedResourceWithCurrentRequest(*resource, WTFMove(request) );906 resource = updateCachedResourceWithCurrentRequest(*resource, WTFMove(request), document()->page()->sessionID(), cookieJar); 905 907 if (resource->status() != CachedResource::Status::Cached) 906 908 policy = Load; … … 988 990 ASSERT(resource.allowsCaching()); 989 991 990 CachedResourceHandle<CachedResource> newResource = createResource(resource.type(), WTFMove(request), resource.sessionID() );992 CachedResourceHandle<CachedResource> newResource = createResource(resource.type(), WTFMove(request), resource.sessionID(), resource.cookieJar()); 991 993 992 994 LOG(ResourceLoading, "Resource %p created to revalidate %p", newResource.get(), &resource); … … 1002 1004 } 1003 1005 1004 CachedResourceHandle<CachedResource> CachedResourceLoader::loadResource(CachedResource::Type type, CachedResourceRequest&& request )1006 CachedResourceHandle<CachedResource> CachedResourceLoader::loadResource(CachedResource::Type type, CachedResourceRequest&& request, const CookieJar* cookieJar) 1005 1007 { 1006 1008 auto& memoryCache = MemoryCache::singleton(); … … 1010 1012 LOG(ResourceLoading, "Loading CachedResource for '%s'.", request.resourceRequest().url().stringCenterEllipsizedToLength().latin1().data()); 1011 1013 1012 CachedResourceHandle<CachedResource> resource = createResource(type, WTFMove(request), sessionID() );1014 CachedResourceHandle<CachedResource> resource = createResource(type, WTFMove(request), sessionID(), cookieJar); 1013 1015 1014 1016 if (resource->allowsCaching() && !memoryCache.add(*resource)) -
trunk/Source/WebCore/loader/cache/CachedResourceLoader.h
r238771 r240014 57 57 class Frame; 58 58 class ImageLoader; 59 class Page; 59 60 class Settings; 60 61 … … 81 82 ResourceErrorOr<CachedResourceHandle<CachedImage>> requestImage(CachedResourceRequest&&); 82 83 ResourceErrorOr<CachedResourceHandle<CachedCSSStyleSheet>> requestCSSStyleSheet(CachedResourceRequest&&); 83 CachedResourceHandle<CachedCSSStyleSheet> requestUserCSSStyleSheet( CachedResourceRequest&&);84 CachedResourceHandle<CachedCSSStyleSheet> requestUserCSSStyleSheet(Page&, CachedResourceRequest&&); 84 85 ResourceErrorOr<CachedResourceHandle<CachedScript>> requestScript(CachedResourceRequest&&); 85 86 ResourceErrorOr<CachedResourceHandle<CachedFont>> requestFont(CachedResourceRequest&&, bool isSVG); … … 169 170 ResourceErrorOr<CachedResourceHandle<CachedResource>> requestResource(CachedResource::Type, CachedResourceRequest&&, ForPreload = ForPreload::No, DeferOption = DeferOption::NoDefer); 170 171 CachedResourceHandle<CachedResource> revalidateResource(CachedResourceRequest&&, CachedResource&); 171 CachedResourceHandle<CachedResource> loadResource(CachedResource::Type, CachedResourceRequest&& );172 CachedResourceHandle<CachedResource> loadResource(CachedResource::Type, CachedResourceRequest&&, const CookieJar*); 172 173 173 174 void prepareFetch(CachedResource::Type, CachedResourceRequest&); … … 180 181 181 182 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*); 183 184 184 185 bool shouldContinueAfterNotifyingLoadedFromMemoryCache(const CachedResourceRequest&, CachedResource&, ResourceError&); -
trunk/Source/WebCore/loader/cache/CachedSVGDocument.cpp
r233668 r240014 28 28 namespace WebCore { 29 29 30 CachedSVGDocument::CachedSVGDocument(CachedResourceRequest&& request, PAL::SessionID sessionID)31 : CachedResource(WTFMove(request), Type::SVGDocumentResource, sessionID )30 CachedSVGDocument::CachedSVGDocument(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar) 31 : CachedResource(WTFMove(request), Type::SVGDocumentResource, sessionID, cookieJar) 32 32 , m_decoder(TextResourceDecoder::create("application/xml")) 33 33 { -
trunk/Source/WebCore/loader/cache/CachedSVGDocument.h
r233668 r240014 31 31 class CachedSVGDocument final : public CachedResource { 32 32 public: 33 explicit CachedSVGDocument(CachedResourceRequest&&, PAL::SessionID);33 explicit CachedSVGDocument(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*); 34 34 virtual ~CachedSVGDocument(); 35 35 -
trunk/Source/WebCore/loader/cache/CachedSVGFont.cpp
r233668 r240014 47 47 namespace WebCore { 48 48 49 CachedSVGFont::CachedSVGFont(CachedResourceRequest&& request, PAL::SessionID sessionID)50 : CachedFont(WTFMove(request), sessionID, Type::SVGFontResource)49 CachedSVGFont::CachedSVGFont(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar) 50 : CachedFont(WTFMove(request), sessionID, cookieJar, Type::SVGFontResource) 51 51 , m_externalSVGFontElement(nullptr) 52 52 { -
trunk/Source/WebCore/loader/cache/CachedSVGFont.h
r233668 r240014 36 36 class CachedSVGFont final : public CachedFont { 37 37 public: 38 CachedSVGFont(CachedResourceRequest&&, PAL::SessionID);38 CachedSVGFont(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*); 39 39 40 40 bool ensureCustomFontData(const AtomicString& remoteURI) override; -
trunk/Source/WebCore/loader/cache/CachedScript.cpp
r239037 r240014 37 37 namespace WebCore { 38 38 39 CachedScript::CachedScript(CachedResourceRequest&& request, PAL::SessionID sessionID)40 : CachedResource(WTFMove(request), Type::Script, sessionID )39 CachedScript::CachedScript(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar) 40 : CachedResource(WTFMove(request), Type::Script, sessionID, cookieJar) 41 41 , m_decoder(TextResourceDecoder::create("text/javascript"_s, request.charset())) 42 42 { -
trunk/Source/WebCore/loader/cache/CachedScript.h
r233668 r240014 34 34 class CachedScript final : public CachedResource { 35 35 public: 36 CachedScript(CachedResourceRequest&&, PAL::SessionID);36 CachedScript(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*); 37 37 virtual ~CachedScript(); 38 38 -
trunk/Source/WebCore/loader/cache/CachedTextTrack.cpp
r233668 r240014 38 38 namespace WebCore { 39 39 40 CachedTextTrack::CachedTextTrack(CachedResourceRequest&& request, PAL::SessionID sessionID)41 : CachedResource(WTFMove(request), Type::TextTrackResource, sessionID )40 CachedTextTrack::CachedTextTrack(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar) 41 : CachedResource(WTFMove(request), Type::TextTrackResource, sessionID, cookieJar) 42 42 { 43 43 } -
trunk/Source/WebCore/loader/cache/CachedTextTrack.h
r233668 r240014 34 34 class CachedTextTrack final : public CachedResource { 35 35 public: 36 CachedTextTrack(CachedResourceRequest&&, PAL::SessionID);36 CachedTextTrack(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*); 37 37 38 38 private: -
trunk/Source/WebCore/loader/cache/CachedXSLStyleSheet.cpp
r233668 r240014 37 37 #if ENABLE(XSLT) 38 38 39 CachedXSLStyleSheet::CachedXSLStyleSheet(CachedResourceRequest&& request, PAL::SessionID sessionID)40 : CachedResource(WTFMove(request), Type::XSLStyleSheet, sessionID )39 CachedXSLStyleSheet::CachedXSLStyleSheet(CachedResourceRequest&& request, const PAL::SessionID& sessionID, const CookieJar* cookieJar) 40 : CachedResource(WTFMove(request), Type::XSLStyleSheet, sessionID, cookieJar) 41 41 , m_decoder(TextResourceDecoder::create("text/xsl")) 42 42 { -
trunk/Source/WebCore/loader/cache/CachedXSLStyleSheet.h
r233668 r240014 36 36 class CachedXSLStyleSheet final : public CachedResource { 37 37 public: 38 CachedXSLStyleSheet(CachedResourceRequest&&, PAL::SessionID);38 CachedXSLStyleSheet(CachedResourceRequest&&, const PAL::SessionID&, const CookieJar*); 39 39 virtual ~CachedXSLStyleSheet(); 40 40 -
trunk/Source/WebCore/loader/cache/MemoryCache.cpp
r239535 r240014 211 211 } 212 212 213 bool MemoryCache::addImageToCache(NativeImagePtr&& image, const URL& url, const String& domainForCachePartition )213 bool MemoryCache::addImageToCache(NativeImagePtr&& image, const URL& url, const String& domainForCachePartition, const PAL::SessionID& sessionID, const CookieJar* cookieJar) 214 214 { 215 215 ASSERT(image); 216 PAL::SessionID sessionID = PAL::SessionID::defaultSessionID();217 216 removeImageFromCache(url, domainForCachePartition); // Remove cache entry if it already exists. 218 217 219 218 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); 221 220 222 221 cachedImage->addClient(dummyCachedImageClient()); -
trunk/Source/WebCore/loader/cache/MemoryCache.h
r238771 r240014 42 42 43 43 class CachedResource; 44 class CookieJar; 44 45 class ResourceRequest; 45 46 class ResourceResponse; … … 157 158 WEBCORE_EXPORT HashSet<RefPtr<SecurityOrigin>> originsWithCache(PAL::SessionID) const; 158 159 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*); 160 161 WEBCORE_EXPORT void removeImageFromCache(const URL&, const String& domainForCachePartition); 161 162 -
trunk/Source/WebCore/page/Navigator.cpp
r239427 r240014 193 193 ResourceLoadObserver::shared().logNavigatorAPIAccessed(*frame->document(), ResourceLoadStatistics::NavigatorAPI::CookieEnabled); 194 194 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()) 196 200 return false; 197 201 … … 200 204 return false; 201 205 202 return cookiesEnabled(*document);206 return page->cookieJar().cookiesEnabled(*document); 203 207 } 204 208 -
trunk/Source/WebCore/page/Page.cpp
r239904 r240014 35 35 #include "ContextMenuClient.h" 36 36 #include "ContextMenuController.h" 37 #include "CookieJar.h" 37 38 #include "DOMRect.h" 38 39 #include "DOMRectList.h" … … 239 240 #endif 240 241 , m_socketProvider(WTFMove(pageConfiguration.socketProvider)) 242 , m_cookieJar(WTFMove(pageConfiguration.cookieJar)) 241 243 , m_applicationCacheStorage(*WTFMove(pageConfiguration.applicationCacheStorage)) 242 244 , m_cacheStorageProvider(WTFMove(pageConfiguration.cacheStorageProvider)) -
trunk/Source/WebCore/page/Page.h
r239640 r240014 87 87 class ContextMenuClient; 88 88 class ContextMenuController; 89 class CookieJar; 89 90 class DOMRect; 90 91 class DOMRectList; … … 575 576 CacheStorageProvider& cacheStorageProvider() { return m_cacheStorageProvider; } 576 577 SocketProvider& socketProvider() { return m_socketProvider; } 578 CookieJar& cookieJar() { return m_cookieJar.get(); } 577 579 578 580 StorageNamespaceProvider& storageNamespaceProvider() { return m_storageNamespaceProvider.get(); } … … 874 876 875 877 Ref<SocketProvider> m_socketProvider; 878 Ref<CookieJar> m_cookieJar; 876 879 Ref<ApplicationCacheStorage> m_applicationCacheStorage; 877 880 Ref<CacheStorageProvider> m_cacheStorageProvider; -
trunk/Source/WebCore/page/PageConfiguration.cpp
r237157 r240014 49 49 namespace WebCore { 50 50 51 PageConfiguration::PageConfiguration(UniqueRef<EditorClient>&& editorClient, Ref<SocketProvider>&& socketProvider, UniqueRef<LibWebRTCProvider>&& libWebRTCProvider, Ref<CacheStorageProvider>&& cacheStorageProvider, Ref<BackForwardClient>&& backForwardClient )51 PageConfiguration::PageConfiguration(UniqueRef<EditorClient>&& editorClient, Ref<SocketProvider>&& socketProvider, UniqueRef<LibWebRTCProvider>&& libWebRTCProvider, Ref<CacheStorageProvider>&& cacheStorageProvider, Ref<BackForwardClient>&& backForwardClient, Ref<CookieJar>&& cookieJar) 52 52 : editorClient(WTFMove(editorClient)) 53 53 , socketProvider(WTFMove(socketProvider)) 54 54 , libWebRTCProvider(WTFMove(libWebRTCProvider)) 55 55 , backForwardClient(WTFMove(backForwardClient)) 56 , cookieJar(WTFMove(cookieJar)) 56 57 , cacheStorageProvider(WTFMove(cacheStorageProvider)) 57 58 { -
trunk/Source/WebCore/page/PageConfiguration.h
r239427 r240014 42 42 class BackForwardClient; 43 43 class CacheStorageProvider; 44 class CookieJar; 44 45 class ChromeClient; 45 46 class ContextMenuClient; … … 66 67 WTF_MAKE_NONCOPYABLE(PageConfiguration); WTF_MAKE_FAST_ALLOCATED; 67 68 public: 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>&&); 69 70 WEBCORE_EXPORT ~PageConfiguration(); 70 71 PageConfiguration(PageConfiguration&&); … … 96 97 ProgressTrackerClient* progressTrackerClient { nullptr }; 97 98 Ref<BackForwardClient> backForwardClient; 99 Ref<CookieJar> cookieJar; 98 100 std::unique_ptr<ValidationMessageClient> validationMessageClient; 99 101 FrameLoaderClient* loaderClientForMainFrame { nullptr }; -
trunk/Source/WebCore/platform/PlatformStrategies.h
r223794 r240014 29 29 30 30 class BlobRegistry; 31 class CookiesStrategy;32 31 class LoaderStrategy; 33 32 class PasteboardStrategy; … … 35 34 class PlatformStrategies { 36 35 public: 37 CookiesStrategy* cookiesStrategy()38 {39 if (!m_cookiesStrategy)40 m_cookiesStrategy = createCookiesStrategy();41 return m_cookiesStrategy;42 }43 44 36 LoaderStrategy* loaderStrategy() 45 37 { … … 71 63 72 64 private: 73 virtual CookiesStrategy* createCookiesStrategy() = 0;74 65 virtual LoaderStrategy* createLoaderStrategy() = 0; 75 66 virtual PasteboardStrategy* createPasteboardStrategy() = 0; 76 67 virtual BlobRegistry* createBlobRegistry() = 0; 77 68 78 CookiesStrategy* m_cookiesStrategy { };79 69 LoaderStrategy* m_loaderStrategy { }; 80 70 PasteboardStrategy* m_pasteboardStrategy { }; -
trunk/Source/WebCore/platform/network/CacheValidation.cpp
r239974 r240014 27 27 #include "CacheValidation.h" 28 28 29 #include "Cookie sStrategy.h"29 #include "CookieJar.h" 30 30 #include "HTTPHeaderMap.h" 31 31 #include "NetworkStorageSession.h" 32 #include "PlatformStrategies.h"33 32 #include "ResourceRequest.h" 34 33 #include "ResourceResponse.h" … … 332 331 } 333 332 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; 333 static 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; 337 339 } 338 340 … … 373 375 } 374 376 375 Vector<std::pair<String, String>> collectVaryingRequestHeaders( CookiesStrategy& cookiesStrategy, const ResourceRequest& request, const ResourceResponse& response, const PAL::SessionID& sessionID)377 Vector<std::pair<String, String>> collectVaryingRequestHeaders(const CookieJar* cookieJar, const ResourceRequest& request, const ResourceResponse& response, const PAL::SessionID& sessionID) 376 378 { 377 379 return collectVaryingRequestHeadersInternal(response, [&] (const String& headerName) { 378 380 return headerValueForVary(request, headerName, [&] { 379 return cookieRequestHeaderFieldValue(cookie sStrategy, sessionID, request);381 return cookieRequestHeaderFieldValue(cookieJar, sessionID, request); 380 382 }); 381 383 }); … … 403 405 } 404 406 405 bool verifyVaryingRequestHeaders( CookiesStrategy& cookiesStrategy, const Vector<std::pair<String, String>>& varyingRequestHeaders, const ResourceRequest& request, const PAL::SessionID& sessionID)407 bool verifyVaryingRequestHeaders(const CookieJar* cookieJar, const Vector<std::pair<String, String>>& varyingRequestHeaders, const ResourceRequest& request, const PAL::SessionID& sessionID) 406 408 { 407 409 return verifyVaryingRequestHeadersInternal(varyingRequestHeaders, [&] (const String& headerName) { 408 410 return headerValueForVary(request, headerName, [&] { 409 return cookieRequestHeaderFieldValue(cookie sStrategy, sessionID, request);411 return cookieRequestHeaderFieldValue(cookieJar, sessionID, request); 410 412 }); 411 413 }); -
trunk/Source/WebCore/platform/network/CacheValidation.h
r239974 r240014 35 35 namespace WebCore { 36 36 37 class Cookie sStrategy;37 class CookieJar; 38 38 class HTTPHeaderMap; 39 39 class NetworkStorageSession; … … 81 81 82 82 WEBCORE_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&);83 WEBCORE_EXPORT Vector<std::pair<String, String>> collectVaryingRequestHeaders(const CookieJar*, const ResourceRequest&, const ResourceResponse&, const PAL::SessionID&); 84 84 WEBCORE_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&);85 WEBCORE_EXPORT bool verifyVaryingRequestHeaders(const CookieJar*, const Vector<std::pair<String, String>>& varyingRequestHeaders, const ResourceRequest&, const PAL::SessionID&); 86 86 87 87 WEBCORE_EXPORT bool isStatusCodeCacheableByDefault(int statusCode); -
trunk/Source/WebCore/platform/network/CookieRequestHeaderFieldProxy.h
r239427 r240014 26 26 #pragma once 27 27 28 #include "Cookie sStrategy.h"28 #include "CookieJar.h" 29 29 #include "SameSiteInfo.h" 30 30 #include <pal/SessionID.h> -
trunk/Source/WebCore/platform/network/cf/NetworkStorageSessionCFNetWin.cpp
r239724 r240014 29 29 #include "Cookie.h" 30 30 #include "CookieRequestHeaderFieldProxy.h" 31 #include "CookiesStrategy.h"32 31 #include "NotImplemented.h" 33 32 #include <CFNetwork/CFHTTPCookiesPriv.h> -
trunk/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm
r239709 r240014 30 30 #import "CookieRequestHeaderFieldProxy.h" 31 31 #import "CookieStorageObserver.h" 32 #import "CookiesStrategy.h"33 32 #import "SameSiteInfo.h" 34 33 #import <pal/spi/cf/CFNetworkSPI.h> -
trunk/Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp
r239427 r240014 33 33 #if USE(CURL) 34 34 35 #include "CookieJar.h" 35 36 #include "CookieJarCurl.h" 36 #include "CookiesStrategy.h"37 37 #include "CredentialStorage.h" 38 38 #include "CurlCacheManager.h" -
trunk/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp
r234619 r240014 97 97 return; 98 98 99 m_snapshotResource->setCachedImage(new CachedImage(image, page().sessionID() ));99 m_snapshotResource->setCachedImage(new CachedImage(image, page().sessionID(), &page().cookieJar())); 100 100 repaint(); 101 101 } -
trunk/Source/WebCore/testing/Internals.cpp
r239840 r240014 4853 4853 return { }; 4854 4854 4855 auto* page = document->page(); 4856 if (!page) 4857 return { }; 4858 4855 4859 Vector<Cookie> cookies; 4856 getRawCookies(*document, document->cookieURL(), cookies);4860 page->cookieJar().getRawCookies(*document, document->cookieURL(), cookies); 4857 4861 return WTF::map(cookies, [](auto& cookie) { 4858 4862 return CookieData { cookie }; -
trunk/Source/WebKit/ChangeLog
r240013 r240014 1 2019-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 1 41 2019-01-15 Per Arne Vollan <pvollan@apple.com> 2 42 -
trunk/Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.cpp
r235101 r240014 39 39 } 40 40 41 CookiesStrategy* NetworkProcessPlatformStrategies::createCookiesStrategy()42 {43 return nullptr;44 }45 46 41 LoaderStrategy* NetworkProcessPlatformStrategies::createLoaderStrategy() 47 42 { -
trunk/Source/WebKit/NetworkProcess/NetworkProcessPlatformStrategies.h
r204287 r240014 24 24 */ 25 25 26 #ifndef NetworkProcessPlatformStrategies_h 27 #define NetworkProcessPlatformStrategies_h 26 #pragma once 28 27 29 28 #include <WebCore/LoaderStrategy.h> … … 38 37 private: 39 38 // WebCore::PlatformStrategies 40 WebCore::CookiesStrategy* createCookiesStrategy() override;41 39 WebCore::LoaderStrategy* createLoaderStrategy() override; 42 40 WebCore::PasteboardStrategy* createPasteboardStrategy() override; … … 45 43 46 44 } // namespace WebKit 47 48 49 #endif // NetworkProcessPlatformStrategies_h -
trunk/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp
r239550 r240014 31 31 #include "NetworkSessionCurl.h" 32 32 #include <WebCore/AuthenticationChallenge.h> 33 #include <WebCore/CookiesStrategy.h>34 33 #include <WebCore/CurlRequest.h> 35 34 #include <WebCore/NetworkStorageSession.h> -
trunk/Source/WebKit/Scripts/webkit/messages.py
r239427 r240014 407 407 'WebCore::HasInsecureContent': ['<WebCore/FrameLoaderTypes.h>'], 408 408 'WebCore::Highlight': ['<WebCore/InspectorOverlay.h>'], 409 'WebCore::IncludeSecureCookies': ['<WebCore/Cookie sStrategy.h>'],409 'WebCore::IncludeSecureCookies': ['<WebCore/CookieJar.h>'], 410 410 'WebCore::KeyframeValueList': ['<WebCore/GraphicsLayer.h>'], 411 411 'WebCore::KeypressCommand': ['<WebCore/KeyboardEvent.h>'], -
trunk/Source/WebKit/Sources.txt
r239993 r240014 540 540 WebProcess/WebPage/WebBackForwardListProxy.cpp 541 541 WebProcess/WebPage/WebContextMenu.cpp 542 WebProcess/WebPage/WebCookieJar.cpp 542 543 WebProcess/WebPage/WebDocumentLoader.cpp 543 544 WebProcess/WebPage/WebFrame.cpp -
trunk/Source/WebKit/UIProcess/Cocoa/WKSafeBrowsingWarning.mm
r239408 r240014 369 369 ViewType *box = _box.get().get(); 370 370 ButtonType *showDetails = box.subviews.lastObject; 371 WTFLogAlways("SHOW DETAILS BUTTON? %@", showDetails); 371 372 [showDetails removeFromSuperview]; 372 373 -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r239993 r240014 1051 1051 5C4B9D8B210A8CCF008F14D1 /* UndoOrRedo.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C4B9D8A210A8C46008F14D1 /* UndoOrRedo.h */; }; 1052 1052 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 */; }; 1053 1054 5C8BC797218CBB4800813886 /* SafeBrowsing.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5C8BC796218CB58A00813886 /* SafeBrowsing.xcassets */; }; 1054 1055 5C8DD3801FE4521600F2A556 /* WebsiteAutoplayPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C8DD37F1FE4519200F2A556 /* WebsiteAutoplayPolicy.h */; }; … … 3431 3432 5C7ACFD1218DD8BD004CBB59 /* Network-OSX.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "Network-OSX.entitlements"; sourceTree = "<group>"; }; 3432 3433 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>"; }; 3433 3436 5C84CF901F96AC4E00B6705A /* NetworkSessionCreationParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkSessionCreationParameters.h; sourceTree = "<group>"; }; 3434 3437 5C85C7861C3F23C50061A4FA /* PendingDownload.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PendingDownload.cpp; sourceTree = "<group>"; }; … … 7220 7223 51871B59127CB89D00F76232 /* WebContextMenu.cpp */, 7221 7224 51871B5A127CB89D00F76232 /* WebContextMenu.h */, 7225 5C7FB46E21E97C0B009E3241 /* WebCookieJar.cpp */, 7226 5C7FB46F21E97C0C009E3241 /* WebCookieJar.h */, 7222 7227 1A5B1C5218987EDF004FCF9B /* WebDocumentLoader.cpp */, 7223 7228 1A5B1C5318987EDF004FCF9B /* WebDocumentLoader.h */, … … 9359 9364 51ACBBA0127A8F2C00D203B9 /* WebContextMenuProxyMac.h in Headers */, 9360 9365 BCF4DE25168FA44800C94AFC /* WebContextSupplement.h in Headers */, 9366 5C7FB47021E97DC5009E3241 /* WebCookieJar.h in Headers */, 9361 9367 330934501315B94D0097A7BC /* WebCookieManager.h in Headers */, 9362 9368 330934481315B9220097A7BC /* WebCookieManagerMessages.h in Headers */, -
trunk/Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp
r239477 r240014 751 751 Vector<WebCore::Cookie> foundCookies; 752 752 if (!document.cookieURL().isEmpty()) 753 WebCore::getRawCookies(document, document.cookieURL(), foundCookies);753 page->corePage()->cookieJar().getRawCookies(document, document.cookieURL(), foundCookies); 754 754 755 755 WebProcess::singleton().parentProcessConnection()->send(Messages::WebAutomationSession::DidGetCookiesForFrame(callbackID, foundCookies, String()), 0); … … 773 773 774 774 auto& document = *frame->coreFrame()->document(); 775 WebCore::deleteCookie(document, document.cookieURL(), cookieName);775 page->corePage()->cookieJar().deleteCookie(document, document.cookieURL(), cookieName); 776 776 777 777 WebProcess::singleton().parentProcessConnection()->send(Messages::WebAutomationSession::DidDeleteCookie(callbackID, String()), 0); -
trunk/Source/WebKit/WebProcess/Plugins/PluginView.cpp
r239535 r240014 1582 1582 String PluginView::cookiesForURL(const String& urlString) 1583 1583 { 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 { }; 1585 1588 } 1586 1589 1587 1590 void PluginView::setCookiesForURL(const String& urlString, const String& cookieString) 1588 1591 { 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(); 1590 1596 } 1591 1597 -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp
r239815 r240014 85 85 } 86 86 87 CookiesStrategy* WebPlatformStrategies::createCookiesStrategy() 87 LoaderStrategy* WebPlatformStrategies::createLoaderStrategy() 88 { 89 return &WebProcess::singleton().webLoaderStrategy(); 90 } 91 92 PasteboardStrategy* WebPlatformStrategies::createPasteboardStrategy() 88 93 { 89 94 return this; 90 95 } 91 96 92 LoaderStrategy* WebPlatformStrategies::createLoaderStrategy()93 {94 return &WebProcess::singleton().webLoaderStrategy();95 }96 97 PasteboardStrategy* WebPlatformStrategies::createPasteboardStrategy()98 {99 return this;100 }101 102 97 BlobRegistry* WebPlatformStrategies::createBlobRegistry() 103 98 { 104 99 return new BlobRegistryProxy; 105 }106 107 // CookiesStrategy108 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);151 100 } 152 101 -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.h
r239737 r240014 26 26 #pragma once 27 27 28 #include <WebCore/CookiesStrategy.h>29 28 #include <WebCore/LoaderStrategy.h> 30 29 #include <WebCore/PasteboardStrategy.h> … … 33 32 namespace WebKit { 34 33 35 class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore:: CookiesStrategy, private WebCore::PasteboardStrategy {34 class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::PasteboardStrategy { 36 35 friend NeverDestroyed<WebPlatformStrategies>; 37 36 public: … … 42 41 43 42 // WebCore::PlatformStrategies 44 WebCore::CookiesStrategy* createCookiesStrategy() override;45 43 WebCore::LoaderStrategy* createLoaderStrategy() override; 46 44 WebCore::PasteboardStrategy* createPasteboardStrategy() override; 47 45 WebCore::BlobRegistry* createBlobRegistry() override; 48 49 // WebCore::CookiesStrategy50 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;56 46 57 47 // WebCore::PasteboardStrategy -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
r239993 r240014 76 76 #include "WebContextMenu.h" 77 77 #include "WebContextMenuClient.h" 78 #include "WebCookieJar.h" 78 79 #include "WebCoreArgumentCoders.h" 79 80 #include "WebDataListSuggestionPicker.h" … … 418 419 makeUniqueRef<WebKit::LibWebRTCProvider>(), 419 420 WebProcess::singleton().cacheStorageProvider(), 420 WebBackForwardListProxy::create(*this) 421 WebBackForwardListProxy::create(*this), 422 WebCookieJar::create() 421 423 ); 422 424 pageConfiguration.chromeClient = new WebChromeClient(*this); -
trunk/Source/WebKitLegacy/mac/ChangeLog
r240010 r240014 1 2019-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 1 29 2019-01-15 Tim Horton <timothy_horton@apple.com> 2 30 -
trunk/Source/WebKitLegacy/mac/Misc/WebCache.mm
r237266 r240014 33 33 #import <JavaScriptCore/InitializeThreading.h> 34 34 #import <WebCore/ApplicationCacheStorage.h> 35 #import <WebCore/CookieJar.h> 35 36 #import <WebCore/CredentialStorage.h> 36 37 #import <WebCore/CrossOriginPreflightResultCache.h> … … 164 165 return false; 165 166 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()); 167 168 } 168 169 -
trunk/Source/WebKitLegacy/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
r239709 r240014 55 55 #import <WebCore/FrameLoader.h> 56 56 #import <WebCore/FrameTree.h> 57 #import <WebCore/Page.h> 57 58 #import <WebCore/PlatformEventFactoryMac.h> 58 59 #import <WebCore/ProxyServer.h> … … 1568 1569 if (!document) 1569 1570 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); 1572 1577 WTF::CString cookieStringUTF8 = cookieString.utf8(); 1573 1578 if (cookieStringUTF8.isNull()) … … 1601 1606 return false; 1602 1607 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); 1604 1613 return true; 1605 1614 } -
trunk/Source/WebKitLegacy/mac/Plugins/WebNetscapePluginView.mm
r239535 r240014 2135 2135 if (!document) 2136 2136 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); 2139 2143 CString cookieStringUTF8 = cookieString.utf8(); 2140 2144 if (cookieStringUTF8.isNull()) … … 2186 2190 2187 2191 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 } 2190 2196 return NPERR_NO_ERROR; 2191 2197 } -
trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.h
r239737 r240014 26 26 #pragma once 27 27 28 #include <WebCore/CookiesStrategy.h>29 28 #include <WebCore/LoaderStrategy.h> 30 29 #include <WebCore/PasteboardStrategy.h> … … 35 34 struct PasteboardCustomData; 36 35 37 class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore:: CookiesStrategy, private WebCore::PasteboardStrategy {36 class WebPlatformStrategies : public WebCore::PlatformStrategies, private WebCore::PasteboardStrategy { 38 37 public: 39 38 static void initializeIfNecessary(); … … 43 42 44 43 // WebCore::PlatformStrategies 45 WebCore::CookiesStrategy* createCookiesStrategy() override;46 44 WebCore::LoaderStrategy* createLoaderStrategy() override; 47 45 WebCore::PasteboardStrategy* createPasteboardStrategy() override; 48 46 WebCore::BlobRegistry* createBlobRegistry() override; 49 50 // WebCore::CookiesStrategy51 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;57 47 58 48 // WebCore::PasteboardStrategy -
trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.mm
r239737 r240014 53 53 } 54 54 55 CookiesStrategy* WebPlatformStrategies::createCookiesStrategy() 55 LoaderStrategy* WebPlatformStrategies::createLoaderStrategy() 56 { 57 return new WebResourceLoadScheduler; 58 } 59 60 PasteboardStrategy* WebPlatformStrategies::createPasteboardStrategy() 56 61 { 57 62 return this; 58 63 } 59 64 60 LoaderStrategy* WebPlatformStrategies::createLoaderStrategy()61 {62 return new WebResourceLoadScheduler;63 }64 65 PasteboardStrategy* WebPlatformStrategies::createPasteboardStrategy()66 {67 return this;68 }69 70 65 BlobRegistry* WebPlatformStrategies::createBlobRegistry() 71 66 { 72 67 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);109 68 } 110 69 -
trunk/Source/WebKitLegacy/mac/WebView/WebView.mm
r240010 r240014 135 135 #import <WebCore/Chrome.h> 136 136 #import <WebCore/ColorMac.h> 137 #import <WebCore/CookieJar.h> 137 138 #import <WebCore/DatabaseManager.h> 138 139 #import <WebCore/DeprecatedGlobalSettings.h> … … 1445 1446 LibWebRTCProvider::create(), 1446 1447 WebCore::CacheStorageProvider::create(), 1447 BackForwardList::create(self) 1448 BackForwardList::create(self), 1449 CookieJar::create() 1448 1450 ); 1449 1451 #if !PLATFORM(IOS_FAMILY) … … 1710 1712 LibWebRTCProvider::create(), 1711 1713 WebCore::CacheStorageProvider::create(), 1712 BackForwardList::create(self) 1714 BackForwardList::create(self), 1715 CookieJar::create() 1713 1716 ); 1714 1717 pageConfiguration.chromeClient = new WebChromeClientIOS(self); -
trunk/Source/WebKitLegacy/win/ChangeLog
r239737 r240014 1 2019-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 1 24 2019-01-08 Alex Christensen <achristensen@webkit.org> 2 25 -
trunk/Source/WebKitLegacy/win/Plugins/PluginView.cpp
r239535 r240014 1277 1277 Frame* frame = getFrame(parentFrame(), m_element); 1278 1278 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 } 1290 1292 } 1291 1293 } … … 1335 1337 const String cookieStr = String::fromUTF8(value, len); 1336 1338 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 } 1339 1343 } else 1340 1344 result = NPERR_INVALID_URL; -
trunk/Source/WebKitLegacy/win/WebCoreSupport/WebPlatformStrategies.cpp
r239737 r240014 50 50 } 51 51 52 CookiesStrategy* WebPlatformStrategies::createCookiesStrategy()53 {54 return this;55 }56 57 52 LoaderStrategy* WebPlatformStrategies::createLoaderStrategy() 58 53 { … … 69 64 return new BlobRegistryImpl; 70 65 } 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 26 26 #pragma once 27 27 28 #include <WebCore/CookiesStrategy.h>29 28 #include <WebCore/LoaderStrategy.h> 30 29 #include <WebCore/PlatformStrategies.h> 31 30 #include <wtf/Forward.h> 32 31 33 class WebPlatformStrategies : public WebCore::PlatformStrategies , private WebCore::CookiesStrategy{32 class WebPlatformStrategies : public WebCore::PlatformStrategies { 34 33 public: 35 34 static void initialize(); … … 40 39 41 40 // WebCore::PlatformStrategies 42 virtual WebCore::CookiesStrategy* createCookiesStrategy();43 41 virtual WebCore::LoaderStrategy* createLoaderStrategy(); 44 42 virtual WebCore::PasteboardStrategy* createPasteboardStrategy(); 45 43 virtual WebCore::BlobRegistry* createBlobRegistry(); 46 47 // WebCore::CookiesStrategy48 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&);54 44 }; -
trunk/Source/WebKitLegacy/win/WebView.cpp
r239549 r240014 3111 3111 makeUniqueRef<LibWebRTCProvider>(), 3112 3112 WebCore::CacheStorageProvider::create(), 3113 BackForwardList::create() 3113 BackForwardList::create(), 3114 CookieJar::create() 3114 3115 ); 3115 3116 configuration.chromeClient = new WebChromeClient(this);
Note:
See TracChangeset
for help on using the changeset viewer.