Changeset 225934 in webkit
- Timestamp:
- Dec 14, 2017, 2:39:48 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 36 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/dom/Document.cpp (modified) (1 diff)
-
Source/WebCore/loader/CookieJar.cpp (modified) (5 diffs)
-
Source/WebCore/loader/EmptyFrameLoaderClient.h (modified) (1 diff)
-
Source/WebCore/loader/FrameLoaderClient.h (modified) (1 diff)
-
Source/WebCore/platform/CookiesStrategy.h (modified) (1 diff)
-
Source/WebCore/platform/network/CacheValidation.cpp (modified) (1 diff)
-
Source/WebCore/platform/network/PlatformCookieJar.h (modified) (1 diff)
-
Source/WebCore/platform/network/cf/CookieJarCFNet.cpp (modified) (4 diffs)
-
Source/WebCore/platform/network/curl/CookieJarCurl.cpp (modified) (5 diffs)
-
Source/WebCore/platform/network/curl/CookieJarCurl.h (modified) (2 diffs)
-
Source/WebCore/platform/network/mac/CookieJarMac.mm (modified) (7 diffs)
-
Source/WebCore/platform/network/soup/CookieJarSoup.cpp (modified) (3 diffs)
-
Source/WebKit/ChangeLog (modified) (1 diff)
-
Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp (modified) (2 diffs)
-
Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h (modified) (1 diff)
-
Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in (modified) (1 diff)
-
Source/WebKit/Shared/mac/CookieStorageShim.mm (modified) (1 diff)
-
Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp (modified) (1 diff)
-
Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp (modified) (1 diff)
-
Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (modified) (1 diff)
-
Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h (modified) (1 diff)
-
Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp (modified) (3 diffs)
-
Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.h (modified) (1 diff)
-
Source/WebKitLegacy/mac/ChangeLog (modified) (1 diff)
-
Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h (modified) (1 diff)
-
Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm (modified) (1 diff)
-
Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.h (modified) (1 diff)
-
Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.mm (modified) (2 diffs)
-
Source/WebKitLegacy/win/ChangeLog (modified) (1 diff)
-
Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp (modified) (1 diff)
-
Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h (modified) (1 diff)
-
Source/WebKitLegacy/win/WebCoreSupport/WebPlatformStrategies.cpp (modified) (2 diffs)
-
Source/WebKitLegacy/win/WebCoreSupport/WebPlatformStrategies.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r225928 r225934 1 2017-12-14 John Wilander <wilander@apple.com> 2 3 Storage Access API: Implement frame-specific access in the document.cookie layer 4 https://bugs.webkit.org/show_bug.cgi?id=180682 5 <rdar://problem/35982257> 6 7 Reviewed by Alex Christensen. 8 9 CookiesStrategy::cookiesForDOM(), CookiesStrategy::setCookiesFromDOM(), 10 CookiesStrategy::cookieRequestHeaderFieldValue(), and 11 CookiesStrategy::getRawCookies() now take optional parameters for 12 frameID and pageID to allow frame-specific scoping of cookies. 13 14 This change makes the return values of FrameLoaderClient::frameID() 15 and FrameLoaderClient::pageID() std::optional<uint64_t> so that 16 WebCore can call those getters and get the right return values in 17 WebKit and std:nullopt in WebKitLegacy. 18 19 * http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt: 20 Now expects the correct behavior for document.cookie. 21 1 22 2017-12-14 Antoine Quint <graouts@apple.com> 2 23 -
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt
r225827 r225934 17 17 Received cookie named 'firstPartyCookie'. 18 18 Did not receive cookie named 'partitionedCookie'. 19 Client-side document.cookie: partitionedCookie=value19 Client-side document.cookie: firstPartyCookie=value 20 20 21 21 -------- -
trunk/Source/WebCore/ChangeLog
r225931 r225934 1 2017-12-14 John Wilander <wilander@apple.com> 2 3 Storage Access API: Implement frame-specific access in the document.cookie layer 4 https://bugs.webkit.org/show_bug.cgi?id=180682 5 <rdar://problem/35982257> 6 7 Reviewed by Alex Christensen. 8 9 No new tests. Changed expected result from existing test. 10 11 CookiesStrategy::cookiesForDOM(), CookiesStrategy::setCookiesFromDOM(), 12 CookiesStrategy::cookieRequestHeaderFieldValue(), and 13 CookiesStrategy::getRawCookies() now take optional parameters for 14 frameID and pageID to allow frame-specific scoping of cookies. 15 16 This change makes the return values of FrameLoaderClient::frameID() 17 and FrameLoaderClient::pageID() std::optional<uint64_t> so that 18 WebCore can call those getters and get the right return values in 19 WebKit and std:nullopt in WebKitLegacy. 20 21 * dom/Document.cpp: 22 (WebCore::Document::requestStorageAccess): 23 * loader/CookieJar.cpp: 24 (WebCore::cookies): 25 (WebCore::setCookies): 26 (WebCore::cookieRequestHeaderFieldValue): 27 (WebCore::getRawCookies): 28 * loader/EmptyFrameLoaderClient.h: 29 * loader/FrameLoaderClient.h: 30 * platform/CookiesStrategy.h: 31 * platform/network/CacheValidation.cpp: 32 (WebCore::headerValueForVary): 33 * platform/network/PlatformCookieJar.h: 34 * platform/network/cf/CookieJarCFNet.cpp: 35 (WebCore::setCookiesFromDOM): 36 (WebCore::cookiesForDOM): 37 (WebCore::cookieRequestHeaderFieldValue): 38 (WebCore::getRawCookies): 39 * platform/network/curl/CookieJarCurl.cpp: 40 (WebCore::CookieJarCurlFileSystem::setCookiesFromDOM): 41 (WebCore::CookieJarCurlFileSystem::cookiesForDOM): 42 (WebCore::CookieJarCurlFileSystem::cookieRequestHeaderFieldValue): 43 (WebCore::CookieJarCurlFileSystem::getRawCookies): 44 (WebCore::cookiesForDOM): 45 (WebCore::setCookiesFromDOM): 46 (WebCore::cookieRequestHeaderFieldValue): 47 (WebCore::getRawCookies): 48 * platform/network/curl/CookieJarCurl.h: 49 * platform/network/mac/CookieJarMac.mm: 50 (WebCore::cookiesInPartitionForURL): 51 (WebCore::cookiesForURL): 52 (WebCore::cookiesForSession): 53 (WebCore::cookiesForDOM): 54 (WebCore::cookieRequestHeaderFieldValue): 55 (WebCore::setCookiesFromDOM): 56 (WebCore::getRawCookies): 57 * platform/network/soup/CookieJarSoup.cpp: 58 (WebCore::setCookiesFromDOM): 59 (WebCore::cookiesForDOM): 60 (WebCore::cookieRequestHeaderFieldValue): 61 (WebCore::getRawCookies): 62 1 63 2017-12-14 Alex Christensen <achristensen@webkit.org> 2 64 -
trunk/Source/WebCore/dom/Document.cpp
r225868 r225934 7523 7523 auto frameID = m_frame->loader().client().frameID(); 7524 7524 auto pageID = m_frame->loader().client().pageID(); 7525 if (!frameID || !pageID) { 7526 promise->reject(); 7527 return; 7528 } 7525 7529 7526 7530 // FIXME: Don't use runJavaScriptConfirm because it responds synchronously. 7527 7531 if ((page && page->chrome().runJavaScriptConfirm(*m_frame, builder.toString())) || m_grantStorageAccessOverride) { 7528 page->chrome().client().requestStorageAccess(WTFMove(iframeHost), WTFMove(topHost), frameID , pageID, [documentReference = m_weakFactory.createWeakPtr(*this), promise] (bool wasGranted) {7532 page->chrome().client().requestStorageAccess(WTFMove(iframeHost), WTFMove(topHost), frameID.value(), pageID.value(), [documentReference = m_weakFactory.createWeakPtr(*this), promise] (bool wasGranted) { 7529 7533 Document* document = documentReference.get(); 7530 7534 if (!document) -
trunk/Source/WebCore/loader/CookieJar.cpp
r222938 r225934 31 31 #include "Frame.h" 32 32 #include "FrameLoader.h" 33 #include "FrameLoaderClient.h" 33 34 #include "NetworkStorageSession.h" 34 35 #include "NetworkingContext.h" … … 60 61 61 62 auto includeSecureCookies = (url.protocolIs("https") && !document.foundMixedContent().contains(SecurityContext::MixedContentType::Active)) ? IncludeSecureCookies::Yes : IncludeSecureCookies::No; 62 auto result = platformStrategies()->cookiesStrategy()->cookiesForDOM(storageSession(document), document.firstPartyForCookies(), url, includeSecureCookies); 63 std::pair<String, bool> result; 64 auto frame = document.frame(); 65 if (frame) 66 result = platformStrategies()->cookiesStrategy()->cookiesForDOM(storageSession(document), document.firstPartyForCookies(), url, frame->loader().client().frameID(), frame->loader().client().pageID(), includeSecureCookies); 67 else 68 result = platformStrategies()->cookiesStrategy()->cookiesForDOM(storageSession(document), document.firstPartyForCookies(), url, std::nullopt, std::nullopt, includeSecureCookies); 69 63 70 if (result.second) 64 71 document.setSecureCookiesAccessed(); … … 69 76 void setCookies(Document& document, const URL& url, const String& cookieString) 70 77 { 71 platformStrategies()->cookiesStrategy()->setCookiesFromDOM(storageSession(document), document.firstPartyForCookies(), url, cookieString); 78 auto frame = document.frame(); 79 if (frame) 80 platformStrategies()->cookiesStrategy()->setCookiesFromDOM(storageSession(document), document.firstPartyForCookies(), url, frame->loader().client().frameID(), frame->loader().client().pageID(), cookieString); 81 else 82 platformStrategies()->cookiesStrategy()->setCookiesFromDOM(storageSession(document), document.firstPartyForCookies(), url, std::nullopt, std::nullopt, cookieString); 72 83 } 73 84 … … 80 91 { 81 92 auto includeSecureCookies = (url.protocolIs("https") && !document.foundMixedContent().contains(SecurityContext::MixedContentType::Active)) ? IncludeSecureCookies::Yes : IncludeSecureCookies::No; 82 auto result = platformStrategies()->cookiesStrategy()->cookieRequestHeaderFieldValue(storageSession(document), document.firstPartyForCookies(), url, includeSecureCookies); 93 std::pair<String, bool> result; 94 auto frame = document.frame(); 95 if (frame) 96 result = platformStrategies()->cookiesStrategy()->cookieRequestHeaderFieldValue(storageSession(document), document.firstPartyForCookies(), url, frame->loader().client().frameID(), frame->loader().client().pageID(), includeSecureCookies); 97 else 98 result = platformStrategies()->cookiesStrategy()->cookieRequestHeaderFieldValue(storageSession(document), document.firstPartyForCookies(), url, std::nullopt, std::nullopt, includeSecureCookies); 99 83 100 if (result.second) 84 101 document.setSecureCookiesAccessed(); … … 89 106 bool getRawCookies(const Document& document, const URL& url, Vector<Cookie>& cookies) 90 107 { 91 return platformStrategies()->cookiesStrategy()->getRawCookies(storageSession(document), document.firstPartyForCookies(), url, cookies); 108 auto frame = document.frame(); 109 if (frame) 110 return platformStrategies()->cookiesStrategy()->getRawCookies(storageSession(document), document.firstPartyForCookies(), url, frame->loader().client().frameID(), frame->loader().client().pageID(), cookies); 111 112 return platformStrategies()->cookiesStrategy()->getRawCookies(storageSession(document), document.firstPartyForCookies(), url, std::nullopt, std::nullopt, cookies); 92 113 } 93 114 -
trunk/Source/WebCore/loader/EmptyFrameLoaderClient.h
r225716 r225934 33 33 void frameLoaderDestroyed() override { } 34 34 35 uint64_t frameID() const override { return 0; }36 uint64_t pageID() const override { return 0; }35 std::optional<uint64_t> frameID() const override { return std::nullopt; } 36 std::optional<uint64_t> pageID() const override { return std::nullopt; } 37 37 PAL::SessionID sessionID() const override; 38 38 -
trunk/Source/WebCore/loader/FrameLoaderClient.h
r225564 r225934 122 122 virtual void makeRepresentation(DocumentLoader*) = 0; 123 123 124 virtual uint64_tpageID() const = 0;125 virtual uint64_tframeID() const = 0;124 virtual std::optional<uint64_t> pageID() const = 0; 125 virtual std::optional<uint64_t> frameID() const = 0; 126 126 virtual PAL::SessionID sessionID() const = 0; 127 127 -
trunk/Source/WebCore/platform/CookiesStrategy.h
r223728 r225934 42 42 class CookiesStrategy { 43 43 public: 44 virtual std::pair<String, bool> cookiesForDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, IncludeSecureCookies) = 0;45 virtual void setCookiesFromDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, const String& cookieString) = 0;44 virtual std::pair<String, bool> cookiesForDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies) = 0; 45 virtual void setCookiesFromDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String& cookieString) = 0; 46 46 virtual bool cookiesEnabled(const NetworkStorageSession&) = 0; 47 virtual std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession&, const URL& firstParty, const URL&, IncludeSecureCookies) = 0;48 virtual std::pair<String, bool> cookieRequestHeaderFieldValue(PAL::SessionID, const URL& firstParty, const URL&, IncludeSecureCookies) = 0;49 virtual bool getRawCookies(const NetworkStorageSession&, const URL& firstParty, const URL&, Vector<Cookie>&) = 0;47 virtual std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies) = 0; 48 virtual std::pair<String, bool> cookieRequestHeaderFieldValue(PAL::SessionID, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies) = 0; 49 virtual bool getRawCookies(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<Cookie>&) = 0; 50 50 virtual void deleteCookie(const NetworkStorageSession&, const URL&, const String& cookieName) = 0; 51 51 -
trunk/Source/WebCore/platform/network/CacheValidation.cpp
r225117 r225934 349 349 if (!cookieStrategy) { 350 350 ASSERT(sessionID == PAL::SessionID::defaultSessionID()); 351 return cookieRequestHeaderFieldValue(NetworkStorageSession::defaultStorageSession(), request.firstPartyForCookies(), request.url(), includeSecureCookies).first;352 } 353 return cookieStrategy->cookieRequestHeaderFieldValue(sessionID, request.firstPartyForCookies(), request.url(), includeSecureCookies).first;351 return cookieRequestHeaderFieldValue(NetworkStorageSession::defaultStorageSession(), request.firstPartyForCookies(), request.url(), std::nullopt, std::nullopt, includeSecureCookies).first; 352 } 353 return cookieStrategy->cookieRequestHeaderFieldValue(sessionID, request.firstPartyForCookies(), request.url(), std::nullopt, std::nullopt, includeSecureCookies).first; 354 354 } 355 355 return request.httpHeaderField(headerName); -
trunk/Source/WebCore/platform/network/PlatformCookieJar.h
r222938 r225934 42 42 // FIXME: These should probably be NetworkStorageSession member functions. 43 43 44 WEBCORE_EXPORT std::pair<String, bool> cookiesForDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, IncludeSecureCookies);45 WEBCORE_EXPORT void setCookiesFromDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, const String&);44 WEBCORE_EXPORT std::pair<String, bool> cookiesForDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies); 45 WEBCORE_EXPORT void setCookiesFromDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String&); 46 46 WEBCORE_EXPORT bool cookiesEnabled(const NetworkStorageSession&); 47 WEBCORE_EXPORT std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession&, const URL& firstParty, const URL&, IncludeSecureCookies);48 WEBCORE_EXPORT bool getRawCookies(const NetworkStorageSession&, const URL& firstParty, const URL&, Vector<Cookie>&);47 WEBCORE_EXPORT std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies); 48 WEBCORE_EXPORT bool getRawCookies(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<Cookie>&); 49 49 WEBCORE_EXPORT void deleteCookie(const NetworkStorageSession&, const URL&, const String&); 50 50 WEBCORE_EXPORT void getHostnamesWithCookies(const NetworkStorageSession&, HashSet<String>& hostnames); -
trunk/Source/WebCore/platform/network/cf/CookieJarCFNet.cpp
r224846 r225934 139 139 } 140 140 141 void setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, const String& value) 142 { 141 void setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String& value) 142 { 143 UNUSED_PARAM(frameID); 144 UNUSED_PARAM(pageID); 143 145 // <rdar://problem/5632883> CFHTTPCookieStorage stores an empty cookie, which would be sent as "Cookie: =". 144 146 if (value.isEmpty()) … … 173 175 } 174 176 175 std::pair<String, bool> cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, IncludeSecureCookies includeSecureCookies) 176 { 177 std::pair<String, bool> cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) 178 { 179 UNUSED_PARAM(frameID); 180 UNUSED_PARAM(pageID); 177 181 RetainPtr<CFArrayRef> cookiesCF = copyCookiesForURLWithFirstPartyURL(session, firstParty, url, includeSecureCookies); 178 182 … … 186 190 } 187 191 188 std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const URL& url, IncludeSecureCookies includeSecureCookies) 189 { 192 std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) 193 { 194 UNUSED_PARAM(frameID); 195 UNUSED_PARAM(pageID); 190 196 RetainPtr<CFArrayRef> cookiesCF = copyCookiesForURLWithFirstPartyURL(session, firstParty, url, includeSecureCookies); 191 197 … … 203 209 } 204 210 205 bool getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const URL& url, Vector<Cookie>& rawCookies) 206 { 211 bool getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<Cookie>& rawCookies) 212 { 213 UNUSED_PARAM(frameID); 214 UNUSED_PARAM(pageID); 207 215 rawCookies.clear(); 208 216 -
trunk/Source/WebCore/platform/network/curl/CookieJarCurl.cpp
r222938 r225934 240 240 } 241 241 242 void CookieJarCurlFileSystem::setCookiesFromDOM(const NetworkStorageSession&, const URL& firstParty, const URL& url, const String& value) 243 { 242 void CookieJarCurlFileSystem::setCookiesFromDOM(const NetworkStorageSession&, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String& value) 243 { 244 UNUSED_PARAM(frameID); 245 UNUSED_PARAM(pageID); 244 246 CurlHandle curlHandle; 245 247 … … 288 290 } 289 291 290 std::pair<String, bool> CookieJarCurlFileSystem::cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, IncludeSecureCookies) 291 { 292 std::pair<String, bool> CookieJarCurlFileSystem::cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies) 293 { 294 UNUSED_PARAM(frameID); 295 UNUSED_PARAM(pageID); 292 296 // FIXME: This should filter secure cookies out if the caller requests it. 293 297 return { cookiesForSession(session, firstParty, url, false), false }; 294 298 } 295 299 296 std::pair<String, bool> CookieJarCurlFileSystem::cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const URL& url, IncludeSecureCookies) 297 { 300 std::pair<String, bool> CookieJarCurlFileSystem::cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies) 301 { 302 UNUSED_PARAM(frameID); 303 UNUSED_PARAM(pageID); 298 304 // FIXME: This should filter secure cookies out if the caller requests it. 299 305 return { cookiesForSession(session, firstParty, url, true), false }; … … 305 311 } 306 312 307 bool CookieJarCurlFileSystem::getRawCookies(const NetworkStorageSession&, const URL& firstParty, const URL&, Vector<Cookie>& rawCookies) 308 { 313 bool CookieJarCurlFileSystem::getRawCookies(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<Cookie>& rawCookies) 314 { 315 UNUSED_PARAM(frameID); 316 UNUSED_PARAM(pageID); 309 317 // FIXME: Not yet implemented 310 318 rawCookies.clear(); … … 339 347 // dispatcher functions 340 348 341 std::pair<String, bool> cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, IncludeSecureCookies includeSecureCookies)342 { 343 return CurlContext::singleton().cookieJar().cookiesForDOM(session, firstParty, url, includeSecureCookies);344 } 345 346 void setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, const String& value)347 { 348 CurlContext::singleton().cookieJar().setCookiesFromDOM(session, firstParty, url, value);349 } 350 351 std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const URL& url, IncludeSecureCookies includeSecureCookies)352 { 353 return CurlContext::singleton().cookieJar().cookieRequestHeaderFieldValue(session, firstParty, url, includeSecureCookies);349 std::pair<String, bool> cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) 350 { 351 return CurlContext::singleton().cookieJar().cookiesForDOM(session, firstParty, url, frameID, pageID, includeSecureCookies); 352 } 353 354 void setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String& value) 355 { 356 CurlContext::singleton().cookieJar().setCookiesFromDOM(session, firstParty, url, frameID, pageID, value); 357 } 358 359 std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) 360 { 361 return CurlContext::singleton().cookieJar().cookieRequestHeaderFieldValue(session, firstParty, url, frameID, pageID, includeSecureCookies); 354 362 } 355 363 … … 359 367 } 360 368 361 bool getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const URL& url, Vector<Cookie>& rawCookies)362 { 363 return CurlContext::singleton().cookieJar().getRawCookies(session, firstParty, url, rawCookies);369 bool getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<Cookie>& rawCookies) 370 { 371 return CurlContext::singleton().cookieJar().getRawCookies(session, firstParty, url, frameID, pageID, rawCookies); 364 372 } 365 373 -
trunk/Source/WebCore/platform/network/curl/CookieJarCurl.h
r223752 r225934 29 29 class CookieJarCurl { 30 30 public: 31 virtual std::pair<String, bool> cookiesForDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, IncludeSecureCookies) = 0;32 virtual void setCookiesFromDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, const String&) = 0;31 virtual std::pair<String, bool> cookiesForDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies) = 0; 32 virtual void setCookiesFromDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String&) = 0; 33 33 virtual bool cookiesEnabled(const NetworkStorageSession&) = 0; 34 virtual std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession&, const URL& firstParty, const URL&, IncludeSecureCookies) = 0;35 virtual bool getRawCookies(const NetworkStorageSession&, const URL& firstParty, const URL&, Vector<Cookie>&) = 0;34 virtual std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies) = 0; 35 virtual bool getRawCookies(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<Cookie>&) = 0; 36 36 virtual void deleteCookie(const NetworkStorageSession&, const URL&, const String&) = 0; 37 37 virtual void getHostnamesWithCookies(const NetworkStorageSession&, HashSet<String>& hostnames) = 0; … … 42 42 43 43 class CookieJarCurlFileSystem : public CookieJarCurl { 44 std::pair<String, bool> cookiesForDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, IncludeSecureCookies) override;45 void setCookiesFromDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, const String&) override;44 std::pair<String, bool> cookiesForDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies) override; 45 void setCookiesFromDOM(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String&) override; 46 46 bool cookiesEnabled(const NetworkStorageSession&) override; 47 std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession&, const URL& firstParty, const URL&, IncludeSecureCookies) override;48 bool getRawCookies(const NetworkStorageSession&, const URL& firstParty, const URL&, Vector<Cookie>&) override;47 std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies) override; 48 bool getRawCookies(const NetworkStorageSession&, const URL& firstParty, const URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<Cookie>&) override; 49 49 void deleteCookie(const NetworkStorageSession&, const URL&, const String&) override; 50 50 void getHostnamesWithCookies(const NetworkStorageSession&, HashSet<String>& hostnames) override; -
trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm
r225827 r225934 123 123 } 124 124 125 static NSArray *cookiesInPartitionForURL(const NetworkStorageSession& session, const URL& firstParty, const URL& url )126 { 127 String partition = session.cookieStoragePartition(firstParty, url, std::nullopt, std::nullopt);125 static NSArray *cookiesInPartitionForURL(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID) 126 { 127 String partition = session.cookieStoragePartition(firstParty, url, frameID, pageID); 128 128 if (partition.isEmpty()) 129 129 return nil; … … 149 149 #endif // HAVE(CFNETWORK_STORAGE_PARTITIONING) 150 150 151 static NSArray *cookiesForURL(const NetworkStorageSession& session, const URL& firstParty, const URL& url )151 static NSArray *cookiesForURL(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID) 152 152 { 153 153 #if HAVE(CFNETWORK_STORAGE_PARTITIONING) … … 155 155 return nil; 156 156 157 if (NSArray *cookies = cookiesInPartitionForURL(session, firstParty, url ))157 if (NSArray *cookies = cookiesInPartitionForURL(session, firstParty, url, frameID, pageID)) 158 158 return cookies; 159 #else 160 UNUSED_PARAM(frameID); 161 UNUSED_PARAM(pageID); 159 162 #endif 160 163 return httpCookiesForURL(session.cookieStorage().get(), firstParty, url); … … 162 165 163 166 enum IncludeHTTPOnlyOrNot { DoNotIncludeHTTPOnly, IncludeHTTPOnly }; 164 static std::pair<String, bool> cookiesForSession(const NetworkStorageSession& session, const URL& firstParty, const URL& url, IncludeHTTPOnlyOrNot includeHTTPOnly, IncludeSecureCookies includeSecureCookies)165 { 166 BEGIN_BLOCK_OBJC_EXCEPTIONS; 167 168 NSArray *cookies = cookiesForURL(session, firstParty, url );167 static std::pair<String, bool> cookiesForSession(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeHTTPOnlyOrNot includeHTTPOnly, IncludeSecureCookies includeSecureCookies) 168 { 169 BEGIN_BLOCK_OBJC_EXCEPTIONS; 170 171 NSArray *cookies = cookiesForURL(session, firstParty, url, frameID, pageID); 169 172 if (![cookies count]) 170 173 return { String(), false }; // Return a null string, not an empty one that StringBuilder would create below. … … 225 228 } 226 229 227 std::pair<String, bool> cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, IncludeSecureCookies includeSecureCookies)228 { 229 return cookiesForSession(session, firstParty, url, DoNotIncludeHTTPOnly, includeSecureCookies);230 } 231 232 std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const URL& url, IncludeSecureCookies includeSecureCookies)233 { 234 return cookiesForSession(session, firstParty, url, IncludeHTTPOnly, includeSecureCookies);235 } 236 237 void setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, const String& cookieStr)230 std::pair<String, bool> cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) 231 { 232 return cookiesForSession(session, firstParty, url, frameID, pageID, DoNotIncludeHTTPOnly, includeSecureCookies); 233 } 234 235 std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) 236 { 237 return cookiesForSession(session, firstParty, url, frameID, pageID, IncludeHTTPOnly, includeSecureCookies); 238 } 239 240 void setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String& cookieStr) 238 241 { 239 242 BEGIN_BLOCK_OBJC_EXCEPTIONS; … … 261 264 262 265 #if HAVE(CFNETWORK_STORAGE_PARTITIONING) 263 String partition = session.cookieStoragePartition(firstParty, url, std::nullopt, std::nullopt);266 String partition = session.cookieStoragePartition(firstParty, url, frameID, pageID); 264 267 if (!partition.isEmpty()) 265 268 filteredCookies = applyPartitionToCookies(partition, filteredCookies.get()); 269 #else 270 UNUSED_PARAM(frameID); 271 UNUSED_PARAM(pageID); 266 272 #endif 267 273 … … 290 296 } 291 297 292 bool getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const URL& url, Vector<Cookie>& rawCookies)298 bool getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<Cookie>& rawCookies) 293 299 { 294 300 rawCookies.clear(); 295 301 BEGIN_BLOCK_OBJC_EXCEPTIONS; 296 302 297 NSArray *cookies = cookiesForURL(session, firstParty, url );303 NSArray *cookies = cookiesForURL(session, firstParty, url, frameID, pageID); 298 304 NSUInteger count = [cookies count]; 299 305 rawCookies.reserveCapacity(count); -
trunk/Source/WebCore/platform/network/soup/CookieJarSoup.cpp
r222938 r225934 51 51 } 52 52 53 void setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, const String& value) 54 { 53 void setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String& value) 54 { 55 UNUSED_PARAM(frameID); 56 UNUSED_PARAM(pageID); 55 57 SoupCookieJar* jar = session.cookieStorage(); 56 58 … … 117 119 } 118 120 119 std::pair<String, bool> cookiesForDOM(const NetworkStorageSession& session, const URL&, const URL& url, IncludeSecureCookies includeSecureCookies) 120 { 121 std::pair<String, bool> cookiesForDOM(const NetworkStorageSession& session, const URL&, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) 122 { 123 UNUSED_PARAM(frameID); 124 UNUSED_PARAM(pageID); 121 125 return cookiesForSession(session, url, false, includeSecureCookies); 122 126 } 123 127 124 std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& /*firstParty*/, const URL& url, IncludeSecureCookies includeSecureCookies) 125 { 128 std::pair<String, bool> cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& /*firstParty*/, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) 129 { 130 UNUSED_PARAM(frameID); 131 UNUSED_PARAM(pageID); 126 132 // Secure cookies will still only be included if url's protocol is https. 127 133 return cookiesForSession(session, url, true, includeSecureCookies); … … 134 140 } 135 141 136 bool getRawCookies(const NetworkStorageSession& session, const URL& /*firstParty*/, const URL& url, Vector<Cookie>& rawCookies) 137 { 142 bool getRawCookies(const NetworkStorageSession& session, const URL& /*firstParty*/, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<Cookie>& rawCookies) 143 { 144 UNUSED_PARAM(frameID); 145 UNUSED_PARAM(pageID); 138 146 rawCookies.clear(); 139 147 GUniquePtr<SoupURI> uri = url.createSoupURI(); -
trunk/Source/WebKit/ChangeLog
r225931 r225934 1 2017-12-14 John Wilander <wilander@apple.com> 2 3 Storage Access API: Implement frame-specific access in the document.cookie layer 4 https://bugs.webkit.org/show_bug.cgi?id=180682 5 <rdar://problem/35982257> 6 7 Reviewed by Alex Christensen. 8 9 CookiesStrategy::cookiesForDOM(), CookiesStrategy::setCookiesFromDOM(), 10 CookiesStrategy::cookieRequestHeaderFieldValue(), and 11 CookiesStrategy::getRawCookies() now take optional parameters for 12 frameID and pageID to allow frame-specific scoping of cookies. 13 14 This change makes the return values of FrameLoaderClient::frameID() 15 and FrameLoaderClient::pageID() std::optional<uint64_t> so that 16 WebCore can call those getters and get the right return values in 17 WebKit and std:nullopt in WebKitLegacy. 18 19 * NetworkProcess/NetworkConnectionToWebProcess.cpp: 20 (WebKit::NetworkConnectionToWebProcess::cookiesForDOM): 21 (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): 22 (WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue): 23 (WebKit::NetworkConnectionToWebProcess::getRawCookies): 24 * NetworkProcess/NetworkConnectionToWebProcess.h: 25 * NetworkProcess/NetworkConnectionToWebProcess.messages.in: 26 * Shared/mac/CookieStorageShim.mm: 27 (WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL): 28 * WebProcess/Network/WebLoaderStrategy.cpp: 29 (WebKit::WebLoaderStrategy::scheduleLoad): 30 Now handles the fact that FrameLoaderClient::frameID() and 31 FrameLoaderClient::pageID() return an optional. 32 * WebProcess/Storage/WebSWContextManagerConnection.cpp: 33 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: 34 (WebKit::WebFrameLoaderClient::pageID const): 35 (WebKit::WebFrameLoaderClient::frameID const): 36 Now return an optional. 37 * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: 38 * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: 39 (WebKit::WebPlatformStrategies::cookiesForDOM): 40 (WebKit::WebPlatformStrategies::setCookiesFromDOM): 41 (WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue): 42 (WebKit::WebPlatformStrategies::getRawCookies): 43 * WebProcess/WebCoreSupport/WebPlatformStrategies.h: 44 1 45 2017-12-14 Alex Christensen <achristensen@webkit.org> 2 46 -
trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
r225926 r225934 348 348 } 349 349 350 void NetworkConnectionToWebProcess::cookiesForDOM(PAL::SessionID sessionID, const URL& firstParty, const URL& url, IncludeSecureCookies includeSecureCookies, String& cookieString, bool& secureCookiesAccessed)351 { 352 std::tie(cookieString, secureCookiesAccessed) = WebCore::cookiesForDOM(storageSession(sessionID), firstParty, url, includeSecureCookies);353 } 354 355 void NetworkConnectionToWebProcess::setCookiesFromDOM(PAL::SessionID sessionID, const URL& firstParty, const URL& url, const String& cookieString)356 { 357 WebCore::setCookiesFromDOM(storageSession(sessionID), firstParty, url, cookieString);350 void NetworkConnectionToWebProcess::cookiesForDOM(PAL::SessionID sessionID, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies, String& cookieString, bool& secureCookiesAccessed) 351 { 352 std::tie(cookieString, secureCookiesAccessed) = WebCore::cookiesForDOM(storageSession(sessionID), firstParty, url, frameID, pageID, includeSecureCookies); 353 } 354 355 void NetworkConnectionToWebProcess::setCookiesFromDOM(PAL::SessionID sessionID, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String& cookieString) 356 { 357 WebCore::setCookiesFromDOM(storageSession(sessionID), firstParty, url, frameID, pageID, cookieString); 358 358 } 359 359 … … 363 363 } 364 364 365 void NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue(PAL::SessionID sessionID, const URL& firstParty, const URL& url, IncludeSecureCookies includeSecureCookies, String& cookieString, bool& secureCookiesAccessed)366 { 367 std::tie(cookieString, secureCookiesAccessed) = WebCore::cookieRequestHeaderFieldValue(storageSession(sessionID), firstParty, url, includeSecureCookies);368 } 369 370 void NetworkConnectionToWebProcess::getRawCookies(PAL::SessionID sessionID, const URL& firstParty, const URL& url, Vector<Cookie>& result)371 { 372 WebCore::getRawCookies(storageSession(sessionID), firstParty, url, result);365 void NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue(PAL::SessionID sessionID, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies, String& cookieString, bool& secureCookiesAccessed) 366 { 367 std::tie(cookieString, secureCookiesAccessed) = WebCore::cookieRequestHeaderFieldValue(storageSession(sessionID), firstParty, url, frameID, pageID, includeSecureCookies); 368 } 369 370 void NetworkConnectionToWebProcess::getRawCookies(PAL::SessionID sessionID, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<Cookie>& result) 371 { 372 WebCore::getRawCookies(storageSession(sessionID), firstParty, url, frameID, pageID, result); 373 373 } 374 374 -
trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h
r225926 r225934 102 102 void convertMainResourceLoadToDownload(PAL::SessionID, uint64_t mainResourceLoadIdentifier, DownloadID, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&); 103 103 104 void cookiesForDOM(PAL::SessionID, const WebCore::URL& firstParty, const WebCore::URL&, WebCore::IncludeSecureCookies, String& cookieString, bool& secureCookiesAccessed);105 void setCookiesFromDOM(PAL::SessionID, const WebCore::URL& firstParty, const WebCore::URL&, const String&);104 void cookiesForDOM(PAL::SessionID, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, WebCore::IncludeSecureCookies, String& cookieString, bool& secureCookiesAccessed); 105 void setCookiesFromDOM(PAL::SessionID, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String&); 106 106 void cookiesEnabled(PAL::SessionID, bool& result); 107 void cookieRequestHeaderFieldValue(PAL::SessionID, const WebCore::URL& firstParty, const WebCore::URL&, WebCore::IncludeSecureCookies, String& cookieString, bool& secureCookiesAccessed);108 void getRawCookies(PAL::SessionID, const WebCore::URL& firstParty, const WebCore::URL&, Vector<WebCore::Cookie>&);107 void cookieRequestHeaderFieldValue(PAL::SessionID, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, WebCore::IncludeSecureCookies, String& cookieString, bool& secureCookiesAccessed); 108 void getRawCookies(PAL::SessionID, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<WebCore::Cookie>&); 109 109 void deleteCookie(PAL::SessionID, const WebCore::URL&, const String& cookieName); 110 110 -
trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in
r223179 r225934 34 34 ConvertMainResourceLoadToDownload(PAL::SessionID sessionID, uint64_t mainResourceLoadIdentifier, WebKit::DownloadID downloadID, WebCore::ResourceRequest request, WebCore::ResourceResponse response) 35 35 36 CookiesForDOM(PAL::SessionID sessionID, WebCore::URL firstParty, WebCore::URL url, enum WebCore::IncludeSecureCookies includeSecureCookies) -> (String cookieString, bool didAccessSecureCookies)37 SetCookiesFromDOM(PAL::SessionID sessionID, WebCore::URL firstParty, WebCore::URL url, String cookieString)36 CookiesForDOM(PAL::SessionID sessionID, WebCore::URL firstParty, WebCore::URL url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, enum WebCore::IncludeSecureCookies includeSecureCookies) -> (String cookieString, bool didAccessSecureCookies) 37 SetCookiesFromDOM(PAL::SessionID sessionID, WebCore::URL firstParty, WebCore::URL url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, String cookieString) 38 38 CookiesEnabled(PAL::SessionID sessionID) -> (bool enabled) 39 CookieRequestHeaderFieldValue(PAL::SessionID sessionID, WebCore::URL firstParty, WebCore::URL url, enum WebCore::IncludeSecureCookies includeSecureCookies) -> (String cookieString, bool didAccessSecureCookies)40 GetRawCookies(PAL::SessionID sessionID, WebCore::URL firstParty, WebCore::URL url ) -> (Vector<WebCore::Cookie> cookies)39 CookieRequestHeaderFieldValue(PAL::SessionID sessionID, WebCore::URL firstParty, WebCore::URL url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, enum WebCore::IncludeSecureCookies includeSecureCookies) -> (String cookieString, bool didAccessSecureCookies) 40 GetRawCookies(PAL::SessionID sessionID, WebCore::URL firstParty, WebCore::URL url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID) -> (Vector<WebCore::Cookie> cookies) 41 41 DeleteCookie(PAL::SessionID sessionID, WebCore::URL url, String cookieName) 42 42 -
trunk/Source/WebKit/Shared/mac/CookieStorageShim.mm
r225282 r225934 62 62 bool secureCookiesAccessed = false; 63 63 URL firstPartyForCookiesURL; 64 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookieRequestHeaderFieldValue(PAL::SessionID::defaultSessionID(), firstPartyForCookiesURL, inRequestURL, includeSecureCookies), Messages::NetworkConnectionToWebProcess::CookieRequestHeaderFieldValue::Reply(cookies, secureCookiesAccessed), 0))64 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookieRequestHeaderFieldValue(PAL::SessionID::defaultSessionID(), firstPartyForCookiesURL, inRequestURL, std::nullopt, std::nullopt, includeSecureCookies), Messages::NetworkConnectionToWebProcess::CookieRequestHeaderFieldValue::Reply(cookies, secureCookiesAccessed), 0)) 65 65 return 0; 66 66 -
trunk/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp
r225705 r225934 159 159 160 160 WebResourceLoader::TrackingParameters trackingParameters; 161 trackingParameters.pageID = frameLoaderClient.pageID() ;162 trackingParameters.frameID = frameLoaderClient.frameID() ;161 trackingParameters.pageID = frameLoaderClient.pageID().value(); 162 trackingParameters.frameID = frameLoaderClient.frameID().value(); 163 163 trackingParameters.resourceID = identifier; 164 164 auto sessionID = frameLoaderClient.sessionID(); -
trunk/Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp
r225760 r225934 85 85 86 86 PAL::SessionID sessionID() const final { return m_sessionID; } 87 uint64_tpageID() const final { return m_pageID; }88 uint64_tframeID() const final { return m_frameID; }87 std::optional<uint64_t> pageID() const final { return m_pageID; } 88 std::optional<uint64_t> frameID() const final { return m_frameID; } 89 89 String userAgent(const URL&) final { return m_userAgent; } 90 90 -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
r225925 r225934 107 107 } 108 108 109 uint64_t WebFrameLoaderClient::pageID() const 110 { 111 return m_frame && m_frame->page() ? m_frame->page()->pageID() : 0; 112 } 113 114 uint64_t WebFrameLoaderClient::frameID() const 115 { 116 return m_frame ? m_frame->frameID() : 0; 109 std::optional<uint64_t> WebFrameLoaderClient::pageID() const 110 { 111 if (m_frame && m_frame->page()) 112 return m_frame->page()->pageID(); 113 114 return std::nullopt; 115 } 116 117 std::optional<uint64_t> WebFrameLoaderClient::frameID() const 118 { 119 if (m_frame) 120 return m_frame->frameID(); 121 122 return std::nullopt; 117 123 } 118 124 -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h
r225682 r225934 52 52 void applyToDocumentLoader(WebsitePolicies&&); 53 53 54 uint64_tpageID() const final;55 uint64_tframeID() const final;54 std::optional<uint64_t> pageID() const final; 55 std::optional<uint64_t> frameID() const final; 56 56 PAL::SessionID sessionID() const final; 57 57 -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp
r225926 r225934 110 110 // CookiesStrategy 111 111 112 std::pair<String, bool> WebPlatformStrategies::cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, IncludeSecureCookies includeSecureCookies)112 std::pair<String, bool> WebPlatformStrategies::cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) 113 113 { 114 114 String cookieString; 115 115 bool secureCookiesAccessed = false; 116 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookiesForDOM(session.sessionID(), firstParty, url, includeSecureCookies), Messages::NetworkConnectionToWebProcess::CookiesForDOM::Reply(cookieString, secureCookiesAccessed), 0))116 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookiesForDOM(session.sessionID(), firstParty, url, frameID, pageID, includeSecureCookies), Messages::NetworkConnectionToWebProcess::CookiesForDOM::Reply(cookieString, secureCookiesAccessed), 0)) 117 117 return { String(), false }; 118 118 … … 120 120 } 121 121 122 void WebPlatformStrategies::setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, const String& cookieString)123 { 124 WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::SetCookiesFromDOM(session.sessionID(), firstParty, url, cookieString), 0);122 void WebPlatformStrategies::setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String& cookieString) 123 { 124 WebProcess::singleton().ensureNetworkProcessConnection().connection().send(Messages::NetworkConnectionToWebProcess::SetCookiesFromDOM(session.sessionID(), firstParty, url, frameID, pageID, cookieString), 0); 125 125 } 126 126 … … 133 133 } 134 134 135 std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const URL& url, IncludeSecureCookies includeSecureCookies)136 { 137 return cookieRequestHeaderFieldValue(session.sessionID(), firstParty, url, includeSecureCookies);138 } 139 140 std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(PAL::SessionID sessionID, const URL& firstParty, const URL& url, IncludeSecureCookies includeSecureCookies)135 std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) 136 { 137 return cookieRequestHeaderFieldValue(session.sessionID(), firstParty, url, frameID, pageID, includeSecureCookies); 138 } 139 140 std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(PAL::SessionID sessionID, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) 141 141 { 142 142 String cookieString; 143 143 bool secureCookiesAccessed = false; 144 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookieRequestHeaderFieldValue(sessionID, firstParty, url, includeSecureCookies), Messages::NetworkConnectionToWebProcess::CookieRequestHeaderFieldValue::Reply(cookieString, secureCookiesAccessed), 0))144 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::CookieRequestHeaderFieldValue(sessionID, firstParty, url, frameID, pageID, includeSecureCookies), Messages::NetworkConnectionToWebProcess::CookieRequestHeaderFieldValue::Reply(cookieString, secureCookiesAccessed), 0)) 145 145 return { String(), false }; 146 146 return { cookieString, secureCookiesAccessed }; 147 147 } 148 148 149 bool WebPlatformStrategies::getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const URL& url, Vector<Cookie>& rawCookies)150 { 151 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::GetRawCookies(session.sessionID(), firstParty, url ), Messages::NetworkConnectionToWebProcess::GetRawCookies::Reply(rawCookies), 0))149 bool WebPlatformStrategies::getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<Cookie>& rawCookies) 150 { 151 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::GetRawCookies(session.sessionID(), firstParty, url, frameID, pageID), Messages::NetworkConnectionToWebProcess::GetRawCookies::Reply(rawCookies), 0)) 152 152 return false; 153 153 return true; -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.h
r223195 r225934 48 48 49 49 // WebCore::CookiesStrategy 50 std::pair<String, bool> cookiesForDOM(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, WebCore::IncludeSecureCookies) override;51 void setCookiesFromDOM(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, const String&) override;50 std::pair<String, bool> cookiesForDOM(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; 51 void setCookiesFromDOM(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String&) override; 52 52 bool cookiesEnabled(const WebCore::NetworkStorageSession&) override; 53 std::pair<String, bool> cookieRequestHeaderFieldValue(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, WebCore::IncludeSecureCookies) override;54 std::pair<String, bool> cookieRequestHeaderFieldValue(PAL::SessionID, const WebCore::URL& firstParty, const WebCore::URL&, WebCore::IncludeSecureCookies) override;55 bool getRawCookies(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, Vector<WebCore::Cookie>&) override;53 std::pair<String, bool> cookieRequestHeaderFieldValue(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; 54 std::pair<String, bool> cookieRequestHeaderFieldValue(PAL::SessionID, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; 55 bool getRawCookies(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<WebCore::Cookie>&) override; 56 56 void deleteCookie(const WebCore::NetworkStorageSession&, const WebCore::URL&, const String&) override; 57 57 -
trunk/Source/WebKitLegacy/mac/ChangeLog
r225797 r225934 1 2017-12-14 John Wilander <wilander@apple.com> 2 3 Storage Access API: Implement frame-specific access in the document.cookie layer 4 https://bugs.webkit.org/show_bug.cgi?id=180682 5 <rdar://problem/35982257> 6 7 Reviewed by Alex Christensen. 8 9 CookiesStrategy::cookiesForDOM(), CookiesStrategy::setCookiesFromDOM(), 10 CookiesStrategy::cookieRequestHeaderFieldValue(), and 11 CookiesStrategy::getRawCookies() now take optional parameters for 12 frameID and pageID to allow frame-specific scoping of cookies. 13 14 This change makes the return values of FrameLoaderClient::frameID() 15 and FrameLoaderClient::pageID() std::optional<uint64_t> so that 16 WebCore can call those getters and get the right return values in 17 WebKit and std:nullopt in WebKitLegacy. 18 19 * WebCoreSupport/WebFrameLoaderClient.h: 20 * WebCoreSupport/WebFrameLoaderClient.mm: 21 (WebFrameLoaderClient::pageID const): 22 (WebFrameLoaderClient::frameID const): 23 * WebCoreSupport/WebPlatformStrategies.h: 24 * WebCoreSupport/WebPlatformStrategies.mm: 25 (WebPlatformStrategies::cookiesForDOM): 26 (WebPlatformStrategies::setCookiesFromDOM): 27 (WebPlatformStrategies::cookieRequestHeaderFieldValue): 28 (WebPlatformStrategies::getRawCookies): 29 1 30 2017-12-12 Simon Fraser <simon.fraser@apple.com> 2 31 -
trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h
r223981 r225934 63 63 bool hasWebView() const final; // mainly for assertions 64 64 65 uint64_tpageID() const final;66 uint64_tframeID() const final;65 std::optional<uint64_t> pageID() const final; 66 std::optional<uint64_t> frameID() const final; 67 67 PAL::SessionID sessionID() const final; 68 68 -
trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm
r224846 r225934 202 202 } 203 203 204 uint64_t WebFrameLoaderClient::pageID() const 205 { 206 RELEASE_ASSERT_NOT_REACHED(); 207 return 0; 208 } 209 210 uint64_t WebFrameLoaderClient::frameID() const 211 { 212 RELEASE_ASSERT_NOT_REACHED(); 213 return 0; 204 std::optional<uint64_t> WebFrameLoaderClient::pageID() const 205 { 206 return std::nullopt; 207 } 208 209 std::optional<uint64_t> WebFrameLoaderClient::frameID() const 210 { 211 return std::nullopt; 214 212 } 215 213 -
trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.h
r223195 r225934 49 49 50 50 // WebCore::CookiesStrategy 51 std::pair<String, bool> cookiesForDOM(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, WebCore::IncludeSecureCookies) override;52 void setCookiesFromDOM(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, const String&) override;51 std::pair<String, bool> cookiesForDOM(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; 52 void setCookiesFromDOM(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String&) override; 53 53 bool cookiesEnabled(const WebCore::NetworkStorageSession&) override; 54 std::pair<String, bool> cookieRequestHeaderFieldValue(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, WebCore::IncludeSecureCookies) override;55 std::pair<String, bool> cookieRequestHeaderFieldValue(PAL::SessionID, const WebCore::URL& firstParty, const WebCore::URL&, WebCore::IncludeSecureCookies) override;56 bool getRawCookies(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, Vector<WebCore::Cookie>&) override;54 std::pair<String, bool> cookieRequestHeaderFieldValue(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; 55 std::pair<String, bool> cookieRequestHeaderFieldValue(PAL::SessionID, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; 56 bool getRawCookies(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<WebCore::Cookie>&) override; 57 57 void deleteCookie(const WebCore::NetworkStorageSession&, const WebCore::URL&, const String&) override; 58 58 -
trunk/Source/WebKitLegacy/mac/WebCoreSupport/WebPlatformStrategies.mm
r223195 r225934 73 73 } 74 74 75 std::pair<String, bool> WebPlatformStrategies::cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, IncludeSecureCookies includeSecureCookies)76 { 77 return WebCore::cookiesForDOM(session, firstParty, url, includeSecureCookies);78 } 79 80 void WebPlatformStrategies::setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, const String& cookieString)81 { 82 WebCore::setCookiesFromDOM(session, firstParty, url, cookieString);75 std::pair<String, bool> WebPlatformStrategies::cookiesForDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) 76 { 77 return WebCore::cookiesForDOM(session, firstParty, url, frameID, pageID, includeSecureCookies); 78 } 79 80 void WebPlatformStrategies::setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String& cookieString) 81 { 82 WebCore::setCookiesFromDOM(session, firstParty, url, frameID, pageID, cookieString); 83 83 } 84 84 … … 88 88 } 89 89 90 std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const URL& url, IncludeSecureCookies includeSecureCookies)91 { 92 return WebCore::cookieRequestHeaderFieldValue(session, firstParty, url, includeSecureCookies);93 } 94 95 std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(PAL::SessionID sessionID, const URL& firstParty, const URL& url, IncludeSecureCookies includeSecureCookies)90 std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) 91 { 92 return WebCore::cookieRequestHeaderFieldValue(session, firstParty, url, frameID, pageID, includeSecureCookies); 93 } 94 95 std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(PAL::SessionID sessionID, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, IncludeSecureCookies includeSecureCookies) 96 96 { 97 97 auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); 98 return WebCore::cookieRequestHeaderFieldValue(session, firstParty, url, includeSecureCookies);99 } 100 101 bool WebPlatformStrategies::getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const URL& url, Vector<Cookie>& rawCookies)102 { 103 return WebCore::getRawCookies(session, firstParty, url, rawCookies);98 return WebCore::cookieRequestHeaderFieldValue(session, firstParty, url, frameID, pageID, includeSecureCookies); 99 } 100 101 bool WebPlatformStrategies::getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<Cookie>& rawCookies) 102 { 103 return WebCore::getRawCookies(session, firstParty, url, frameID, pageID, rawCookies); 104 104 } 105 105 -
trunk/Source/WebKitLegacy/win/ChangeLog
r225778 r225934 1 2017-12-14 John Wilander <wilander@apple.com> 2 3 Storage Access API: Implement frame-specific access in the document.cookie layer 4 https://bugs.webkit.org/show_bug.cgi?id=180682 5 <rdar://problem/35982257> 6 7 Reviewed by Alex Christensen. 8 9 CookiesStrategy::cookiesForDOM(), CookiesStrategy::setCookiesFromDOM(), 10 CookiesStrategy::cookieRequestHeaderFieldValue(), and 11 CookiesStrategy::getRawCookies() now take optional parameters for 12 frameID and pageID to allow frame-specific scoping of cookies. 13 14 This change makes the return values of FrameLoaderClient::frameID() 15 and FrameLoaderClient::pageID() std::optional<uint64_t> so that 16 WebCore can call those getters and get the right return values in 17 WebKit and std:nullopt in WebKitLegacy. 18 19 * WebCoreSupport/WebFrameLoaderClient.cpp: 20 (WebFrameLoaderClient::pageID const): 21 (WebFrameLoaderClient::frameID const): 22 Now return an optional. 23 * WebCoreSupport/WebFrameLoaderClient.h: 24 * WebCoreSupport/WebPlatformStrategies.cpp: 25 (WebPlatformStrategies::cookiesForDOM): 26 (WebPlatformStrategies::setCookiesFromDOM): 27 (WebPlatformStrategies::cookieRequestHeaderFieldValue): 28 (WebPlatformStrategies::getRawCookies): 29 * WebCoreSupport/WebPlatformStrategies.h: 30 1 31 2017-12-12 Yusuke Suzuki <utatane.tea@gmail.com> 2 32 -
trunk/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp
r224387 r225934 122 122 } 123 123 124 uint64_tWebFrameLoaderClient::pageID() const124 std::optional<uint64_t> WebFrameLoaderClient::pageID() const 125 125 { 126 126 RELEASE_ASSERT_NOT_REACHED(); 127 return 0;128 } 129 130 uint64_tWebFrameLoaderClient::frameID() const127 return std::nullopt; 128 } 129 130 std::optional<uint64_t> WebFrameLoaderClient::frameID() const 131 131 { 132 132 RELEASE_ASSERT_NOT_REACHED(); 133 return 0;133 return std::nullopt; 134 134 } 135 135 -
trunk/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h
r223981 r225934 52 52 void dispatchDidFailToStartPlugin(const WebCore::PluginView*) const; 53 53 54 uint64_tpageID() const final;55 uint64_tframeID() const final;54 std::optional<uint64_t> pageID() const final; 55 std::optional<uint64_t> frameID() const final; 56 56 PAL::SessionID sessionID() const final; 57 57 -
trunk/Source/WebKitLegacy/win/WebCoreSupport/WebPlatformStrategies.cpp
r222938 r225934 71 71 } 72 72 73 std::pair<String, bool> WebPlatformStrategies::cookiesForDOM(const WebCore::NetworkStorageSession& session, const WebCore::URL& firstParty, const WebCore::URL& url, WebCore::IncludeSecureCookies includeSecureCookies)73 std::pair<String, bool> WebPlatformStrategies::cookiesForDOM(const WebCore::NetworkStorageSession& session, const WebCore::URL& firstParty, const WebCore::URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, WebCore::IncludeSecureCookies includeSecureCookies) 74 74 { 75 return WebCore::cookiesForDOM(session, firstParty, url, includeSecureCookies);75 return WebCore::cookiesForDOM(session, firstParty, url, frameID, pageID, includeSecureCookies); 76 76 } 77 77 78 void WebPlatformStrategies::setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, const String& cookieString)78 void WebPlatformStrategies::setCookiesFromDOM(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String& cookieString) 79 79 { 80 WebCore::setCookiesFromDOM(session, firstParty, url, cookieString);80 WebCore::setCookiesFromDOM(session, firstParty, url, frameID, pageID, cookieString); 81 81 } 82 82 … … 86 86 } 87 87 88 std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const URL& url, WebCore::IncludeSecureCookies includeSecureCookies)88 std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, WebCore::IncludeSecureCookies includeSecureCookies) 89 89 { 90 return WebCore::cookieRequestHeaderFieldValue(session, firstParty, url, includeSecureCookies);90 return WebCore::cookieRequestHeaderFieldValue(session, firstParty, url, frameID, pageID, includeSecureCookies); 91 91 } 92 92 93 std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(PAL::SessionID sessionID, const URL& firstParty, const URL& url, WebCore::IncludeSecureCookies includeSecureCookies)93 std::pair<String, bool> WebPlatformStrategies::cookieRequestHeaderFieldValue(PAL::SessionID sessionID, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, WebCore::IncludeSecureCookies includeSecureCookies) 94 94 { 95 95 auto& session = sessionID.isEphemeral() ? WebFrameNetworkingContext::ensurePrivateBrowsingSession() : NetworkStorageSession::defaultStorageSession(); 96 return WebCore::cookieRequestHeaderFieldValue(session, firstParty, url, includeSecureCookies);96 return WebCore::cookieRequestHeaderFieldValue(session, firstParty, url, frameID, pageID, includeSecureCookies); 97 97 } 98 98 99 bool WebPlatformStrategies::getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const URL& url, Vector<Cookie>& rawCookies)99 bool WebPlatformStrategies::getRawCookies(const NetworkStorageSession& session, const URL& firstParty, const URL& url, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<Cookie>& rawCookies) 100 100 { 101 return WebCore::getRawCookies(session, firstParty, url, rawCookies);101 return WebCore::getRawCookies(session, firstParty, url, frameID, pageID, rawCookies); 102 102 } 103 103 -
trunk/Source/WebKitLegacy/win/WebCoreSupport/WebPlatformStrategies.h
r222938 r225934 46 46 47 47 // WebCore::CookiesStrategy 48 std::pair<String, bool> cookiesForDOM(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, WebCore::IncludeSecureCookies) override;49 virtual void setCookiesFromDOM(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, const String&);48 std::pair<String, bool> cookiesForDOM(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; 49 virtual void setCookiesFromDOM(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, const String&); 50 50 virtual bool cookiesEnabled(const WebCore::NetworkStorageSession&); 51 std::pair<String, bool> cookieRequestHeaderFieldValue(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, WebCore::IncludeSecureCookies) override;52 std::pair<String, bool> cookieRequestHeaderFieldValue(PAL::SessionID, const WebCore::URL& firstParty, const WebCore::URL&, WebCore::IncludeSecureCookies) override;53 virtual bool getRawCookies(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, Vector<WebCore::Cookie>&);51 std::pair<String, bool> cookieRequestHeaderFieldValue(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; 52 std::pair<String, bool> cookieRequestHeaderFieldValue(PAL::SessionID, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, WebCore::IncludeSecureCookies) override; 53 virtual bool getRawCookies(const WebCore::NetworkStorageSession&, const WebCore::URL& firstParty, const WebCore::URL&, std::optional<uint64_t> frameID, std::optional<uint64_t> pageID, Vector<WebCore::Cookie>&); 54 54 virtual void deleteCookie(const WebCore::NetworkStorageSession&, const WebCore::URL&, const String&); 55 55 };
Note:
See TracChangeset
for help on using the changeset viewer.