summaryrefslogtreecommitdiff
path: root/Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp')
-rw-r--r--Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp51
1 files changed, 31 insertions, 20 deletions
diff --git a/Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp b/Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp
index 3998d21d3..4bf6773dc 100644
--- a/Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp
+++ b/Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp
@@ -33,6 +33,7 @@
#include <WebCore/CookieStorage.h>
#include <WebCore/NetworkStorageSession.h>
#include <WebCore/PlatformCookieJar.h>
+#include <WebCore/URL.h>
#include <wtf/MainThread.h>
#include <wtf/text/StringHash.h>
#include <wtf/text/WTFString.h>
@@ -41,8 +42,6 @@ using namespace WebCore;
namespace WebKit {
-static WebCookieManager* sharedCookieManager;
-
const char* WebCookieManager::supplementName()
{
return "WebCookieManager";
@@ -52,15 +51,13 @@ WebCookieManager::WebCookieManager(ChildProcess* process)
: m_process(process)
{
m_process->addMessageReceiver(Messages::WebCookieManager::messageReceiverName(), *this);
-
- ASSERT(!sharedCookieManager);
- sharedCookieManager = this;
}
-void WebCookieManager::getHostnamesWithCookies(uint64_t callbackID)
+void WebCookieManager::getHostnamesWithCookies(SessionID sessionID, uint64_t callbackID)
{
HashSet<String> hostnames;
- WebCore::getHostnamesWithCookies(NetworkStorageSession::defaultStorageSession(), hostnames);
+ if (auto* storageSession = NetworkStorageSession::storageSession(sessionID))
+ WebCore::getHostnamesWithCookies(*storageSession, hostnames);
Vector<String> hostnameList;
copyToVector(hostnames, hostnameList);
@@ -68,35 +65,49 @@ void WebCookieManager::getHostnamesWithCookies(uint64_t callbackID)
m_process->send(Messages::WebCookieManagerProxy::DidGetHostnamesWithCookies(hostnameList, callbackID), 0);
}
-void WebCookieManager::deleteCookiesForHostname(const String& hostname)
+void WebCookieManager::deleteCookiesForHostname(SessionID sessionID, const String& hostname)
+{
+ if (auto* storageSession = NetworkStorageSession::storageSession(sessionID))
+ WebCore::deleteCookiesForHostnames(*storageSession, { hostname });
+}
+
+void WebCookieManager::deleteAllCookies(SessionID sessionID)
{
- WebCore::deleteCookiesForHostname(NetworkStorageSession::defaultStorageSession(), hostname);
+ if (auto* storageSession = NetworkStorageSession::storageSession(sessionID))
+ WebCore::deleteAllCookies(*storageSession);
}
-void WebCookieManager::deleteAllCookies()
+void WebCookieManager::deleteAllCookiesModifiedSince(SessionID sessionID, std::chrono::system_clock::time_point time)
{
- WebCore::deleteAllCookies(NetworkStorageSession::defaultStorageSession());
+ if (auto* storageSession = NetworkStorageSession::storageSession(sessionID))
+ WebCore::deleteAllCookiesModifiedSince(*storageSession, time);
}
-void WebCookieManager::startObservingCookieChanges()
+void WebCookieManager::addCookie(SessionID sessionID, const Cookie& cookie, const String& hostname)
{
- WebCore::startObservingCookieChanges(cookiesDidChange);
+ if (auto* storageSession = NetworkStorageSession::storageSession(sessionID))
+ WebCore::addCookie(*storageSession, URL(URL(), hostname), cookie);
}
-void WebCookieManager::stopObservingCookieChanges()
+void WebCookieManager::notifyCookiesDidChange(SessionID sessionID)
{
- WebCore::stopObservingCookieChanges();
+ ASSERT(RunLoop::isMain());
+ m_process->send(Messages::WebCookieManagerProxy::CookiesDidChange(sessionID), 0);
}
-void WebCookieManager::cookiesDidChange()
+void WebCookieManager::startObservingCookieChanges(SessionID sessionID)
{
- sharedCookieManager->dispatchCookiesDidChange();
+ if (auto* storageSession = NetworkStorageSession::storageSession(sessionID)) {
+ WebCore::startObservingCookieChanges(*storageSession, [this, sessionID] {
+ notifyCookiesDidChange(sessionID);
+ });
+ }
}
-void WebCookieManager::dispatchCookiesDidChange()
+void WebCookieManager::stopObservingCookieChanges(SessionID sessionID)
{
- ASSERT(isMainThread());
- m_process->send(Messages::WebCookieManagerProxy::CookiesDidChange(), 0);
+ if (auto* storageSession = NetworkStorageSession::storageSession(sessionID))
+ WebCore::stopObservingCookieChanges(*storageSession);
}
void WebCookieManager::setHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy policy)