Changeset 213877 in webkit
- Timestamp:
- Mar 13, 2017 4:00:49 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 5 added
- 33 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r213873 r213877 1 2017-03-13 Brady Eidson <beidson@apple.com> 2 3 WKWebView provides no access to cookies. 4 https://bugs.webkit.org/show_bug.cgi?id=140191 5 6 Reviewed by Tim Horton. 7 8 Covered by API tests. 9 10 * platform/Cookie.h: 11 12 * platform/network/NetworkStorageSession.h: 13 * platform/network/cocoa/NetworkStorageSessionCocoa.mm: 14 (WebCore::NetworkStorageSession::setCookie): 15 (WebCore::NetworkStorageSession::deleteCookie): 16 (WebCore::nsCookiesToCookieVector): 17 (WebCore::NetworkStorageSession::getAllCookies): 18 (WebCore::NetworkStorageSession::getCookies): 19 20 * platform/network/soup/NetworkStorageSessionSoup.cpp: 21 (WebCore::NetworkStorageSession::deleteCookie): 22 (WebCore::NetworkStorageSession::getAllCookies): 23 (WebCore::NetworkStorageSession::getCookies): 24 1 25 2017-03-13 Devin Rousso <webkit@devinrousso.com> 2 26 -
trunk/Source/WebCore/platform/Cookie.h
r213778 r213877 59 59 #ifdef __OBJC__ 60 60 WEBCORE_EXPORT Cookie(NSHTTPCookie *); 61 operator NSHTTPCookie *() const;61 WEBCORE_EXPORT operator NSHTTPCookie *() const; 62 62 #endif 63 63 -
trunk/Source/WebCore/platform/network/NetworkStorageSession.h
r213871 r213877 101 101 #endif 102 102 103 WEBCORE_EXPORT void setCookie(const Cookie&); 103 104 WEBCORE_EXPORT void setCookies(const Vector<Cookie>&, const URL&, const URL& mainDocumentURL); 105 WEBCORE_EXPORT void deleteCookie(const Cookie&); 106 WEBCORE_EXPORT Vector<Cookie> getAllCookies(); 107 WEBCORE_EXPORT Vector<Cookie> getCookies(const URL&); 104 108 105 109 private: -
trunk/Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm
r213759 r213877 33 33 namespace WebCore { 34 34 35 void NetworkStorageSession::setCookie(const Cookie& cookie) 36 { 37 BEGIN_BLOCK_OBJC_EXCEPTIONS; 38 [nsCookieStorage() setCookie:(NSHTTPCookie *)cookie]; 39 END_BLOCK_OBJC_EXCEPTIONS; 40 } 41 35 42 void NetworkStorageSession::setCookies(const Vector<Cookie>& cookies, const URL& url, const URL& mainDocumentURL) 36 43 { … … 42 49 [nsCookieStorage() setCookies:nsCookies.get() forURL:(NSURL *)url mainDocumentURL:(NSURL *)mainDocumentURL]; 43 50 END_BLOCK_OBJC_EXCEPTIONS; 51 } 52 53 void NetworkStorageSession::deleteCookie(const Cookie& cookie) 54 { 55 [nsCookieStorage() deleteCookie:(NSHTTPCookie *)cookie]; 56 } 57 58 static Vector<Cookie> nsCookiesToCookieVector(NSArray<NSHTTPCookie *> *nsCookies) 59 { 60 Vector<Cookie> cookies; 61 cookies.reserveInitialCapacity(nsCookies.count); 62 for (NSHTTPCookie *nsCookie in nsCookies) 63 cookies.uncheckedAppend(nsCookie); 64 65 return cookies; 66 } 67 68 Vector<Cookie> NetworkStorageSession::getAllCookies() 69 { 70 return nsCookiesToCookieVector(nsCookieStorage().cookies); 71 } 72 73 Vector<Cookie> NetworkStorageSession::getCookies(const URL& url) 74 { 75 return nsCookiesToCookieVector([nsCookieStorage() cookiesForURL:(NSURL *)url]); 44 76 } 45 77 -
trunk/Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp
r213759 r213877 305 305 } 306 306 307 void NetworkStorageSession::deleteCookie(const Cookie&) 308 { 309 // FIXME: Implement for WK2 to use. 310 } 311 312 Vector<Cookie> NetworkStorageSession::getAllCookies() 313 { 314 // FIXME: Implement for WK2 to use. 315 } 316 317 Vector<Cookie> NetworkStorageSession::getCookies(const URL&) 318 { 319 // FIXME: Implement for WK2 to use. 320 } 307 321 308 322 } // namespace WebCore -
trunk/Source/WebKit2/CMakeLists.txt
r213843 r213877 334 334 UIProcess/API/APIExperimentalFeature.cpp 335 335 UIProcess/API/APIFrameInfo.cpp 336 UIProcess/API/APIHTTPCookieStorage.cpp 336 337 UIProcess/API/APIHitTestResult.cpp 337 338 UIProcess/API/APINavigation.cpp -
trunk/Source/WebKit2/ChangeLog
r213871 r213877 1 2017-03-13 Brady Eidson <beidson@apple.com> 2 3 WKWebView provides no access to cookies. 4 https://bugs.webkit.org/show_bug.cgi?id=140191 5 6 Reviewed by Tim Horton. 7 8 This adds a new WKHTTPCookieManager SPI. 9 It follows the NSHTTPCookieStorage API but asynchronous (with completion handlers). 10 11 * CMakeLists.txt: 12 * WebKit2.xcodeproj/project.pbxproj: 13 14 * Shared/API/APIObject.h: 15 * Shared/Cocoa/APIObject.mm: 16 (API::Object::newObject): 17 18 * UIProcess/API/APIHTTPCookieStorage.cpp: Added. 19 (API::HTTPCookieStorage::HTTPCookieStorage): 20 (API::HTTPCookieStorage::~HTTPCookieStorage): 21 (API::HTTPCookieStorage::cookies): 22 (API::HTTPCookieStorage::setCookie): 23 (API::HTTPCookieStorage::setCookies): 24 (API::HTTPCookieStorage::deleteCookie): 25 (API::HTTPCookieStorage::removeCookiesSinceDate): 26 (API::HTTPCookieStorage::setHTTPCookieAcceptPolicy): 27 (API::HTTPCookieStorage::getHTTPCookieAcceptPolicy): 28 * UIProcess/API/APIHTTPCookieStorage.h: Added. 29 30 * UIProcess/API/APIWebsiteDataStore.cpp: 31 (API::WebsiteDataStore::defaultDataStore): 32 (API::WebsiteDataStore::httpCookieStorage): 33 * UIProcess/API/APIWebsiteDataStore.h: 34 35 * UIProcess/API/C/WKCookieManager.cpp: 36 (WKCookieManagerDeleteAllCookiesModifiedAfterDate): 37 (WKCookieManagerSetHTTPCookieAcceptPolicy): 38 (WKCookieManagerGetHTTPCookieAcceptPolicy): 39 40 * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: 41 (WKWebsiteDataStoreGetDefaultDataStore): 42 43 * UIProcess/API/Cocoa/WKProcessPool.mm: 44 (-[WKProcessPool _setCookieAcceptPolicy:]): 45 46 * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: 47 (+[WKWebsiteDataStore defaultDataStore]): 48 (-[WKWebsiteDataStore _httpCookieStorage]): 49 * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: 50 51 * UIProcess/API/Cocoa/WKHTTPCookieStorage.h: 52 * UIProcess/API/Cocoa/WKHTTPCookieStorage.mm: Added. 53 (coreCookiesToNSCookies): 54 (-[WKHTTPCookieStorage dealloc]): 55 (-[WKHTTPCookieStorage fetchCookies:]): 56 (-[WKHTTPCookieStorage fetchCookiesForURL:completionHandler:]): 57 (-[WKHTTPCookieStorage setCookie:completionHandler:]): 58 (-[WKHTTPCookieStorage deleteCookie:completionHandler:]): 59 (-[WKHTTPCookieStorage setCookies:forURL:mainDocumentURL:completionHandler:]): 60 (-[WKHTTPCookieStorage removeCookiesSinceDate:completionHandler:]): 61 (-[WKHTTPCookieStorage setCookieAcceptPolicy:completionHandler:]): 62 (kitCookiePolicyToNSCookiePolicy): 63 (-[WKHTTPCookieStorage fetchCookieAcceptPolicy:]): 64 (-[WKHTTPCookieStorage _apiObject]): 65 * UIProcess/API/Cocoa/WKHTTPCookieStorageInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h. 66 (WebKit::wrapper): 67 68 * UIProcess/Automation/WebAutomationSession.cpp: 69 (WebKit::WebAutomationSession::addSingleCookie): 70 71 * UIProcess/WebCookieManagerProxy.cpp: 72 (WebKit::WebCookieManagerProxy::getHostnamesWithCookies): 73 (WebKit::WebCookieManagerProxy::deleteCookiesForHostname): 74 (WebKit::WebCookieManagerProxy::deleteAllCookies): 75 (WebKit::WebCookieManagerProxy::deleteCookie): 76 (WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedSince): 77 (WebKit::WebCookieManagerProxy::setCookie): 78 (WebKit::WebCookieManagerProxy::setCookies): 79 (WebKit::WebCookieManagerProxy::getAllCookies): 80 (WebKit::WebCookieManagerProxy::getCookies): 81 (WebKit::WebCookieManagerProxy::didSetCookies): 82 (WebKit::WebCookieManagerProxy::didGetCookies): 83 (WebKit::WebCookieManagerProxy::didDeleteCookies): 84 (WebKit::WebCookieManagerProxy::startObservingCookieChanges): 85 (WebKit::WebCookieManagerProxy::stopObservingCookieChanges): 86 (WebKit::WebCookieManagerProxy::setCookieObserverCallback): 87 (WebKit::WebCookieManagerProxy::cookiesDidChange): 88 (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): 89 (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy): 90 (WebKit::WebCookieManagerProxy::didGetHTTPCookieAcceptPolicy): 91 (WebKit::WebCookieManagerProxy::didSetHTTPCookieAcceptPolicy): 92 * UIProcess/WebCookieManagerProxy.h: 93 * UIProcess/WebCookieManagerProxy.messages.in: 94 95 * UIProcess/WebFrameProxy.h: 96 97 * UIProcess/WebProcessPool.cpp: 98 * UIProcess/WebProcessPool.h: 99 100 * UIProcess/WebsiteData/WebsiteDataStore.cpp: 101 (WebKit::WebsiteDataStore::processPoolForCookieStorageOperations): 102 (WebKit::WebsiteDataStore::processPools): 103 * UIProcess/WebsiteData/WebsiteDataStore.h: 104 105 * WebProcess/Cookies/WebCookieManager.cpp: 106 (WebKit::WebCookieManager::deleteCookie): 107 (WebKit::WebCookieManager::deleteAllCookiesModifiedSince): 108 (WebKit::WebCookieManager::getAllCookies): 109 (WebKit::WebCookieManager::getCookies): 110 (WebKit::WebCookieManager::setCookie): 111 (WebKit::WebCookieManager::setCookies): 112 (WebKit::WebCookieManager::setHTTPCookieAcceptPolicy): 113 * WebProcess/Cookies/WebCookieManager.h: 114 * WebProcess/Cookies/WebCookieManager.messages.in: 115 1 116 2017-03-13 John Wilander <wilander@apple.com> 2 117 -
trunk/Source/WebKit2/NetworkProcess/soup/NetworkProcessSoup.cpp
r210921 r213877 125 125 parameters.cookiePersistentStorageType); 126 126 } 127 supplement<WebCookieManager>()->setHTTPCookieAcceptPolicy(parameters.cookieAcceptPolicy );127 supplement<WebCookieManager>()->setHTTPCookieAcceptPolicy(parameters.cookieAcceptPolicy, 0); 128 128 129 129 if (!parameters.languages.isEmpty()) -
trunk/Source/WebKit2/Shared/API/APIObject.h
r213696 r213877 117 117 GeolocationManager, 118 118 GeolocationPermissionRequest, 119 HTTPCookieStorage, 119 120 HitTestResult, 120 121 GeolocationPosition, -
trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm
r213696 r213877 37 37 #import "WKContentExtensionStoreInternal.h" 38 38 #import "WKFrameInfoInternal.h" 39 #import "WKHTTPCookieStorageInternal.h" 39 40 #import "WKNSArray.h" 40 41 #import "WKNSData.h" … … 179 180 break; 180 181 182 case Type::HTTPCookieStorage: 183 wrapper = [WKHTTPCookieStorage alloc]; 184 break; 185 181 186 #if PLATFORM(MAC) 182 187 case Type::HitTestResult: -
trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp
r213854 r213877 32 32 namespace API { 33 33 34 Ref Ptr<WebsiteDataStore> WebsiteDataStore::defaultDataStore()34 Ref<WebsiteDataStore> WebsiteDataStore::defaultDataStore() 35 35 { 36 36 WebKit::InitializeWebKit2(); … … 38 38 static WebsiteDataStore* defaultDataStore = adoptRef(new WebsiteDataStore(defaultDataStoreConfiguration())).leakRef(); 39 39 40 return defaultDataStore;40 return *defaultDataStore; 41 41 } 42 42 … … 63 63 WebsiteDataStore::~WebsiteDataStore() 64 64 { 65 } 66 67 HTTPCookieStorage& WebsiteDataStore::httpCookieStorage() 68 { 69 if (!m_apiHTTPCookieStorage) 70 m_apiHTTPCookieStorage = HTTPCookieStorage::create(*this); 71 72 return *m_apiHTTPCookieStorage; 65 73 } 66 74 -
trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h
r213854 r213877 27 27 #define APIWebsiteDataStore_h 28 28 29 #include "API Object.h"29 #include "APIHTTPCookieStorage.h" 30 30 #include "WebsiteDataStore.h" 31 31 #include <WebCore/SessionID.h> … … 36 36 class WebsiteDataStore final : public ObjectImpl<Object::Type::WebsiteDataStore> { 37 37 public: 38 static Ref Ptr<WebsiteDataStore> defaultDataStore();38 static Ref<WebsiteDataStore> defaultDataStore(); 39 39 static Ref<WebsiteDataStore> createNonPersistentDataStore(); 40 40 static Ref<WebsiteDataStore> create(WebKit::WebsiteDataStore::Configuration); … … 50 50 51 51 WebKit::WebsiteDataStore& websiteDataStore() { return *m_websiteDataStore; } 52 HTTPCookieStorage& httpCookieStorage(); 52 53 53 54 static String defaultApplicationCacheDirectory(); … … 75 76 76 77 RefPtr<WebKit::WebsiteDataStore> m_websiteDataStore; 78 RefPtr<HTTPCookieStorage> m_apiHTTPCookieStorage; 77 79 }; 78 80 -
trunk/Source/WebKit2/UIProcess/API/C/WKCookieManager.cpp
r213623 r213877 62 62 63 63 auto time = system_clock::time_point(duration_cast<system_clock::duration>(duration<double>(date))); 64 toImpl(cookieManagerRef)->deleteAllCookiesModifiedSince(WebCore::SessionID::defaultSessionID(), time );64 toImpl(cookieManagerRef)->deleteAllCookiesModifiedSince(WebCore::SessionID::defaultSessionID(), time, [](CallbackBase::Error){}); 65 65 } 66 66 67 67 void WKCookieManagerSetHTTPCookieAcceptPolicy(WKCookieManagerRef cookieManager, WKHTTPCookieAcceptPolicy policy) 68 68 { 69 toImpl(cookieManager)->setHTTPCookieAcceptPolicy( toHTTPCookieAcceptPolicy(policy));69 toImpl(cookieManager)->setHTTPCookieAcceptPolicy(WebCore::SessionID::defaultSessionID(), toHTTPCookieAcceptPolicy(policy), [](CallbackBase::Error){}); 70 70 } 71 71 72 72 void WKCookieManagerGetHTTPCookieAcceptPolicy(WKCookieManagerRef cookieManager, void* context, WKCookieManagerGetHTTPCookieAcceptPolicyFunction callback) 73 73 { 74 toImpl(cookieManager)->getHTTPCookieAcceptPolicy( toGenericCallbackFunction<WKHTTPCookieAcceptPolicy, HTTPCookieAcceptPolicy>(context, callback));74 toImpl(cookieManager)->getHTTPCookieAcceptPolicy(WebCore::SessionID::defaultSessionID(), toGenericCallbackFunction<WKHTTPCookieAcceptPolicy, HTTPCookieAcceptPolicy>(context, callback)); 75 75 } 76 76 -
trunk/Source/WebKit2/UIProcess/API/C/WKWebsiteDataStoreRef.cpp
r201081 r213877 38 38 WKWebsiteDataStoreRef WKWebsiteDataStoreGetDefaultDataStore() 39 39 { 40 return WebKit::toAPI(API::WebsiteDataStore::defaultDataStore(). get());40 return WebKit::toAPI(API::WebsiteDataStore::defaultDataStore().ptr()); 41 41 } 42 42 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKHTTPCookieStorageInternal.h
r213876 r213877 1 1 /* 2 * Copyright (C) 201 6-2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #import <WebKit/WKWebsiteDataStore.h>26 #import "WKHTTPCookieStorage.h" 27 27 28 28 #if WK_API_ENABLED 29 29 30 NS_ASSUME_NONNULL_BEGIN 30 #import "APIHTTPCookieStorage.h" 31 #import "WKObject.h" 31 32 32 @class _WKWebsiteDataStoreConfiguration; 33 namespace WebKit { 33 34 34 typedef NS_OPTIONS(NSUInteger, _WKWebsiteDataStoreFetchOptions) { 35 _WKWebsiteDataStoreFetchOptionComputeSizes = 1 << 0, 36 } WK_API_AVAILABLE(macosx(10.12), ios(10.0)); 35 inline WKHTTPCookieStorage *wrapper(API::HTTPCookieStorage& cookieStorage) 36 { 37 ASSERT([cookieStorage.wrapper() isKindOfClass:[WKHTTPCookieStorage class]]); 38 return (WKHTTPCookieStorage *)cookieStorage.wrapper(); 39 } 37 40 38 @interface WKWebsiteDataStore (WKPrivate) 41 } 39 42 40 - (instancetype)_initWithConfiguration:(_WKWebsiteDataStoreConfiguration *)configuration; 41 42 - (void)_fetchDataRecordsOfTypes:(NSSet<NSString *> *)dataTypes withOptions:(_WKWebsiteDataStoreFetchOptions)options completionHandler:(void (^)(NSArray<WKWebsiteDataRecord *> *))completionHandler; 43 44 @property (nonatomic, setter=_setResourceLoadStatisticsEnabled:) BOOL _resourceLoadStatisticsEnabled WK_API_AVAILABLE(macosx(10.12), ios(10.0)); 45 43 @interface WKHTTPCookieStorage () <WKObject> { 44 @package 45 API::ObjectStorage<API::HTTPCookieStorage> _cookieStorage; 46 } 46 47 @end 47 48 48 NS_ASSUME_NONNULL_END49 50 49 #endif -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm
r205199 r213877 197 197 - (void)_setCookieAcceptPolicy:(NSHTTPCookieAcceptPolicy)policy 198 198 { 199 _processPool->supplement<WebKit::WebCookieManagerProxy>()->setHTTPCookieAcceptPolicy( toHTTPCookieAcceptPolicy(policy));199 _processPool->supplement<WebKit::WebCookieManagerProxy>()->setHTTPCookieAcceptPolicy(WebCore::SessionID::defaultSessionID(), toHTTPCookieAcceptPolicy(policy), [](WebKit::CallbackBase::Error){}); 200 200 } 201 201 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
r213331 r213877 29 29 #if WK_API_ENABLED 30 30 31 #import "WKHTTPCookieStorageInternal.h" 31 32 #import "WKNSArray.h" 32 33 #import "WKWebsiteDataRecordInternal.h" … … 39 40 + (WKWebsiteDataStore *)defaultDataStore 40 41 { 41 return WebKit::wrapper( *API::WebsiteDataStore::defaultDataStore().get());42 return WebKit::wrapper(API::WebsiteDataStore::defaultDataStore().get()); 42 43 } 43 44 … … 195 196 } 196 197 198 - (WKHTTPCookieStorage *)_httpCookieStorage 199 { 200 return WebKit::wrapper(_websiteDataStore->httpCookieStorage()); 201 } 202 197 203 @end 198 204 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h
r213241 r213877 30 30 NS_ASSUME_NONNULL_BEGIN 31 31 32 @class WKHTTPCookieStorage; 32 33 @class _WKWebsiteDataStoreConfiguration; 33 34 … … 44 45 @property (nonatomic, setter=_setResourceLoadStatisticsEnabled:) BOOL _resourceLoadStatisticsEnabled WK_API_AVAILABLE(macosx(10.12), ios(10.0)); 45 46 47 /*! @abstract Returns the cookie storage representing HTTP cookies in this website data store. */ 48 @property (nonatomic, readonly) WKHTTPCookieStorage *_httpCookieStorage WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA)); 49 46 50 @end 47 51 -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.cpp
r212626 r213877 28 28 #include "WebKitWebsiteDataPrivate.h" 29 29 #include "WebsiteDataRecord.h" 30 #include <WebCore/SessionID.h> 30 31 #include <wtf/glib/GRefPtr.h> 31 32 #include <wtf/text/CString.h> … … 179 180 180 181 for (auto* processPool : webkitWebsiteDataManagerGetProcessPools(manager->priv->dataManager)) 181 processPool->supplement<WebCookieManagerProxy>()->setHTTPCookieAcceptPolicy( toHTTPCookieAcceptPolicy(policy));182 processPool->supplement<WebCookieManagerProxy>()->setHTTPCookieAcceptPolicy(WebCore::SessionID::defaultSessionID(), toHTTPCookieAcceptPolicy(policy), [](CallbackBase::Error){}); 182 183 } 183 184 … … 213 214 } 214 215 215 processPools[0]->supplement<WebCookieManagerProxy>()->getHTTPCookieAcceptPolicy( 216 processPools[0]->supplement<WebCookieManagerProxy>()->getHTTPCookieAcceptPolicy(WebCore::SessionID::defaultSessionID(), 216 217 toGenericCallbackFunction<WKHTTPCookieAcceptPolicy, HTTPCookieAcceptPolicy>(task.leakRef(), webkitCookieManagerGetAcceptPolicyCallback)); 217 218 } -
trunk/Source/WebKit2/UIProcess/Automation/WebAutomationSession.cpp
r213790 r213877 735 735 // FIXME: Using activeURL here twice is basically saying "this is always in the context of the main document" 736 736 // which probably isn't accurate. 737 cookieManager->setCookies(WebCore::SessionID::defaultSessionID(), { cookie }, activeURL, activeURL );737 cookieManager->setCookies(WebCore::SessionID::defaultSessionID(), { cookie }, activeURL, activeURL, [](CallbackBase::Error){}); 738 738 739 739 callback->sendSuccess(); -
trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp
r213777 r213877 33 33 #include "WebCookieManagerProxyMessages.h" 34 34 #include "WebProcessPool.h" 35 #include <WebCore/Cookie.h> 35 36 #include <WebCore/SecurityOriginData.h> 37 38 using namespace WebCore; 36 39 37 40 namespace WebKit { … … 95 98 } 96 99 97 void WebCookieManagerProxy::getHostnamesWithCookies( WebCore::SessionID sessionID, Function<void (API::Array*, CallbackBase::Error)>&& callbackFunction)100 void WebCookieManagerProxy::getHostnamesWithCookies(SessionID sessionID, Function<void (API::Array*, CallbackBase::Error)>&& callbackFunction) 98 101 { 99 102 auto callback = ArrayCallback::create(WTFMove(callbackFunction)); … … 115 118 } 116 119 117 void WebCookieManagerProxy::deleteCookiesForHostname( WebCore::SessionID sessionID, const String& hostname)120 void WebCookieManagerProxy::deleteCookiesForHostname(SessionID sessionID, const String& hostname) 118 121 { 119 122 processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteCookiesForHostname(sessionID, hostname)); 120 123 } 121 124 122 void WebCookieManagerProxy::deleteAllCookies( WebCore::SessionID sessionID)125 void WebCookieManagerProxy::deleteAllCookies(SessionID sessionID) 123 126 { 124 127 processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteAllCookies(sessionID)); 125 128 } 126 129 127 void WebCookieManagerProxy::deleteAllCookiesModifiedSince(WebCore::SessionID sessionID, std::chrono::system_clock::time_point time) 128 { 129 processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteAllCookiesModifiedSince(sessionID, time)); 130 } 131 132 void WebCookieManagerProxy::setCookies(WebCore::SessionID sessionID, const Vector<WebCore::Cookie>& cookies, const WebCore::URL& url, const WebCore::URL& mainDocumentURL) 133 { 134 processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::SetCookies(sessionID, cookies, url, mainDocumentURL)); 135 } 136 137 void WebCookieManagerProxy::startObservingCookieChanges(WebCore::SessionID sessionID) 130 void WebCookieManagerProxy::deleteCookie(SessionID sessionID, const Cookie& cookie, Function<void (CallbackBase::Error)>&& callbackFunction) 131 { 132 auto callback = VoidCallback::create(WTFMove(callbackFunction)); 133 uint64_t callbackID = callback->callbackID(); 134 m_voidCallbacks.set(callbackID, WTFMove(callback)); 135 136 processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteCookie(sessionID, cookie, callbackID)); 137 } 138 139 void WebCookieManagerProxy::deleteAllCookiesModifiedSince(SessionID sessionID, std::chrono::system_clock::time_point time, Function<void (CallbackBase::Error)>&& callbackFunction) 140 { 141 auto callback = VoidCallback::create(WTFMove(callbackFunction)); 142 uint64_t callbackID = callback->callbackID(); 143 m_voidCallbacks.set(callbackID, WTFMove(callback)); 144 145 processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteAllCookiesModifiedSince(sessionID, time, callbackID)); 146 } 147 148 void WebCookieManagerProxy::setCookie(SessionID sessionID, const Cookie& cookie, Function<void (CallbackBase::Error)>&& callbackFunction) 149 { 150 auto callback = VoidCallback::create(WTFMove(callbackFunction)); 151 uint64_t callbackID = callback->callbackID(); 152 m_voidCallbacks.set(callbackID, WTFMove(callback)); 153 154 processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::SetCookie(sessionID, cookie, callbackID)); 155 } 156 157 void WebCookieManagerProxy::setCookies(SessionID sessionID, const Vector<Cookie>& cookies, const URL& url, const URL& mainDocumentURL, Function<void (CallbackBase::Error)>&& callbackFunction) 158 { 159 auto callback = VoidCallback::create(WTFMove(callbackFunction)); 160 uint64_t callbackID = callback->callbackID(); 161 m_voidCallbacks.set(callbackID, WTFMove(callback)); 162 163 processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::SetCookies(sessionID, cookies, url, mainDocumentURL, callbackID)); 164 } 165 166 void WebCookieManagerProxy::getAllCookies(SessionID sessionID, Function<void (const Vector<Cookie>&, CallbackBase::Error)>&& callbackFunction) 167 { 168 auto callback = GetCookiesCallback::create(WTFMove(callbackFunction)); 169 uint64_t callbackID = callback->callbackID(); 170 m_getCookiesCallbacks.set(callbackID, WTFMove(callback)); 171 172 processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::GetAllCookies(sessionID, callbackID)); 173 } 174 175 void WebCookieManagerProxy::getCookies(SessionID sessionID, const URL& url, Function<void (const Vector<Cookie>&, CallbackBase::Error)>&& callbackFunction) 176 { 177 auto callback = GetCookiesCallback::create(WTFMove(callbackFunction)); 178 uint64_t callbackID = callback->callbackID(); 179 m_getCookiesCallbacks.set(callbackID, WTFMove(callback)); 180 181 processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::GetCookies(sessionID, url, callbackID)); 182 } 183 184 void WebCookieManagerProxy::didSetCookies(uint64_t callbackID) 185 { 186 m_voidCallbacks.take(callbackID)->performCallback(); 187 } 188 189 void WebCookieManagerProxy::didGetCookies(const Vector<Cookie>& cookies, uint64_t callbackID) 190 { 191 m_getCookiesCallbacks.take(callbackID)->performCallbackWithReturnValue(cookies); 192 } 193 194 void WebCookieManagerProxy::didDeleteCookies(uint64_t callbackID) 195 { 196 m_voidCallbacks.take(callbackID)->performCallback(); 197 } 198 199 void WebCookieManagerProxy::startObservingCookieChanges(SessionID sessionID) 138 200 { 139 201 processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::StartObservingCookieChanges(sessionID)); 140 202 } 141 203 142 void WebCookieManagerProxy::stopObservingCookieChanges( WebCore::SessionID sessionID)204 void WebCookieManagerProxy::stopObservingCookieChanges(SessionID sessionID) 143 205 { 144 206 processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::StopObservingCookieChanges(sessionID)); 145 207 } 146 208 147 void WebCookieManagerProxy::setCookieObserverCallback( WebCore::SessionID sessionID, std::function<void ()>&& callback)209 void WebCookieManagerProxy::setCookieObserverCallback(SessionID sessionID, std::function<void ()>&& callback) 148 210 { 149 211 if (callback) … … 153 215 } 154 216 155 void WebCookieManagerProxy::cookiesDidChange( WebCore::SessionID sessionID)217 void WebCookieManagerProxy::cookiesDidChange(SessionID sessionID) 156 218 { 157 219 m_client.cookiesDidChange(this); … … 160 222 } 161 223 162 void WebCookieManagerProxy::setHTTPCookieAcceptPolicy( HTTPCookieAcceptPolicy policy)224 void WebCookieManagerProxy::setHTTPCookieAcceptPolicy(SessionID, HTTPCookieAcceptPolicy policy, Function<void (CallbackBase::Error)>&& callbackFunction) 163 225 { 164 226 #if PLATFORM(COCOA) … … 173 235 // - When testing, we only have one WebProcess and one NetworkProcess, and WebKitTestRunner never restarts them; 174 236 // - When not testing, Cocoa has the policy persisted, and thus new processes use it (even for ephemeral sessions). 175 processPool()->sendToAllProcesses(Messages::WebCookieManager::SetHTTPCookieAcceptPolicy(policy)); 176 processPool()->sendToNetworkingProcess(Messages::WebCookieManager::SetHTTPCookieAcceptPolicy(policy)); 177 } 178 179 void WebCookieManagerProxy::getHTTPCookieAcceptPolicy(Function<void (HTTPCookieAcceptPolicy, CallbackBase::Error)> callbackFunction) 237 processPool()->sendToAllProcesses(Messages::WebCookieManager::SetHTTPCookieAcceptPolicy(policy, 0)); 238 239 auto callback = VoidCallback::create(WTFMove(callbackFunction)); 240 uint64_t callbackID = callback->callbackID(); 241 m_voidCallbacks.set(callbackID, WTFMove(callback)); 242 243 processPool()->sendToNetworkingProcess(Messages::WebCookieManager::SetHTTPCookieAcceptPolicy(policy, callbackID)); 244 } 245 246 void WebCookieManagerProxy::getHTTPCookieAcceptPolicy(SessionID, Function<void (HTTPCookieAcceptPolicy, CallbackBase::Error)>&& callbackFunction) 180 247 { 181 248 auto callback = HTTPCookieAcceptPolicyCallback::create(WTFMove(callbackFunction)); … … 189 256 void WebCookieManagerProxy::didGetHTTPCookieAcceptPolicy(uint32_t policy, uint64_t callbackID) 190 257 { 191 RefPtr<HTTPCookieAcceptPolicyCallback> callback = m_httpCookieAcceptPolicyCallbacks.take(callbackID); 192 if (!callback) { 193 // FIXME: Log error or assert. 194 return; 195 } 196 197 callback->performCallbackWithReturnValue(policy); 258 m_httpCookieAcceptPolicyCallbacks.take(callbackID)->performCallbackWithReturnValue(policy); 259 } 260 261 void WebCookieManagerProxy::didSetHTTPCookieAcceptPolicy(uint64_t callbackID) 262 { 263 m_voidCallbacks.take(callbackID)->performCallback(); 198 264 } 199 265 -
trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.h
r213777 r213877 56 56 typedef GenericCallback<API::Array*> ArrayCallback; 57 57 typedef GenericCallback<HTTPCookieAcceptPolicy> HTTPCookieAcceptPolicyCallback; 58 typedef GenericCallback<const Vector<WebCore::Cookie>&> GetCookiesCallback; 58 59 59 60 class WebCookieManagerProxy : public API::ObjectImpl<API::Object::Type::CookieManager>, public WebContextSupplement, private IPC::MessageReceiver { … … 67 68 68 69 void getHostnamesWithCookies(WebCore::SessionID, Function<void (API::Array*, CallbackBase::Error)>&&); 70 void deleteCookie(WebCore::SessionID, const WebCore::Cookie&, Function<void (CallbackBase::Error)>&&); 69 71 void deleteCookiesForHostname(WebCore::SessionID, const String& hostname); 70 72 void deleteAllCookies(WebCore::SessionID); 71 void deleteAllCookiesModifiedSince(WebCore::SessionID, std::chrono::system_clock::time_point );73 void deleteAllCookiesModifiedSince(WebCore::SessionID, std::chrono::system_clock::time_point, Function<void (CallbackBase::Error)>&&); 72 74 73 void setCookies(WebCore::SessionID, const Vector<WebCore::Cookie>&, const WebCore::URL&, const WebCore::URL& mainDocumentURL); 75 void setCookie(WebCore::SessionID, const WebCore::Cookie&, Function<void (CallbackBase::Error)>&&); 76 void setCookies(WebCore::SessionID, const Vector<WebCore::Cookie>&, const WebCore::URL&, const WebCore::URL& mainDocumentURL, Function<void (CallbackBase::Error)>&&); 74 77 75 void setHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy); 76 void getHTTPCookieAcceptPolicy(Function<void (HTTPCookieAcceptPolicy, CallbackBase::Error)>); 78 void getAllCookies(WebCore::SessionID, Function<void (const Vector<WebCore::Cookie>&, CallbackBase::Error)>&& completionHandler); 79 void getCookies(WebCore::SessionID, const WebCore::URL&, Function<void (const Vector<WebCore::Cookie>&, CallbackBase::Error)>&& completionHandler); 80 81 void setHTTPCookieAcceptPolicy(WebCore::SessionID, HTTPCookieAcceptPolicy, Function<void (CallbackBase::Error)>&&); 82 void getHTTPCookieAcceptPolicy(WebCore::SessionID, Function<void (HTTPCookieAcceptPolicy, CallbackBase::Error)>&&); 83 77 84 void setCookieStoragePartitioningEnabled(bool); 78 85 … … 96 103 void didGetHTTPCookieAcceptPolicy(uint32_t policy, uint64_t callbackID); 97 104 105 void didSetHTTPCookieAcceptPolicy(uint64_t callbackID); 106 void didSetCookies(uint64_t callbackID); 107 void didGetCookies(const Vector<WebCore::Cookie>&, uint64_t callbackID); 108 void didDeleteCookies(uint64_t callbackID); 109 98 110 void cookiesDidChange(WebCore::SessionID); 99 111 … … 114 126 HashMap<uint64_t, RefPtr<ArrayCallback>> m_arrayCallbacks; 115 127 HashMap<uint64_t, RefPtr<HTTPCookieAcceptPolicyCallback>> m_httpCookieAcceptPolicyCallbacks; 128 HashMap<uint64_t, RefPtr<VoidCallback>> m_voidCallbacks; 129 HashMap<uint64_t, RefPtr<GetCookiesCallback>> m_getCookiesCallbacks; 116 130 117 131 HashMap<WebCore::SessionID, std::function<void ()>> m_cookieObservers; -
trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.messages.in
r212283 r213877 24 24 DidGetHostnamesWithCookies(Vector<String> hostnames, uint64_t callbackID); 25 25 DidGetHTTPCookieAcceptPolicy(uint32_t policy, uint64_t callbackID); 26 26 27 DidSetHTTPCookieAcceptPolicy(uint64_t callbackID); 28 DidDeleteCookies(uint64_t callbackID); 29 DidSetCookies(uint64_t callbackID); 30 DidGetCookies(Vector<WebCore::Cookie> cookies, uint64_t callbackID); 31 27 32 CookiesDidChange(WebCore::SessionID sessionID) 28 33 } -
trunk/Source/WebKit2/UIProcess/WebFrameProxy.h
r213777 r213877 32 32 #include <WebCore/FrameLoaderTypes.h> 33 33 #include <wtf/Forward.h> 34 #include <wtf/Function.h> 34 35 #include <wtf/PassRefPtr.h> 35 36 #include <wtf/text/WTFString.h> -
trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp
r213854 r213877 31 31 #include "APICustomProtocolManagerClient.h" 32 32 #include "APIDownloadClient.h" 33 #include "APIHTTPCookieStorage.h" 33 34 #include "APILegacyContextHistoryClient.h" 34 35 #include "APIPageConfiguration.h" -
trunk/Source/WebKit2/UIProcess/WebProcessPool.h
r213854 r213877 77 77 class CustomProtocolManagerClient; 78 78 class DownloadClient; 79 class HTTPCookieStorage; 79 80 class LegacyContextHistoryClient; 80 81 class PageConfiguration; -
trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp
r213871 r213877 31 31 #include "NetworkProcessMessages.h" 32 32 #include "StorageManager.h" 33 #include "WebCookieManagerProxy.h" 33 34 #include "WebProcessMessages.h" 34 35 #include "WebProcessPool.h" … … 104 105 processPool->sendToNetworkingProcess(Messages::NetworkProcess::DestroyPrivateBrowsingSession(m_sessionID)); 105 106 } 107 } 108 109 Ref<WebProcessPool> WebsiteDataStore::processPoolForCookieStorageOperations() 110 { 111 // Our concepts of WebProcess, WebProcessPool, WebsiteDataStore, and SessionIDs have all started to overlap 112 // without clear divisions of responsibilities. 113 // In practice, multiple WebProcessPools can contain "the same session", especially since there is currently 114 // only a single default global SessionID. 115 // 116 // This means that multiple NetworkProcesses can be using the same session, which means that multiple 117 // NetworkProcesses can be referring to the same platform cookie storage. 118 // 119 // While this may cause complications with future APIs it is actually fine for implementing the WKHTTPCookieStorage API 120 // because we only need one NetworkProcess to successfully make a requested platform cookie storage change. 121 // 122 // FIXME: We need to start to unravel this mess going forward. 123 124 auto pools = processPools(1); 125 ASSERT(!pools.isEmpty()); 126 127 return **pools.begin(); 106 128 } 107 129 … … 1109 1131 } 1110 1132 1111 HashSet<RefPtr<WebProcessPool>> WebsiteDataStore::processPools( ) const1133 HashSet<RefPtr<WebProcessPool>> WebsiteDataStore::processPools(size_t count) const 1112 1134 { 1113 1135 HashSet<RefPtr<WebProcessPool>> processPools; … … 1123 1145 break; 1124 1146 } 1125 } 1126 } 1127 } 1128 1129 if (processPools.isEmpty()) { 1147 } else if (&API::WebsiteDataStore::defaultDataStore()->websiteDataStore() == this) { 1148 // If a process pool doesn't have an explicit data store and this is the default WebsiteDataStore, 1149 // add that process pool to the set. 1150 // FIXME: This behavior is weird and necessitated by the fact that process pools don't always 1151 // have a data store; they should. 1152 processPools.add(processPool); 1153 } 1154 1155 if (processPools.size() == count) 1156 break; 1157 } 1158 } 1159 1160 if (processPools.isEmpty() && count) { 1130 1161 auto processPool = WebProcessPool::create(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration(m_configuration)); 1131 1162 processPools.add(processPool.ptr()); -
trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.h
r213871 r213877 104 104 StorageManager* storageManager() { return m_storageManager.get(); } 105 105 106 Ref<WebProcessPool> processPoolForCookieStorageOperations(); 107 106 108 private: 107 109 explicit WebsiteDataStore(WebCore::SessionID); … … 120 122 static void platformRemoveRecentSearches(std::chrono::system_clock::time_point); 121 123 122 HashSet<RefPtr<WebProcessPool>> processPools( ) const;124 HashSet<RefPtr<WebProcessPool>> processPools(size_t count = std::numeric_limits<size_t>::max()) const; 123 125 124 126 #if ENABLE(NETSCAPE_PLUGIN_API) -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r213696 r213877 1064 1064 51D124361E6DFB39002B2820 /* WKURLSchemeHandlerTask.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51D124301E6DDDD7002B2820 /* WKURLSchemeHandlerTask.mm */; }; 1065 1065 51D1243A1E6E0AAB002B2820 /* APIURLSchemeHandlerTask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51D124381E6DFDB9002B2820 /* APIURLSchemeHandlerTask.cpp */; }; 1066 51D124911E74BF3C002B2820 /* APIHTTPCookieStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51D124821E734AC8002B2820 /* APIHTTPCookieStorage.cpp */; }; 1067 51D124921E74BF48002B2820 /* WKHTTPCookieStorage.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51D124851E734AE3002B2820 /* WKHTTPCookieStorage.mm */; }; 1068 51D124991E763C01002B2820 /* WKHTTPCookieStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 51D124841E734AE3002B2820 /* WKHTTPCookieStorage.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1066 1069 51D130531382EAC000351EDD /* SecItemRequestData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51D1304F1382EAC000351EDD /* SecItemRequestData.cpp */; }; 1067 1070 51D130541382EAC000351EDD /* SecItemRequestData.h in Headers */ = {isa = PBXBuildFile; fileRef = 51D130501382EAC000351EDD /* SecItemRequestData.h */; }; … … 3286 3289 51D124381E6DFDB9002B2820 /* APIURLSchemeHandlerTask.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIURLSchemeHandlerTask.cpp; sourceTree = "<group>"; }; 3287 3290 51D124391E6DFDB9002B2820 /* APIURLSchemeHandlerTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIURLSchemeHandlerTask.h; sourceTree = "<group>"; }; 3291 51D124821E734AC8002B2820 /* APIHTTPCookieStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIHTTPCookieStorage.cpp; sourceTree = "<group>"; }; 3292 51D124831E734AC8002B2820 /* APIHTTPCookieStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIHTTPCookieStorage.h; sourceTree = "<group>"; }; 3293 51D124841E734AE3002B2820 /* WKHTTPCookieStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKHTTPCookieStorage.h; sourceTree = "<group>"; }; 3294 51D124851E734AE3002B2820 /* WKHTTPCookieStorage.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKHTTPCookieStorage.mm; sourceTree = "<group>"; }; 3295 51D124861E734AE3002B2820 /* WKHTTPCookieStorageInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKHTTPCookieStorageInternal.h; sourceTree = "<group>"; }; 3288 3296 51D1304F1382EAC000351EDD /* SecItemRequestData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SecItemRequestData.cpp; sourceTree = "<group>"; }; 3289 3297 51D130501382EAC000351EDD /* SecItemRequestData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecItemRequestData.h; sourceTree = "<group>"; }; … … 5545 5553 2DF9EEE71A78245500B6CFBE /* WKFrameInfoInternal.h */, 5546 5554 1A6FA21D1BD0435B00AAA650 /* WKFrameInfoPrivate.h */, 5555 51D124841E734AE3002B2820 /* WKHTTPCookieStorage.h */, 5556 51D124851E734AE3002B2820 /* WKHTTPCookieStorage.mm */, 5557 51D124861E734AE3002B2820 /* WKHTTPCookieStorageInternal.h */, 5547 5558 1A422F8A18B29B5400D8CD96 /* WKHistoryDelegatePrivate.h */, 5548 5559 1AB40EE31BF677E300BA81BE /* WKMenuItemIdentifiers.mm */, … … 6733 6744 93A88B421BC8828C00ABA5C2 /* APIHitTestResult.cpp */, 6734 6745 93A88B431BC8828C00ABA5C2 /* APIHitTestResult.h */, 6746 51D124821E734AC8002B2820 /* APIHTTPCookieStorage.cpp */, 6747 51D124831E734AC8002B2820 /* APIHTTPCookieStorage.h */, 6735 6748 5143B2611DDD0DA00014FAC6 /* APIIconLoadingClient.h */, 6736 6749 7CE4D2061A46775700C7F152 /* APILegacyContextHistoryClient.h */, … … 8516 8529 510523741C73D38B007993CB /* WebIDBConnectionToServerMessages.h in Headers */, 8517 8530 BCCF6ABD12C91EF9008F9C35 /* WebImage.h in Headers */, 8531 51D124991E763C01002B2820 /* WKHTTPCookieStorage.h in Headers */, 8518 8532 1C8E28201275D15400BC7BD0 /* WebInspector.h in Headers */, 8519 8533 BC032D8210F4378D0058C15A /* WebInspectorClient.h in Headers */, … … 9768 9782 1A6FBD2911E69BC200DB1371 /* NetscapePlugin.cpp in Sources */, 9769 9783 1AE5B7FB11E7AED200BA6767 /* NetscapePluginMac.mm in Sources */, 9784 51D124921E74BF48002B2820 /* WKHTTPCookieStorage.mm in Sources */, 9770 9785 1A4A9C5512B816CF008FE984 /* NetscapePluginModule.cpp in Sources */, 9771 9786 839A2F311E2067450039057E /* HighPerformanceGraphicsUsageSampler.cpp in Sources */, … … 9786 9801 832AE2531BE2E8CD00FAAE10 /* NetworkCacheSpeculativeLoadManager.cpp in Sources */, 9787 9802 83BDCCB91AC5FDB6003F6441 /* NetworkCacheStatistics.cpp in Sources */, 9803 51D124911E74BF3C002B2820 /* APIHTTPCookieStorage.cpp in Sources */, 9788 9804 E4436ED01A0D040B00EAD204 /* NetworkCacheStorage.cpp in Sources */, 9789 9805 8310428C1BD6B66F00A715E4 /* NetworkCacheSubresourcesEntry.cpp in Sources */, -
trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp
r213759 r213877 73 73 } 74 74 75 75 76 void WebCookieManager::deleteAllCookies(SessionID sessionID) 76 77 { … … 79 80 } 80 81 81 void WebCookieManager::deleteAllCookiesModifiedSince(SessionID sessionID, std::chrono::system_clock::time_point time) 82 void WebCookieManager::deleteCookie(SessionID sessionID, const Cookie& cookie, uint64_t callbackID) 83 { 84 if (auto* storageSession = NetworkStorageSession::storageSession(sessionID)) 85 storageSession->deleteCookie(cookie); 86 87 m_process->send(Messages::WebCookieManagerProxy::DidDeleteCookies(callbackID), 0); 88 } 89 90 void WebCookieManager::deleteAllCookiesModifiedSince(SessionID sessionID, std::chrono::system_clock::time_point time, uint64_t callbackID) 82 91 { 83 92 if (auto* storageSession = NetworkStorageSession::storageSession(sessionID)) 84 93 WebCore::deleteAllCookiesModifiedSince(*storageSession, time); 94 95 if (callbackID) 96 m_process->send(Messages::WebCookieManagerProxy::DidDeleteCookies(callbackID), 0); 85 97 } 86 98 87 void WebCookieManager::setCookies(WebCore::SessionID sessionID, const Vector<Cookie>& cookies, const URL& url, const URL& mainDocumentURL) 99 void WebCookieManager::getAllCookies(SessionID sessionID, uint64_t callbackID) 100 { 101 Vector<Cookie> cookies; 102 if (auto* storageSession = NetworkStorageSession::storageSession(sessionID)) 103 cookies = storageSession->getAllCookies(); 104 105 m_process->send(Messages::WebCookieManagerProxy::DidGetCookies(cookies, callbackID), 0); 106 } 107 108 void WebCookieManager::getCookies(SessionID sessionID, const URL& url, uint64_t callbackID) 109 { 110 Vector<Cookie> cookies; 111 if (auto* storageSession = NetworkStorageSession::storageSession(sessionID)) 112 cookies = storageSession->getCookies(url); 113 114 m_process->send(Messages::WebCookieManagerProxy::DidGetCookies(cookies, callbackID), 0); 115 } 116 117 void WebCookieManager::setCookie(WebCore::SessionID sessionID, const Cookie& cookie, uint64_t callbackID) 118 { 119 if (auto* storageSession = NetworkStorageSession::storageSession(sessionID)) 120 storageSession->setCookie(cookie); 121 122 if (callbackID) 123 m_process->send(Messages::WebCookieManagerProxy::DidSetCookies(callbackID), 0); 124 } 125 126 void WebCookieManager::setCookies(WebCore::SessionID sessionID, const Vector<Cookie>& cookies, const URL& url, const URL& mainDocumentURL, uint64_t callbackID) 88 127 { 89 128 if (auto* storageSession = NetworkStorageSession::storageSession(sessionID)) 90 129 storageSession->setCookies(cookies, url, mainDocumentURL); 130 131 if (callbackID) 132 m_process->send(Messages::WebCookieManagerProxy::DidSetCookies(callbackID), 0); 91 133 } 92 134 … … 112 154 } 113 155 114 void WebCookieManager::setHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy policy )156 void WebCookieManager::setHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy policy, uint64_t callbackID) 115 157 { 116 158 platformSetHTTPCookieAcceptPolicy(policy); 159 160 if (callbackID) 161 m_process->send(Messages::WebCookieManagerProxy::DidSetHTTPCookieAcceptPolicy(callbackID), 0); 117 162 } 118 163 -
trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.h
r213759 r213877 57 57 static const char* supplementName(); 58 58 59 void setHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy); 59 void setHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy, uint64_t callbackID); 60 60 61 #if USE(SOUP) 61 62 void setCookiePersistentStorage(const String& storagePath, uint32_t storageType); … … 69 70 70 71 void getHostnamesWithCookies(WebCore::SessionID, uint64_t callbackID); 72 73 void deleteCookie(WebCore::SessionID, const WebCore::Cookie&, uint64_t callbackID); 71 74 void deleteCookiesForHostname(WebCore::SessionID, const String&); 72 75 void deleteAllCookies(WebCore::SessionID); 73 void deleteAllCookiesModifiedSince(WebCore::SessionID, std::chrono::system_clock::time_point );76 void deleteAllCookiesModifiedSince(WebCore::SessionID, std::chrono::system_clock::time_point, uint64_t callbackID); 74 77 75 void setCookies(WebCore::SessionID, const Vector<WebCore::Cookie>&, const WebCore::URL&, const WebCore::URL& mainDocumentURL); 78 void setCookie(WebCore::SessionID, const WebCore::Cookie&, uint64_t callbackID); 79 void setCookies(WebCore::SessionID, const Vector<WebCore::Cookie>&, const WebCore::URL&, const WebCore::URL& mainDocumentURL, uint64_t callbackID); 80 void getAllCookies(WebCore::SessionID, uint64_t callbackID); 81 void getCookies(WebCore::SessionID, const WebCore::URL&, uint64_t callbackID); 76 82 77 83 void platformSetHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy); -
trunk/Source/WebKit2/WebProcess/Cookies/WebCookieManager.messages.in
r213759 r213877 28 28 void DeleteCookiesForHostname(WebCore::SessionID sessionID, String hostname) 29 29 void DeleteAllCookies(WebCore::SessionID sessionID) 30 void DeleteAllCookiesModifiedSince(WebCore::SessionID sessionID, std::chrono::system_clock::time_point time)31 30 32 void SetCookies(WebCore::SessionID sessionID, Vector<WebCore::Cookie> cookies, WebCore::URL url, WebCore::URL mainDocumentURL); 31 void SetCookie(WebCore::SessionID sessionID, struct WebCore::Cookie cookie, uint64_t callbackID) 32 void SetCookies(WebCore::SessionID sessionID, Vector<WebCore::Cookie> cookies, WebCore::URL url, WebCore::URL mainDocumentURL, uint64_t callbackID) 33 void GetAllCookies(WebCore::SessionID sessionID, uint64_t callbackID) 34 void GetCookies(WebCore::SessionID sessionID, WebCore::URL url, uint64_t callbackID) 35 void DeleteCookie(WebCore::SessionID sessionID, struct WebCore::Cookie cookie, uint64_t callbackID) 36 void DeleteAllCookiesModifiedSince(WebCore::SessionID sessionID, std::chrono::system_clock::time_point time, uint64_t callbackID) 33 37 34 void SetHTTPCookieAcceptPolicy(uint32_t policy )38 void SetHTTPCookieAcceptPolicy(uint32_t policy, uint64_t callbackID) 35 39 void GetHTTPCookieAcceptPolicy(uint64_t callbackID) 36 40 -
trunk/Tools/ChangeLog
r213868 r213877 1 2017-03-13 Brady Eidson <beidson@apple.com> 2 3 WKWebView provides no access to cookies. 4 https://bugs.webkit.org/show_bug.cgi?id=140191 5 6 Reviewed by Tim Horton. 7 8 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 9 1 10 2017-03-13 Carlos Alberto Lopez Perez <clopez@igalia.com> 2 11 -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r213725 r213877 153 153 51CD1C6C1B38CE4300142CA5 /* ModalAlerts.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51CD1C6A1B38CE3600142CA5 /* ModalAlerts.mm */; }; 154 154 51CD1C721B38D48400142CA5 /* modal-alerts-in-new-about-blank-window.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 51CD1C711B38D48400142CA5 /* modal-alerts-in-new-about-blank-window.html */; }; 155 51D124981E763B02002B2820 /* WKHTTPCookieStorage.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51D124971E763AF8002B2820 /* WKHTTPCookieStorage.mm */; }; 155 156 51E5C7021919C3B200D8B3E1 /* simple2.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 51E780361919AFF8001829A2 /* simple2.html */; }; 156 157 51E5C7031919C3B200D8B3E1 /* simple3.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 51E780371919AFF8001829A2 /* simple3.html */; }; … … 1049 1050 51CD1C6A1B38CE3600142CA5 /* ModalAlerts.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ModalAlerts.mm; sourceTree = "<group>"; }; 1050 1051 51CD1C711B38D48400142CA5 /* modal-alerts-in-new-about-blank-window.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = "modal-alerts-in-new-about-blank-window.html"; sourceTree = "<group>"; }; 1052 51D124971E763AF8002B2820 /* WKHTTPCookieStorage.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKHTTPCookieStorage.mm; sourceTree = "<group>"; }; 1051 1053 51E5C7041919EA5F00D8B3E1 /* ShouldKeepCurrentBackForwardListItemInList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShouldKeepCurrentBackForwardListItemInList.cpp; sourceTree = "<group>"; }; 1052 1054 51E6A8921D2F1BEC00C004B6 /* LocalStorageClear.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = LocalStorageClear.mm; sourceTree = "<group>"; }; … … 1650 1652 5C9E56841DF9143D00C9EE33 /* WebsitePolicies.mm */, 1651 1653 1F83571A1D3FFB0E00E3967B /* WKBackForwardList.mm */, 1654 51D124971E763AF8002B2820 /* WKHTTPCookieStorage.mm */, 1652 1655 375E0E151D66674400EFEC2C /* WKNSNumber.mm */, 1653 1656 37B47E2E1D64E7CA005F4EFF /* WKObject.mm */, … … 2730 2733 7C83E0401D0A63E300FEBCF3 /* FirstResponderScrollingPosition.mm in Sources */, 2731 2734 7C83E0BC1D0A650700FEBCF3 /* FixedLayoutSize.mm in Sources */, 2735 51D124981E763B02002B2820 /* WKHTTPCookieStorage.mm in Sources */, 2732 2736 7CCE7EF51A411AE600447C4C /* ForceRepaint.cpp in Sources */, 2733 2737 37B47E301D64E7CA005F4EFF /* WKObject.mm in Sources */,
Note: See TracChangeset
for help on using the changeset viewer.