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

Side by Side Diff: third_party/WebKit/Source/modules/permissions/Permissions.cpp

Issue 2050123002: Remove OwnPtr from Blink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: First attempt to land. Created 4 years, 6 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/permissions/Permissions.h" 5 #include "modules/permissions/Permissions.h"
6 6
7 #include "bindings/core/v8/Dictionary.h" 7 #include "bindings/core/v8/Dictionary.h"
8 #include "bindings/core/v8/Nullable.h" 8 #include "bindings/core/v8/Nullable.h"
9 #include "bindings/core/v8/ScriptPromise.h" 9 #include "bindings/core/v8/ScriptPromise.h"
10 #include "bindings/core/v8/ScriptPromiseResolver.h" 10 #include "bindings/core/v8/ScriptPromiseResolver.h"
11 #include "bindings/modules/v8/V8MidiPermissionDescriptor.h" 11 #include "bindings/modules/v8/V8MidiPermissionDescriptor.h"
12 #include "bindings/modules/v8/V8PermissionDescriptor.h" 12 #include "bindings/modules/v8/V8PermissionDescriptor.h"
13 #include "bindings/modules/v8/V8PushPermissionDescriptor.h" 13 #include "bindings/modules/v8/V8PushPermissionDescriptor.h"
14 #include "core/dom/DOMException.h" 14 #include "core/dom/DOMException.h"
15 #include "core/dom/Document.h" 15 #include "core/dom/Document.h"
16 #include "core/dom/ExceptionCode.h" 16 #include "core/dom/ExceptionCode.h"
17 #include "modules/permissions/PermissionCallback.h" 17 #include "modules/permissions/PermissionCallback.h"
18 #include "modules/permissions/PermissionController.h" 18 #include "modules/permissions/PermissionController.h"
19 #include "modules/permissions/PermissionDescriptor.h" 19 #include "modules/permissions/PermissionDescriptor.h"
20 #include "modules/permissions/PermissionStatus.h" 20 #include "modules/permissions/PermissionStatus.h"
21 #include "modules/permissions/PermissionsCallback.h" 21 #include "modules/permissions/PermissionsCallback.h"
22 #include "platform/Logging.h" 22 #include "platform/Logging.h"
23 #include "public/platform/Platform.h" 23 #include "public/platform/Platform.h"
24 #include "public/platform/modules/permissions/WebPermissionClient.h" 24 #include "public/platform/modules/permissions/WebPermissionClient.h"
25 #include "wtf/NotFound.h" 25 #include "wtf/NotFound.h"
26 #include "wtf/PtrUtil.h"
26 #include "wtf/Vector.h" 27 #include "wtf/Vector.h"
28 #include <memory>
27 29
28 namespace blink { 30 namespace blink {
29 31
30 namespace { 32 namespace {
31 33
32 WebPermissionType getPermissionType(ScriptState* scriptState, const Dictionary& rawPermission, const PermissionDescriptor& permission, ExceptionState& exception State) 34 WebPermissionType getPermissionType(ScriptState* scriptState, const Dictionary& rawPermission, const PermissionDescriptor& permission, ExceptionState& exception State)
33 { 35 {
34 const String& name = permission.name(); 36 const String& name = permission.name();
35 if (name == "geolocation") 37 if (name == "geolocation")
36 return WebPermissionTypeGeolocation; 38 return WebPermissionTypeGeolocation;
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 return promise; 162 return promise;
161 } 163 }
162 164
163 ScriptPromise Permissions::requestAll(ScriptState* scriptState, const Vector<Dic tionary>& rawPermissions) 165 ScriptPromise Permissions::requestAll(ScriptState* scriptState, const Vector<Dic tionary>& rawPermissions)
164 { 166 {
165 WebPermissionClient* client = getClient(scriptState->getExecutionContext()); 167 WebPermissionClient* client = getClient(scriptState->getExecutionContext());
166 if (!client) 168 if (!client)
167 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(InvalidStateError, "In its current state, the global scope can't request permissions.")); 169 return ScriptPromise::rejectWithDOMException(scriptState, DOMException:: create(InvalidStateError, "In its current state, the global scope can't request permissions."));
168 170
169 ExceptionState exceptionState(ExceptionState::GetterContext, "request", "Pe rmissions", scriptState->context()->Global(), scriptState->isolate()); 171 ExceptionState exceptionState(ExceptionState::GetterContext, "request", "Pe rmissions", scriptState->context()->Global(), scriptState->isolate());
170 OwnPtr<Vector<WebPermissionType>> internalPermissions = adoptPtr(new Vector< WebPermissionType>()); 172 std::unique_ptr<Vector<WebPermissionType>> internalPermissions = wrapUnique( new Vector<WebPermissionType>());
171 OwnPtr<Vector<int>> callerIndexToInternalIndex = adoptPtr(new Vector<int>(ra wPermissions.size())); 173 std::unique_ptr<Vector<int>> callerIndexToInternalIndex = wrapUnique(new Vec tor<int>(rawPermissions.size()));
172 for (size_t i = 0; i < rawPermissions.size(); ++i) { 174 for (size_t i = 0; i < rawPermissions.size(); ++i) {
173 const Dictionary& rawPermission = rawPermissions[i]; 175 const Dictionary& rawPermission = rawPermissions[i];
174 176
175 Nullable<WebPermissionType> type = parsePermission(scriptState, rawPermi ssion, exceptionState); 177 Nullable<WebPermissionType> type = parsePermission(scriptState, rawPermi ssion, exceptionState);
176 if (exceptionState.hadException()) 178 if (exceptionState.hadException())
177 return exceptionState.reject(scriptState); 179 return exceptionState.reject(scriptState);
178 180
179 // Only append permissions to the vector that is passed to the client if it is not already 181 // Only append permissions to the vector that is passed to the client if it is not already
180 // in the vector (i.e. do not duplicate permisison types). 182 // in the vector (i.e. do not duplicate permisison types).
181 int internalIndex; 183 int internalIndex;
(...skipping 10 matching lines...) Expand all
192 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ; 194 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState) ;
193 ScriptPromise promise = resolver->promise(); 195 ScriptPromise promise = resolver->promise();
194 196
195 WebVector<WebPermissionType> internalWebPermissions = *internalPermissions; 197 WebVector<WebPermissionType> internalWebPermissions = *internalPermissions;
196 client->requestPermissions(internalWebPermissions, KURL(KURL(), scriptState- >getExecutionContext()->getSecurityOrigin()->toString()), 198 client->requestPermissions(internalWebPermissions, KURL(KURL(), scriptState- >getExecutionContext()->getSecurityOrigin()->toString()),
197 new PermissionsCallback(resolver, std::move(internalPermissions), std::m ove(callerIndexToInternalIndex))); 199 new PermissionsCallback(resolver, std::move(internalPermissions), std::m ove(callerIndexToInternalIndex)));
198 return promise; 200 return promise;
199 } 201 }
200 202
201 } // namespace blink 203 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698