WebKit Bugzilla
Attachment 346310 Details for
Bug 188242
: httpCookieStore.getAllCookies() does not always call completion block
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-188242-20180801160349.patch (text/plain), 8.50 KB, created by
Sihui Liu
on 2018-08-01 16:03:49 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Sihui Liu
Created:
2018-08-01 16:03:49 PDT
Size:
8.50 KB
patch
obsolete
>Subversion Revision: 234477 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index aaefbdf1b89869ddf72b06ee8e1e383a1bee1c9b..1254a2e3c943cc9e03ac38b1b429f6fa2f644173 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,24 @@ >+2018-08-01 Sihui Liu <sihui_liu@apple.com> >+ >+ httpCookieStore.getAllCookies() does not always call completion block >+ https://bugs.webkit.org/show_bug.cgi?id=188242 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Take background assertion for network process to keep it alive during cookieStore API calls. >+ >+ * UIProcess/GenericCallback.h: >+ * UIProcess/WebCookieManagerProxy.cpp: >+ (WebKit::WebCookieManagerProxy::getHostnamesWithCookies): >+ (WebKit::WebCookieManagerProxy::deleteCookie): >+ (WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedSince): >+ (WebKit::WebCookieManagerProxy::setCookie): >+ (WebKit::WebCookieManagerProxy::setCookies): >+ (WebKit::WebCookieManagerProxy::getAllCookies): >+ (WebKit::WebCookieManagerProxy::getCookies): >+ (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): >+ (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy): >+ > 2018-08-01 Alex Christensen <achristensen@webkit.org> > > Allow WebFramePolicyListenerProxy to be used multiple times >diff --git a/Source/WebKit/UIProcess/GenericCallback.h b/Source/WebKit/UIProcess/GenericCallback.h >index f90533e3f4dcb9fcf2b942b7b4fec11d201e2353..5e712c370186f331267b6e675e585f37712a05da 100644 >--- a/Source/WebKit/UIProcess/GenericCallback.h >+++ b/Source/WebKit/UIProcess/GenericCallback.h >@@ -195,7 +195,6 @@ public: > return put(WTFMove(callback)); > } > >- // FIXME: <webkit.org/b/174007> WebCookieManagerProxy should pass in BackgroundActivityToken > template<typename... T> > CallbackID put(Function<void(T...)>&& function) > { >diff --git a/Source/WebKit/UIProcess/WebCookieManagerProxy.cpp b/Source/WebKit/UIProcess/WebCookieManagerProxy.cpp >index c94efd8f69c52fd320cc22a6c5095045f124d938..a59d0d9b47e048fff5f328c28571d0322945d36a 100644 >--- a/Source/WebKit/UIProcess/WebCookieManagerProxy.cpp >+++ b/Source/WebKit/UIProcess/WebCookieManagerProxy.cpp >@@ -109,8 +109,9 @@ void WebCookieManagerProxy::derefWebContextSupplement() > > void WebCookieManagerProxy::getHostnamesWithCookies(PAL::SessionID sessionID, Function<void (API::Array*, CallbackBase::Error)>&& callbackFunction) > { >- auto callbackID = m_callbacks.put(WTFMove(callbackFunction)); >- processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::GetHostnamesWithCookies(sessionID, callbackID)); >+ processPool()->ensureNetworkProcess(); >+ auto callbackID = m_callbacks.put(WTFMove(callbackFunction), processPool()->networkProcess()->throttler().backgroundActivityToken()); >+ processPool()->sendToNetworkingProcess(Messages::WebCookieManager::GetHostnamesWithCookies(sessionID, callbackID)); > } > > void WebCookieManagerProxy::didGetHostnamesWithCookies(const Vector<String>& hostnames, WebKit::CallbackID callbackID) >@@ -136,38 +137,44 @@ void WebCookieManagerProxy::deleteAllCookies(PAL::SessionID sessionID) > > void WebCookieManagerProxy::deleteCookie(PAL::SessionID sessionID, const Cookie& cookie, Function<void (CallbackBase::Error)>&& callbackFunction) > { >- auto callbackID = m_callbacks.put(WTFMove(callbackFunction)); >- processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteCookie(sessionID, cookie, callbackID)); >+ processPool()->ensureNetworkProcess(); >+ auto callbackID = m_callbacks.put(WTFMove(callbackFunction), processPool()->networkProcess()->throttler().backgroundActivityToken()); >+ processPool()->sendToNetworkingProcess(Messages::WebCookieManager::DeleteCookie(sessionID, cookie, callbackID)); > } > > void WebCookieManagerProxy::deleteAllCookiesModifiedSince(PAL::SessionID sessionID, WallTime time, Function<void (CallbackBase::Error)>&& callbackFunction) > { >- auto callbackID = m_callbacks.put(WTFMove(callbackFunction)); >- processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteAllCookiesModifiedSince(sessionID, time, callbackID)); >+ processPool()->ensureNetworkProcess(); >+ auto callbackID = m_callbacks.put(WTFMove(callbackFunction), processPool()->networkProcess()->throttler().backgroundActivityToken()); >+ processPool()->sendToNetworkingProcess(Messages::WebCookieManager::DeleteAllCookiesModifiedSince(sessionID, time, callbackID)); > } > > void WebCookieManagerProxy::setCookie(PAL::SessionID sessionID, const Cookie& cookie, Function<void (CallbackBase::Error)>&& callbackFunction) > { >- auto callbackID = m_callbacks.put(WTFMove(callbackFunction)); >- processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::SetCookie(sessionID, cookie, callbackID)); >+ processPool()->ensureNetworkProcess(); >+ auto callbackID = m_callbacks.put(WTFMove(callbackFunction), processPool()->networkProcess()->throttler().backgroundActivityToken()); >+ processPool()->sendToNetworkingProcess(Messages::WebCookieManager::SetCookie(sessionID, cookie, callbackID)); > } > > void WebCookieManagerProxy::setCookies(PAL::SessionID sessionID, const Vector<Cookie>& cookies, const URL& url, const URL& mainDocumentURL, Function<void (CallbackBase::Error)>&& callbackFunction) > { >- auto callbackID = m_callbacks.put(WTFMove(callbackFunction)); >- processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::SetCookies(sessionID, cookies, url, mainDocumentURL, callbackID)); >+ processPool()->ensureNetworkProcess(); >+ auto callbackID = m_callbacks.put(WTFMove(callbackFunction), processPool()->networkProcess()->throttler().backgroundActivityToken()); >+ processPool()->sendToNetworkingProcess(Messages::WebCookieManager::SetCookies(sessionID, cookies, url, mainDocumentURL, callbackID)); > } > > void WebCookieManagerProxy::getAllCookies(PAL::SessionID sessionID, Function<void (const Vector<Cookie>&, CallbackBase::Error)>&& callbackFunction) > { >- auto callbackID = m_callbacks.put(WTFMove(callbackFunction)); >- processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::GetAllCookies(sessionID, callbackID)); >+ processPool()->ensureNetworkProcess(); >+ auto callbackID = m_callbacks.put(WTFMove(callbackFunction), processPool()->networkProcess()->throttler().backgroundActivityToken()); >+ processPool()->sendToNetworkingProcess(Messages::WebCookieManager::GetAllCookies(sessionID, callbackID)); > } > > void WebCookieManagerProxy::getCookies(PAL::SessionID sessionID, const URL& url, Function<void (const Vector<Cookie>&, CallbackBase::Error)>&& callbackFunction) > { >- auto callbackID = m_callbacks.put(WTFMove(callbackFunction)); >- processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::GetCookies(sessionID, url, callbackID)); >+ processPool()->ensureNetworkProcess(); >+ auto callbackID = m_callbacks.put(WTFMove(callbackFunction), processPool()->networkProcess()->throttler().backgroundActivityToken()); >+ processPool()->sendToNetworkingProcess(Messages::WebCookieManager::GetCookies(sessionID, url, callbackID)); > } > > void WebCookieManagerProxy::didSetCookies(WebKit::CallbackID callbackID) >@@ -252,14 +259,16 @@ void WebCookieManagerProxy::setHTTPCookieAcceptPolicy(PAL::SessionID, HTTPCookie > processPool()->setInitialHTTPCookieAcceptPolicy(policy); > #endif > >- auto callbackID = m_callbacks.put(WTFMove(callbackFunction)); >+ processPool()->ensureNetworkProcess(); >+ auto callbackID = m_callbacks.put(WTFMove(callbackFunction), processPool()->networkProcess()->throttler().backgroundActivityToken()); > processPool()->sendToNetworkingProcess(Messages::WebCookieManager::SetHTTPCookieAcceptPolicy(policy, OptionalCallbackID(callbackID))); > } > > void WebCookieManagerProxy::getHTTPCookieAcceptPolicy(PAL::SessionID, Function<void (HTTPCookieAcceptPolicy, CallbackBase::Error)>&& callbackFunction) > { >- auto callbackID = m_callbacks.put(WTFMove(callbackFunction)); >- processPool()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::GetHTTPCookieAcceptPolicy(callbackID)); >+ processPool()->ensureNetworkProcess(); >+ auto callbackID = m_callbacks.put(WTFMove(callbackFunction), processPool()->networkProcess()->throttler().backgroundActivityToken()); >+ processPool()->sendToNetworkingProcess(Messages::WebCookieManager::GetHTTPCookieAcceptPolicy(callbackID)); > } > > void WebCookieManagerProxy::didGetHTTPCookieAcceptPolicy(uint32_t policy, WebKit::CallbackID callbackID)
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
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 188242
:
346310
|
346359
|
346419