This source file includes following definitions.
- create
- requestQuota
- requestPersistentQuota
#include "config.h"
#include "StorageQuotaClientImpl.h"
#include "WebFrameClient.h"
#include "WebFrameImpl.h"
#include "bindings/v8/ScriptPromise.h"
#include "bindings/v8/ScriptPromiseResolver.h"
#include "core/dom/DOMError.h"
#include "core/dom/Document.h"
#include "core/dom/ExceptionCode.h"
#include "core/dom/ExecutionContext.h"
#include "modules/quota/DeprecatedStorageQuotaCallbacksImpl.h"
#include "modules/quota/StorageErrorCallback.h"
#include "modules/quota/StorageQuotaCallback.h"
#include "modules/quota/StorageQuotaCallbacksImpl.h"
#include "modules/quota/StorageUsageCallback.h"
#include "public/platform/WebStorageQuotaType.h"
#include "wtf/Threading.h"
using namespace WebCore;
namespace blink {
PassOwnPtr<StorageQuotaClientImpl> StorageQuotaClientImpl::create()
{
return adoptPtr(new StorageQuotaClientImpl());
}
StorageQuotaClientImpl::~StorageQuotaClientImpl()
{
}
void StorageQuotaClientImpl::requestQuota(ExecutionContext* executionContext, WebStorageQuotaType storageType, unsigned long long newQuotaInBytes, PassOwnPtr<StorageQuotaCallback> successCallback, PassOwnPtr<StorageErrorCallback> errorCallback)
{
ASSERT(executionContext);
if (executionContext->isDocument()) {
Document* document = toDocument(executionContext);
WebFrameImpl* webFrame = WebFrameImpl::fromFrame(document->frame());
OwnPtr<StorageQuotaCallbacks> callbacks = DeprecatedStorageQuotaCallbacksImpl::create(successCallback, errorCallback);
webFrame->client()->requestStorageQuota(webFrame, storageType, newQuotaInBytes, callbacks.release());
} else {
executionContext->postTask(StorageErrorCallback::CallbackTask::create(errorCallback, NotSupportedError));
}
}
ScriptPromise StorageQuotaClientImpl::requestPersistentQuota(ExecutionContext* executionContext, unsigned long long newQuotaInBytes)
{
ASSERT(executionContext);
RefPtr<ScriptPromiseResolver> resolver = ScriptPromiseResolver::create(executionContext);
ScriptPromise promise = resolver->promise();
if (executionContext->isDocument()) {
Document* document = toDocument(executionContext);
WebFrameImpl* webFrame = WebFrameImpl::fromFrame(document->frame());
OwnPtr<StorageQuotaCallbacks> callbacks = StorageQuotaCallbacksImpl::create(resolver, executionContext);
webFrame->client()->requestStorageQuota(webFrame, WebStorageQuotaTypePersistent, newQuotaInBytes, callbacks.release());
} else {
resolver->reject(DOMError::create(NotSupportedError));
}
return promise;
}
StorageQuotaClientImpl::StorageQuotaClientImpl()
{
}
}