OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "modules/quota/StorageManager.h" | 5 #include "modules/quota/StorageManager.h" |
6 | 6 |
7 #include "bindings/core/v8/ScriptPromiseResolver.h" | 7 #include "bindings/core/v8/ScriptPromiseResolver.h" |
8 #include "bindings/modules/v8/V8StorageEstimate.h" | 8 #include "bindings/modules/v8/V8StorageEstimate.h" |
9 #include "core/dom/DOMException.h" | 9 #include "core/dom/DOMException.h" |
10 #include "core/dom/Document.h" | 10 #include "core/dom/Document.h" |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 if (!executionContext->isSecureContext(errorMessage)) { | 74 if (!executionContext->isSecureContext(errorMessage)) { |
75 resolver->reject(DOMException::create(SecurityError, errorMessage)); | 75 resolver->reject(DOMException::create(SecurityError, errorMessage)); |
76 return promise; | 76 return promise; |
77 } | 77 } |
78 ASSERT(executionContext->isDocument()); | 78 ASSERT(executionContext->isDocument()); |
79 PermissionService* permissionService = getPermissionService(scriptState->get
ExecutionContext()); | 79 PermissionService* permissionService = getPermissionService(scriptState->get
ExecutionContext()); |
80 if (!permissionService) { | 80 if (!permissionService) { |
81 resolver->reject(DOMException::create(InvalidStateError, "In its current
state, the global scope can't request permissions.")); | 81 resolver->reject(DOMException::create(InvalidStateError, "In its current
state, the global scope can't request permissions.")); |
82 return promise; | 82 return promise; |
83 } | 83 } |
84 permissionService->RequestPermission(PermissionName::DURABLE_STORAGE, script
State->getExecutionContext()->getSecurityOrigin(), UserGestureIndicator::process
ingUserGesture(), convertToBaseCallback(WTF::bind(&StorageManager::permissionReq
uestComplete, wrapPersistent(this), wrapPersistent(resolver)))); | 84 auto descriptor = mojom::blink::PermissionDescriptor::New(); |
| 85 descriptor->name = PermissionName::DURABLE_STORAGE; |
| 86 permissionService->RequestPermission(std::move(descriptor), scriptState->get
ExecutionContext()->getSecurityOrigin(), UserGestureIndicator::processingUserGes
ture(), convertToBaseCallback(WTF::bind(&StorageManager::permissionRequestComple
te, wrapPersistent(this), wrapPersistent(resolver)))); |
85 | 87 |
86 return promise; | 88 return promise; |
87 } | 89 } |
88 | 90 |
89 ScriptPromise StorageManager::persisted(ScriptState* scriptState) | 91 ScriptPromise StorageManager::persisted(ScriptState* scriptState) |
90 { | 92 { |
91 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState)
; | 93 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState)
; |
92 ScriptPromise promise = resolver->promise(); | 94 ScriptPromise promise = resolver->promise(); |
93 PermissionService* permissionService = getPermissionService(scriptState->get
ExecutionContext()); | 95 PermissionService* permissionService = getPermissionService(scriptState->get
ExecutionContext()); |
94 if (!permissionService) { | 96 if (!permissionService) { |
95 resolver->reject(DOMException::create(InvalidStateError, "In its current
state, the global scope can't query permissions.")); | 97 resolver->reject(DOMException::create(InvalidStateError, "In its current
state, the global scope can't query permissions.")); |
96 return promise; | 98 return promise; |
97 } | 99 } |
98 permissionService->HasPermission(PermissionName::DURABLE_STORAGE, scriptStat
e->getExecutionContext()->getSecurityOrigin(), convertToBaseCallback(WTF::bind(&
StorageManager::permissionRequestComplete, wrapPersistent(this), wrapPersistent(
resolver)))); | 100 auto descriptor = mojom::blink::PermissionDescriptor::New(); |
| 101 descriptor->name = PermissionName::DURABLE_STORAGE; |
| 102 permissionService->HasPermission(std::move(descriptor), scriptState->getExec
utionContext()->getSecurityOrigin(), convertToBaseCallback(WTF::bind(&StorageMan
ager::permissionRequestComplete, wrapPersistent(this), wrapPersistent(resolver))
)); |
99 return promise; | 103 return promise; |
100 } | 104 } |
101 | 105 |
102 ScriptPromise StorageManager::estimate(ScriptState* scriptState) | 106 ScriptPromise StorageManager::estimate(ScriptState* scriptState) |
103 { | 107 { |
104 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState)
; | 108 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState)
; |
105 ScriptPromise promise = resolver->promise(); | 109 ScriptPromise promise = resolver->promise(); |
106 ExecutionContext* executionContext = scriptState->getExecutionContext(); | 110 ExecutionContext* executionContext = scriptState->getExecutionContext(); |
107 SecurityOrigin* securityOrigin = executionContext->getSecurityOrigin(); | 111 SecurityOrigin* securityOrigin = executionContext->getSecurityOrigin(); |
108 if (securityOrigin->isUnique()) { | 112 if (securityOrigin->isUnique()) { |
(...skipping 29 matching lines...) Expand all Loading... |
138 } | 142 } |
139 | 143 |
140 void StorageManager::permissionRequestComplete(ScriptPromiseResolver* resolver,
PermissionStatus status) | 144 void StorageManager::permissionRequestComplete(ScriptPromiseResolver* resolver,
PermissionStatus status) |
141 { | 145 { |
142 if (!resolver->getExecutionContext() || resolver->getExecutionContext()->act
iveDOMObjectsAreStopped()) | 146 if (!resolver->getExecutionContext() || resolver->getExecutionContext()->act
iveDOMObjectsAreStopped()) |
143 return; | 147 return; |
144 resolver->resolve(status == PermissionStatus::GRANTED); | 148 resolver->resolve(status == PermissionStatus::GRANTED); |
145 } | 149 } |
146 | 150 |
147 } // namespace blink | 151 } // namespace blink |
OLD | NEW |