WebCookieManager.cpp [plain text]
#include "config.h"
#include "WebCookieManager.h"
#include "ChildProcess.h"
#include "WebCookieManagerMessages.h"
#include "WebCookieManagerProxyMessages.h"
#include "WebCoreArgumentCoders.h"
#include <WebCore/CookieStorage.h>
#include <WebCore/NetworkStorageSession.h>
#include <WebCore/PlatformCookieJar.h>
#include <wtf/MainThread.h>
#include <wtf/text/StringHash.h>
#include <wtf/text/WTFString.h>
using namespace WebCore;
namespace WebKit {
static WebCookieManager* sharedCookieManager;
const char* WebCookieManager::supplementName()
{
return "WebCookieManager";
}
WebCookieManager::WebCookieManager(ChildProcess* process)
: m_process(process)
{
m_process->addMessageReceiver(Messages::WebCookieManager::messageReceiverName(), *this);
ASSERT(!sharedCookieManager);
sharedCookieManager = this;
}
void WebCookieManager::getHostnamesWithCookies(uint64_t callbackID)
{
HashSet<String> hostnames;
WebCore::getHostnamesWithCookies(NetworkStorageSession::defaultStorageSession(), hostnames);
Vector<String> hostnameList;
copyToVector(hostnames, hostnameList);
m_process->send(Messages::WebCookieManagerProxy::DidGetHostnamesWithCookies(hostnameList, callbackID), 0);
}
void WebCookieManager::deleteCookiesForHostname(const String& hostname)
{
WebCore::deleteCookiesForHostname(NetworkStorageSession::defaultStorageSession(), hostname);
}
void WebCookieManager::deleteAllCookies()
{
WebCore::deleteAllCookies(NetworkStorageSession::defaultStorageSession());
}
void WebCookieManager::deleteAllCookiesModifiedAfterDate(double date)
{
WebCore::deleteAllCookiesModifiedAfterDate(NetworkStorageSession::defaultStorageSession(), date);
}
void WebCookieManager::startObservingCookieChanges()
{
WebCore::startObservingCookieChanges(cookiesDidChange);
}
void WebCookieManager::stopObservingCookieChanges()
{
WebCore::stopObservingCookieChanges();
}
void WebCookieManager::cookiesDidChange()
{
sharedCookieManager->dispatchCookiesDidChange();
}
void WebCookieManager::dispatchCookiesDidChange()
{
ASSERT(RunLoop::isMain());
m_process->send(Messages::WebCookieManagerProxy::CookiesDidChange(), 0);
}
void WebCookieManager::setHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy policy)
{
platformSetHTTPCookieAcceptPolicy(policy);
}
void WebCookieManager::getHTTPCookieAcceptPolicy(uint64_t callbackID)
{
m_process->send(Messages::WebCookieManagerProxy::DidGetHTTPCookieAcceptPolicy(platformGetHTTPCookieAcceptPolicy(), callbackID), 0);
}
}