| Index: Source/modules/quota/StorageManager.cpp
|
| diff --git a/Source/modules/quota/StorageManager.cpp b/Source/modules/quota/StorageManager.cpp
|
| index 18e0d261e02207c1318059c63717edbf5a5ecf89..acfac05c47ffca0fc9b78493d760830087db08fe 100644
|
| --- a/Source/modules/quota/StorageManager.cpp
|
| +++ b/Source/modules/quota/StorageManager.cpp
|
| @@ -18,9 +18,9 @@ namespace blink {
|
|
|
| namespace {
|
|
|
| -class DurableStoragePermissionCallbacks final : public WebCallbacks<WebPermissionStatus*, void> {
|
| +class DurableStorageQueryCallbacks final : public WebCallbacks<WebPermissionStatus*, void> {
|
| public:
|
| - DurableStoragePermissionCallbacks(ScriptPromiseResolver* resolver)
|
| + DurableStorageQueryCallbacks(ScriptPromiseResolver* resolver)
|
| : m_resolver(resolver)
|
| {
|
| }
|
| @@ -51,6 +51,27 @@ private:
|
| Persistent<ScriptPromiseResolver> m_resolver;
|
| };
|
|
|
| +class DurableStorageRequestCallbacks final : public WebCallbacks<WebPermissionStatus*, void> {
|
| +public:
|
| + DurableStorageRequestCallbacks(ScriptPromiseResolver* resolver)
|
| + : m_resolver(resolver)
|
| + {
|
| + }
|
| +
|
| + void onSuccess(WebPermissionStatus* rawStatus) override
|
| + {
|
| + OwnPtr<WebPermissionStatus> status = adoptPtr(rawStatus);
|
| + m_resolver->resolve(*status == WebPermissionStatusGranted);
|
| + }
|
| + void onError() override
|
| + {
|
| + ASSERT_NOT_REACHED();
|
| + }
|
| +
|
| +private:
|
| + Persistent<ScriptPromiseResolver> m_resolver;
|
| +};
|
| +
|
| } // namespace
|
|
|
| ScriptPromise StorageManager::requestPersistent(ScriptState* scriptState)
|
| @@ -77,7 +98,7 @@ ScriptPromise StorageManager::requestPersistent(ScriptState* scriptState)
|
| resolver->reject(DOMException::create(InvalidStateError, "In its current state, the global scope can't request permissions."));
|
| return promise;
|
| }
|
| - permissionClient->requestPermission(WebPermissionTypeDurableStorage, KURL(KURL(), scriptState->executionContext()->securityOrigin()->toString()), new DurableStoragePermissionCallbacks(resolver));
|
| + permissionClient->requestPermission(WebPermissionTypeDurableStorage, KURL(KURL(), scriptState->executionContext()->securityOrigin()->toString()), new DurableStorageRequestCallbacks(resolver));
|
|
|
| return promise;
|
| }
|
| @@ -91,7 +112,7 @@ ScriptPromise StorageManager::persistentPermission(ScriptState* scriptState)
|
| resolver->reject(DOMException::create(InvalidStateError, "In its current state, the global scope can't query permissions."));
|
| return promise;
|
| }
|
| - permissionClient->queryPermission(WebPermissionTypeDurableStorage, KURL(KURL(), scriptState->executionContext()->securityOrigin()->toString()), new DurableStoragePermissionCallbacks(resolver));
|
| + permissionClient->queryPermission(WebPermissionTypeDurableStorage, KURL(KURL(), scriptState->executionContext()->securityOrigin()->toString()), new DurableStorageQueryCallbacks(resolver));
|
| return promise;
|
| }
|
|
|
|
|