Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: third_party/WebKit/Source/modules/quota/StorageManager.cpp

Issue 2255933002: Add PermissionDescriptor to the permissions Mojo interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@no_notification_dispatcher
Patch Set: Demonstrate PermissionDescriptor extensibility with MIDI. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698