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

Side by Side Diff: content/browser/permissions/permission_service_impl.cc

Issue 2080083002: Revert of Deletes mojo::Callback (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 "content/browser/permissions/permission_service_impl.h" 5 #include "content/browser/permissions/permission_service_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 return PermissionType::BACKGROUND_SYNC; 43 return PermissionType::BACKGROUND_SYNC;
44 } 44 }
45 45
46 NOTREACHED(); 46 NOTREACHED();
47 return PermissionType::NUM; 47 return PermissionType::NUM;
48 } 48 }
49 49
50 // This function allows the usage of the the multiple request map 50 // This function allows the usage of the the multiple request map
51 // with single requests. 51 // with single requests.
52 void PermissionRequestResponseCallbackWrapper( 52 void PermissionRequestResponseCallbackWrapper(
53 const base::Callback<void(PermissionStatus)>& callback, 53 const mojo::Callback<void(PermissionStatus)>& callback,
54 mojo::Array<PermissionStatus> vector) { 54 mojo::Array<PermissionStatus> vector) {
55 DCHECK_EQ(vector.size(), 1ul); 55 DCHECK_EQ(vector.size(), 1ul);
56 callback.Run(vector[0]); 56 callback.Run(vector[0]);
57 } 57 }
58 58
59 } // anonymous namespace 59 } // anonymous namespace
60 60
61 PermissionServiceImpl::PendingRequest::PendingRequest( 61 PermissionServiceImpl::PendingRequest::PendingRequest(
62 const RequestPermissionsCallback& callback, 62 const PermissionsStatusCallback& callback,
63 int request_count) 63 int request_count)
64 : callback(callback), 64 : callback(callback),
65 request_count(request_count) { 65 request_count(request_count) {
66 } 66 }
67 67
68 PermissionServiceImpl::PendingRequest::~PendingRequest() { 68 PermissionServiceImpl::PendingRequest::~PendingRequest() {
69 if (callback.is_null()) 69 if (callback.is_null())
70 return; 70 return;
71 71
72 mojo::Array<PermissionStatus> result = 72 mojo::Array<PermissionStatus> result =
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 int pending_request_id, 155 int pending_request_id,
156 PermissionStatus status) { 156 PermissionStatus status) {
157 OnRequestPermissionsResponse(pending_request_id, 157 OnRequestPermissionsResponse(pending_request_id,
158 std::vector<PermissionStatus>(1, status)); 158 std::vector<PermissionStatus>(1, status));
159 } 159 }
160 160
161 void PermissionServiceImpl::RequestPermissions( 161 void PermissionServiceImpl::RequestPermissions(
162 mojo::Array<PermissionName> permissions, 162 mojo::Array<PermissionName> permissions,
163 const mojo::String& origin, 163 const mojo::String& origin,
164 bool user_gesture, 164 bool user_gesture,
165 const RequestPermissionsCallback& callback) { 165 const PermissionsStatusCallback& callback) {
166 if (permissions.is_null()) { 166 if (permissions.is_null()) {
167 callback.Run(mojo::Array<PermissionStatus>()); 167 callback.Run(mojo::Array<PermissionStatus>());
168 return; 168 return;
169 } 169 }
170 170
171 // This condition is valid if the call is coming from a ChildThread instead of 171 // This condition is valid if the call is coming from a ChildThread instead of
172 // a RenderFrame. Some consumers of the service run in Workers and some in 172 // a RenderFrame. Some consumers of the service run in Workers and some in
173 // Frames. In the context of a Worker, it is not possible to show a 173 // Frames. In the context of a Worker, it is not possible to show a
174 // permission prompt because there is no tab. In the context of a Frame, we 174 // permission prompt because there is no tab. In the context of a Frame, we
175 // can. Even if the call comes from a context where it is not possible to show 175 // can. Even if the call comes from a context where it is not possible to show
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 pending_request_id); 208 pending_request_id);
209 if (!pending_request) 209 if (!pending_request)
210 return; 210 return;
211 pending_request->id = id; 211 pending_request->id = id;
212 } 212 }
213 213
214 void PermissionServiceImpl::OnRequestPermissionsResponse( 214 void PermissionServiceImpl::OnRequestPermissionsResponse(
215 int pending_request_id, 215 int pending_request_id,
216 const std::vector<PermissionStatus>& result) { 216 const std::vector<PermissionStatus>& result) {
217 PendingRequest* request = pending_requests_.Lookup(pending_request_id); 217 PendingRequest* request = pending_requests_.Lookup(pending_request_id);
218 RequestPermissionsCallback callback(request->callback); 218 PermissionsStatusCallback callback(request->callback);
219 request->callback.Reset(); 219 request->callback.Reset();
220 pending_requests_.Remove(pending_request_id); 220 pending_requests_.Remove(pending_request_id);
221 callback.Run(mojo::Array<PermissionStatus>::From(result)); 221 callback.Run(mojo::Array<PermissionStatus>::From(result));
222 } 222 }
223 223
224 void PermissionServiceImpl::CancelPendingOperations() { 224 void PermissionServiceImpl::CancelPendingOperations() {
225 DCHECK(context_->GetBrowserContext()); 225 DCHECK(context_->GetBrowserContext());
226 226
227 PermissionManager* permission_manager = 227 PermissionManager* permission_manager =
228 context_->GetBrowserContext()->GetPermissionManager(); 228 context_->GetBrowserContext()->GetPermissionManager();
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 367
368 PermissionStatusCallback callback = subscription->callback; 368 PermissionStatusCallback callback = subscription->callback;
369 369
370 subscription->callback.Reset(); 370 subscription->callback.Reset();
371 pending_subscriptions_.Remove(pending_subscription_id); 371 pending_subscriptions_.Remove(pending_subscription_id);
372 372
373 callback.Run(status); 373 callback.Run(status);
374 } 374 }
375 375
376 } // namespace content 376 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/permissions/permission_service_impl.h ('k') | content/browser/presentation/presentation_service_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698