Changeset 241903 in webkit
- Timestamp:
- Feb 21, 2019 2:34:17 PM (5 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r241900 r241903 1 2019-02-21 Alex Christensen <achristensen@webkit.org> 2 3 API::HTTPCookieStore should expose setCookies() 4 https://bugs.webkit.org/show_bug.cgi?id=194861 5 6 Reviewed by Brent Fulgham. 7 8 Pass a Vector<Cookie> instead of just one cookie at a time. 9 This will add the ability to set multiple cookies without an IPC roundtrip per cookie. 10 11 * NetworkProcess/Cookies/WebCookieManager.cpp: 12 (WebKit::WebCookieManager::setCookie): 13 * NetworkProcess/Cookies/WebCookieManager.h: 14 * NetworkProcess/Cookies/WebCookieManager.messages.in: 15 * UIProcess/API/APIHTTPCookieStore.cpp: 16 (API::HTTPCookieStore::setCookies): 17 (API::HTTPCookieStore::setCookie): Deleted. 18 * UIProcess/API/APIHTTPCookieStore.h: 19 * UIProcess/API/Cocoa/WKHTTPCookieStore.mm: 20 (-[WKHTTPCookieStore setCookie:completionHandler:]): 21 * UIProcess/WebCookieManagerProxy.cpp: 22 (WebKit::WebCookieManagerProxy::setCookies): 23 (WebKit::WebCookieManagerProxy::setCookie): Deleted. 24 * UIProcess/WebCookieManagerProxy.h: 25 1 26 2019-02-21 Antoine Quint <graouts@apple.com> 2 27 -
trunk/Source/WebKit/NetworkProcess/Cookies/WebCookieManager.cpp
r241451 r241903 111 111 } 112 112 113 void WebCookieManager::setCookie(PAL::SessionID sessionID, const Cookie& cookie, CallbackID callbackID)113 void WebCookieManager::setCookie(PAL::SessionID sessionID, const Vector<Cookie>& cookies, CallbackID callbackID) 114 114 { 115 if (auto* storageSession = m_process.storageSession(sessionID)) 116 storageSession->setCookie(cookie); 115 if (auto* storageSession = m_process.storageSession(sessionID)) { 116 for (auto& cookie : cookies) 117 storageSession->setCookie(cookie); 118 } 117 119 118 120 m_process.send(Messages::WebCookieManagerProxy::DidSetCookies(callbackID), 0); -
trunk/Source/WebKit/NetworkProcess/Cookies/WebCookieManager.h
r240858 r241903 75 75 void deleteAllCookiesModifiedSince(PAL::SessionID, WallTime, CallbackID); 76 76 77 void setCookie(PAL::SessionID, const WebCore::Cookie&, CallbackID);77 void setCookie(PAL::SessionID, const Vector<WebCore::Cookie>&, CallbackID); 78 78 void setCookies(PAL::SessionID, const Vector<WebCore::Cookie>&, const URL&, const URL& mainDocumentURL, CallbackID); 79 79 void getAllCookies(PAL::SessionID, CallbackID); -
trunk/Source/WebKit/NetworkProcess/Cookies/WebCookieManager.messages.in
r240858 r241903 29 29 void DeleteAllCookies(PAL::SessionID sessionID) 30 30 31 void SetCookie(PAL::SessionID sessionID, struct WebCore::Cookiecookie, WebKit::CallbackID callbackID)31 void SetCookie(PAL::SessionID sessionID, Vector<WebCore::Cookie> cookie, WebKit::CallbackID callbackID) 32 32 void SetCookies(PAL::SessionID sessionID, Vector<WebCore::Cookie> cookies, URL url, URL mainDocumentURL, WebKit::CallbackID callbackID) 33 33 void GetAllCookies(PAL::SessionID sessionID, WebKit::CallbackID callbackID) -
trunk/Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp
r241850 r241903 75 75 } 76 76 77 void HTTPCookieStore::setCookie (const WebCore::Cookie& cookie, CompletionHandler<void()>&& completionHandler)78 { 79 auto* pool = m_owningDataStore->processPoolForCookieStorageOperations(); 80 if (!pool) { 81 // FIXME: pendingCookies used for defaultSession because session cookies cannot be propagated to Network Process with uiProcessCookieStorageIdentifier.82 if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID() && !cookie.session)83 setCookieInDefaultUIProcessCookieStore(cookie);84 else85 m_owningDataStore->addPendingCookie(cookie);86 87 callOnMainThread([completionHandler = WTFMove(completionHandler)] () mutable {88 completionHandler(); 89 });77 void HTTPCookieStore::setCookies(const Vector<WebCore::Cookie>& cookies, CompletionHandler<void()>&& completionHandler) 78 { 79 auto* pool = m_owningDataStore->processPoolForCookieStorageOperations(); 80 if (!pool) { 81 for (auto& cookie : cookies) { 82 // FIXME: pendingCookies used for defaultSession because session cookies cannot be propagated to Network Process with uiProcessCookieStorageIdentifier. 83 if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID() && !cookie.session) 84 setCookieInDefaultUIProcessCookieStore(cookie); 85 else 86 m_owningDataStore->addPendingCookie(cookie); 87 } 88 89 callOnMainThread(WTFMove(completionHandler)); 90 90 return; 91 91 } 92 92 93 93 auto* cookieManager = pool->supplement<WebKit::WebCookieManagerProxy>(); 94 cookieManager->setCookie (m_owningDataStore->sessionID(), cookie, [pool = WTFMove(pool), completionHandler = WTFMove(completionHandler)] (CallbackBase::Error error) mutable {94 cookieManager->setCookies(m_owningDataStore->sessionID(), cookies, [pool = WTFMove(pool), completionHandler = WTFMove(completionHandler)] (CallbackBase::Error error) mutable { 95 95 completionHandler(); 96 96 }); -
trunk/Source/WebKit/UIProcess/API/APIHTTPCookieStore.h
r241850 r241903 60 60 61 61 void cookies(CompletionHandler<void(const Vector<WebCore::Cookie>&)>&&); 62 void setCookie (const WebCore::Cookie&, CompletionHandler<void()>&&);62 void setCookies(const Vector<WebCore::Cookie>&, CompletionHandler<void()>&&); 63 63 void deleteCookie(const WebCore::Cookie&, CompletionHandler<void()>&&); 64 64 -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm
r241183 r241903 88 88 - (void)setCookie:(NSHTTPCookie *)cookie completionHandler:(void (^)(void))completionHandler 89 89 { 90 _cookieStore->setCookie (cookie, [handler = adoptNS([completionHandler copy])]() {90 _cookieStore->setCookies({ cookie }, [handler = adoptNS([completionHandler copy])]() { 91 91 auto rawHandler = (void (^)())handler.get(); 92 92 if (rawHandler) -
trunk/Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp
r240858 r241903 268 268 // of the process we access them from, so just use the first process pool. 269 269 const auto& processPools = webkitWebsiteDataManagerGetProcessPools(manager->priv->dataManager); 270 processPools[0]->supplement<WebCookieManagerProxy>()->setCookie (manager->priv->sessionID(), WebCore::Cookie(cookie), [task = WTFMove(task)](CallbackBase::Error error) {270 processPools[0]->supplement<WebCookieManagerProxy>()->setCookies(manager->priv->sessionID(), { WebCore::Cookie(cookie) }, [task = WTFMove(task)](CallbackBase::Error error) { 271 271 if (error != CallbackBase::Error::None) { 272 272 // This can only happen in cases where the web process is not available, -
trunk/Source/WebKit/UIProcess/WebCookieManagerProxy.cpp
r240785 r241903 143 143 } 144 144 145 void WebCookieManagerProxy::setCookie (PAL::SessionID sessionID, const Cookie& cookie, Function<void(CallbackBase::Error)>&& callbackFunction)146 { 147 auto callbackID = m_callbacks.put(WTFMove(callbackFunction), processPool()->ensureNetworkProcess().throttler().backgroundActivityToken()); 148 processPool()->sendToNetworkingProcess(Messages::WebCookieManager::SetCookie(sessionID, cookie , callbackID));145 void WebCookieManagerProxy::setCookies(PAL::SessionID sessionID, const Vector<Cookie>& cookies, Function<void(CallbackBase::Error)>&& callbackFunction) 146 { 147 auto callbackID = m_callbacks.put(WTFMove(callbackFunction), processPool()->ensureNetworkProcess().throttler().backgroundActivityToken()); 148 processPool()->sendToNetworkingProcess(Messages::WebCookieManager::SetCookie(sessionID, cookies, callbackID)); 149 149 } 150 150 -
trunk/Source/WebKit/UIProcess/WebCookieManagerProxy.h
r240858 r241903 72 72 void deleteAllCookiesModifiedSince(PAL::SessionID, WallTime, Function<void (CallbackBase::Error)>&&); 73 73 74 void setCookie (PAL::SessionID, const WebCore::Cookie&, Function<void(CallbackBase::Error)>&&);74 void setCookies(PAL::SessionID, const Vector<WebCore::Cookie>&, Function<void(CallbackBase::Error)>&&); 75 75 void setCookies(PAL::SessionID, const Vector<WebCore::Cookie>&, const URL&, const URL& mainDocumentURL, Function<void(CallbackBase::Error)>&&); 76 76
Note: See TracChangeset
for help on using the changeset viewer.