WebKit Bugzilla
Attachment 362637 Details for
Bug 194861
: API::HTTPCookieStore should expose setCookies()
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-194861-20190221131940.patch (text/plain), 12.50 KB, created by
Alex Christensen
on 2019-02-21 13:19:40 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Alex Christensen
Created:
2019-02-21 13:19:40 PST
Size:
12.50 KB
patch
obsolete
>Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 241874) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,28 @@ >+2019-02-21 Alex Christensen <achristensen@webkit.org> >+ >+ API::HTTPCookieStore should expose setCookies() >+ https://bugs.webkit.org/show_bug.cgi?id=194861 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Pass a Vector<Cookie> instead of just one cookie at a time. >+ This will add the ability to set multiple cookies without an IPC roundtrip per cookie. >+ >+ * NetworkProcess/Cookies/WebCookieManager.cpp: >+ (WebKit::WebCookieManager::setCookie): >+ * NetworkProcess/Cookies/WebCookieManager.h: >+ * NetworkProcess/Cookies/WebCookieManager.messages.in: >+ * UIProcess/API/APIHTTPCookieStore.cpp: >+ (API::HTTPCookieStore::setCookies): >+ (API::HTTPCookieStore::setCookie): Deleted. >+ * UIProcess/API/APIHTTPCookieStore.h: >+ * UIProcess/API/Cocoa/WKHTTPCookieStore.mm: >+ (-[WKHTTPCookieStore setCookie:completionHandler:]): >+ * UIProcess/WebCookieManagerProxy.cpp: >+ (WebKit::WebCookieManagerProxy::setCookies): >+ (WebKit::WebCookieManagerProxy::setCookie): Deleted. >+ * UIProcess/WebCookieManagerProxy.h: >+ > 2019-02-21 Chris Dumez <cdumez@apple.com> > > Unreviewed API test fix after r241855. >Index: Source/WebKit/NetworkProcess/Cookies/WebCookieManager.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/Cookies/WebCookieManager.cpp (revision 241753) >+++ Source/WebKit/NetworkProcess/Cookies/WebCookieManager.cpp (working copy) >@@ -110,10 +110,12 @@ void WebCookieManager::getCookies(PAL::S > m_process.send(Messages::WebCookieManagerProxy::DidGetCookies(cookies, callbackID), 0); > } > >-void WebCookieManager::setCookie(PAL::SessionID sessionID, const Cookie& cookie, CallbackID callbackID) >+void WebCookieManager::setCookie(PAL::SessionID sessionID, const Vector<Cookie>& cookies, CallbackID callbackID) > { >- if (auto* storageSession = m_process.storageSession(sessionID)) >- storageSession->setCookie(cookie); >+ if (auto* storageSession = m_process.storageSession(sessionID)) { >+ for (auto& cookie : cookies) >+ storageSession->setCookie(cookie); >+ } > > m_process.send(Messages::WebCookieManagerProxy::DidSetCookies(callbackID), 0); > } >Index: Source/WebKit/NetworkProcess/Cookies/WebCookieManager.h >=================================================================== >--- Source/WebKit/NetworkProcess/Cookies/WebCookieManager.h (revision 241753) >+++ Source/WebKit/NetworkProcess/Cookies/WebCookieManager.h (working copy) >@@ -74,7 +74,7 @@ private: > void deleteAllCookies(PAL::SessionID); > void deleteAllCookiesModifiedSince(PAL::SessionID, WallTime, CallbackID); > >- void setCookie(PAL::SessionID, const WebCore::Cookie&, CallbackID); >+ void setCookie(PAL::SessionID, const Vector<WebCore::Cookie>&, CallbackID); > void setCookies(PAL::SessionID, const Vector<WebCore::Cookie>&, const URL&, const URL& mainDocumentURL, CallbackID); > void getAllCookies(PAL::SessionID, CallbackID); > void getCookies(PAL::SessionID, const URL&, CallbackID); >Index: Source/WebKit/NetworkProcess/Cookies/WebCookieManager.messages.in >=================================================================== >--- Source/WebKit/NetworkProcess/Cookies/WebCookieManager.messages.in (revision 241753) >+++ Source/WebKit/NetworkProcess/Cookies/WebCookieManager.messages.in (working copy) >@@ -28,7 +28,7 @@ > void DeleteCookiesForHostname(PAL::SessionID sessionID, String hostname) > void DeleteAllCookies(PAL::SessionID sessionID) > >- void SetCookie(PAL::SessionID sessionID, struct WebCore::Cookie cookie, WebKit::CallbackID callbackID) >+ void SetCookie(PAL::SessionID sessionID, Vector<WebCore::Cookie> cookie, WebKit::CallbackID callbackID) > void SetCookies(PAL::SessionID sessionID, Vector<WebCore::Cookie> cookies, URL url, URL mainDocumentURL, WebKit::CallbackID callbackID) > void GetAllCookies(PAL::SessionID sessionID, WebKit::CallbackID callbackID) > void GetCookies(PAL::SessionID sessionID, URL url, WebKit::CallbackID callbackID) >Index: Source/WebKit/UIProcess/WebCookieManagerProxy.cpp >=================================================================== >--- Source/WebKit/UIProcess/WebCookieManagerProxy.cpp (revision 241753) >+++ Source/WebKit/UIProcess/WebCookieManagerProxy.cpp (working copy) >@@ -142,10 +142,10 @@ void WebCookieManagerProxy::deleteAllCoo > processPool()->sendToNetworkingProcess(Messages::WebCookieManager::DeleteAllCookiesModifiedSince(sessionID, time, callbackID)); > } > >-void WebCookieManagerProxy::setCookie(PAL::SessionID sessionID, const Cookie& cookie, Function<void (CallbackBase::Error)>&& callbackFunction) >+void WebCookieManagerProxy::setCookies(PAL::SessionID sessionID, const Vector<Cookie>& cookies, Function<void(CallbackBase::Error)>&& callbackFunction) > { > auto callbackID = m_callbacks.put(WTFMove(callbackFunction), processPool()->ensureNetworkProcess().throttler().backgroundActivityToken()); >- processPool()->sendToNetworkingProcess(Messages::WebCookieManager::SetCookie(sessionID, cookie, callbackID)); >+ processPool()->sendToNetworkingProcess(Messages::WebCookieManager::SetCookie(sessionID, cookies, callbackID)); > } > > void WebCookieManagerProxy::setCookies(PAL::SessionID sessionID, const Vector<Cookie>& cookies, const URL& url, const URL& mainDocumentURL, Function<void (CallbackBase::Error)>&& callbackFunction) >Index: Source/WebKit/UIProcess/WebCookieManagerProxy.h >=================================================================== >--- Source/WebKit/UIProcess/WebCookieManagerProxy.h (revision 241753) >+++ Source/WebKit/UIProcess/WebCookieManagerProxy.h (working copy) >@@ -71,7 +71,7 @@ public: > void deleteAllCookies(PAL::SessionID); > void deleteAllCookiesModifiedSince(PAL::SessionID, WallTime, Function<void (CallbackBase::Error)>&&); > >- void setCookie(PAL::SessionID, const WebCore::Cookie&, Function<void (CallbackBase::Error)>&&); >+ void setCookies(PAL::SessionID, const Vector<WebCore::Cookie>&, Function<void(CallbackBase::Error)>&&); > void setCookies(PAL::SessionID, const Vector<WebCore::Cookie>&, const URL&, const URL& mainDocumentURL, Function<void(CallbackBase::Error)>&&); > > void getAllCookies(PAL::SessionID, Function<void (const Vector<WebCore::Cookie>&, CallbackBase::Error)>&& completionHandler); >Index: Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp >=================================================================== >--- Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp (revision 241753) >+++ Source/WebKit/UIProcess/API/APIHTTPCookieStore.cpp (working copy) >@@ -74,24 +74,24 @@ void HTTPCookieStore::cookies(Completion > }); > } > >-void HTTPCookieStore::setCookie(const WebCore::Cookie& cookie, CompletionHandler<void()>&& completionHandler) >+void HTTPCookieStore::setCookies(const Vector<WebCore::Cookie>& cookies, CompletionHandler<void()>&& completionHandler) > { > auto* pool = m_owningDataStore->processPoolForCookieStorageOperations(); > if (!pool) { >- // FIXME: pendingCookies used for defaultSession because session cookies cannot be propagated to Network Process with uiProcessCookieStorageIdentifier. >- if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID() && !cookie.session) >- setCookieInDefaultUIProcessCookieStore(cookie); >- else >- m_owningDataStore->addPendingCookie(cookie); >+ for (auto& cookie : cookies) { >+ // FIXME: pendingCookies used for defaultSession because session cookies cannot be propagated to Network Process with uiProcessCookieStorageIdentifier. >+ if (m_owningDataStore->sessionID() == PAL::SessionID::defaultSessionID() && !cookie.session) >+ setCookieInDefaultUIProcessCookieStore(cookie); >+ else >+ m_owningDataStore->addPendingCookie(cookie); >+ } > >- callOnMainThread([completionHandler = WTFMove(completionHandler)] () mutable { >- completionHandler(); >- }); >+ callOnMainThread(WTFMove(completionHandler)); > return; > } > > auto* cookieManager = pool->supplement<WebKit::WebCookieManagerProxy>(); >- cookieManager->setCookie(m_owningDataStore->sessionID(), cookie, [pool = WTFMove(pool), completionHandler = WTFMove(completionHandler)] (CallbackBase::Error error) mutable { >+ cookieManager->setCookies(m_owningDataStore->sessionID(), cookies, [pool = WTFMove(pool), completionHandler = WTFMove(completionHandler)] (CallbackBase::Error error) mutable { > completionHandler(); > }); > } >Index: Source/WebKit/UIProcess/API/APIHTTPCookieStore.h >=================================================================== >--- Source/WebKit/UIProcess/API/APIHTTPCookieStore.h (revision 241753) >+++ Source/WebKit/UIProcess/API/APIHTTPCookieStore.h (working copy) >@@ -59,7 +59,7 @@ public: > virtual ~HTTPCookieStore(); > > void cookies(CompletionHandler<void(const Vector<WebCore::Cookie>&)>&&); >- void setCookie(const WebCore::Cookie&, CompletionHandler<void()>&&); >+ void setCookies(const Vector<WebCore::Cookie>&, CompletionHandler<void()>&&); > void deleteCookie(const WebCore::Cookie&, CompletionHandler<void()>&&); > > class Observer { >Index: Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm >=================================================================== >--- Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm (revision 241753) >+++ Source/WebKit/UIProcess/API/Cocoa/WKHTTPCookieStore.mm (working copy) >@@ -87,7 +87,7 @@ - (void)getAllCookies:(void (^)(NSArray< > > - (void)setCookie:(NSHTTPCookie *)cookie completionHandler:(void (^)(void))completionHandler > { >- _cookieStore->setCookie(cookie, [handler = adoptNS([completionHandler copy])]() { >+ _cookieStore->setCookies({ cookie }, [handler = adoptNS([completionHandler copy])]() { > auto rawHandler = (void (^)())handler.get(); > if (rawHandler) > rawHandler(); >Index: Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm >=================================================================== >--- Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm (revision 241753) >+++ Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm (working copy) >@@ -1333,6 +1333,7 @@ - (BOOL)_isSafeBrowsingEnabled > > - (void)_setSafeBrowsingEnabled:(BOOL)enabled > { >+ WTFLogAlways("SAFE BROWSING ENABLED"); > _preferences->setSafeBrowsingEnabled(enabled); > } > >Index: Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp >=================================================================== >--- Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp (revision 241753) >+++ Source/WebKit/UIProcess/API/glib/WebKitCookieManager.cpp (working copy) >@@ -267,7 +267,7 @@ void webkit_cookie_manager_add_cookie(We > // Cookies are read/written from/to the same SQLite database on disk regardless > // of the process we access them from, so just use the first process pool. > const auto& processPools = webkitWebsiteDataManagerGetProcessPools(manager->priv->dataManager); >- processPools[0]->supplement<WebCookieManagerProxy>()->setCookie(manager->priv->sessionID(), WebCore::Cookie(cookie), [task = WTFMove(task)](CallbackBase::Error error) { >+ processPools[0]->supplement<WebCookieManagerProxy>()->setCookies(manager->priv->sessionID(), { WebCore::Cookie(cookie) }, [task = WTFMove(task)](CallbackBase::Error error) { > if (error != CallbackBase::Error::None) { > // This can only happen in cases where the web process is not available, > // consider the operation "cancelled" from the point of view of the client. >Index: Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm >=================================================================== >--- Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm (revision 241753) >+++ Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm (working copy) >@@ -80,6 +80,7 @@ void WebPageProxy::beginSafeBrowsingChec > return listener.didReceiveSafeBrowsingResults({ }); > [context lookUpURL:url completionHandler:makeBlockPtr([listener = makeRef(listener), forMainFrameNavigation, url = url] (SSBLookupResult *result, NSError *error) mutable { > RunLoop::main().dispatch([listener = WTFMove(listener), result = retainPtr(result), error = retainPtr(error), forMainFrameNavigation, url = WTFMove(url)] { >+ WTFLogAlways("SAFE BROWSING FRAMEWORK COMPLETION HANDLER CALLED %@ %@", result.get(), error.get()); > if (error) { > listener->didReceiveSafeBrowsingResults({ }); > return;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
bfulgham
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 194861
:
362596
|
362599
|
362622
| 362637