WebKeyValueStorageManager.cpp [plain text]
#include "config.h"
#include "WebKeyValueStorageManager.h"
#include "SecurityOriginData.h"
#include "WebContext.h"
#include "WebSecurityOrigin.h"
using namespace WebCore;
namespace WebKit {
const char* WebKeyValueStorageManager::supplementName()
{
return "WebKeyValueStorageManager";
}
PassRefPtr<WebKeyValueStorageManager> WebKeyValueStorageManager::create(WebContext* context)
{
return adoptRef(new WebKeyValueStorageManager(context));
}
WebKeyValueStorageManager::WebKeyValueStorageManager(WebContext* context)
: WebContextSupplement(context)
{
}
WebKeyValueStorageManager::~WebKeyValueStorageManager()
{
}
void WebKeyValueStorageManager::refWebContextSupplement()
{
APIObject::ref();
}
void WebKeyValueStorageManager::derefWebContextSupplement()
{
APIObject::deref();
}
static void didGetKeyValueStorageOrigins(const Vector<RefPtr<WebCore::SecurityOrigin>>& securityOrigins, void* context)
{
RefPtr<ArrayCallback> callback = adoptRef(static_cast<ArrayCallback*>(context));
Vector<RefPtr<APIObject>> webSecurityOrigins;
webSecurityOrigins.reserveInitialCapacity(securityOrigins.size());
for (unsigned i = 0; i < securityOrigins.size(); ++i)
webSecurityOrigins.uncheckedAppend(WebSecurityOrigin::create(securityOrigins[i]));
callback->performCallbackWithReturnValue(ImmutableArray::adopt(webSecurityOrigins).get());
}
void WebKeyValueStorageManager::getKeyValueStorageOrigins(PassRefPtr<ArrayCallback> prpCallback)
{
context()->storageManager().getOrigins(RunLoop::main(), prpCallback.leakRef(), didGetKeyValueStorageOrigins);
}
void WebKeyValueStorageManager::deleteEntriesForOrigin(WebSecurityOrigin* origin)
{
context()->storageManager().deleteEntriesForOrigin(origin->securityOrigin());
}
void WebKeyValueStorageManager::deleteAllEntries()
{
context()->storageManager().deleteAllEntries();
}
}