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

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

Issue 1726323002: Have Permission{Manager,Service} use Origin. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 8 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 #ifndef CONTENT_BROWSER_PERMISSIONS_PERMISSION_SERVICE_IMPL_H_ 5 #ifndef CONTENT_BROWSER_PERMISSIONS_PERMISSION_SERVICE_IMPL_H_
6 #define CONTENT_BROWSER_PERMISSIONS_PERMISSION_SERVICE_IMPL_H_ 6 #define CONTENT_BROWSER_PERMISSIONS_PERMISSION_SERVICE_IMPL_H_
7 7
8 #include "base/id_map.h" 8 #include "base/id_map.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/weak_ptr.h" 10 #include "base/memory/weak_ptr.h"
11 #include "content/browser/permissions/permission_service_context.h" 11 #include "content/browser/permissions/permission_service_context.h"
12 #include "content/common/permission_service.mojom.h" 12 #include "content/common/permission_service.mojom.h"
13 #include "mojo/public/cpp/bindings/binding.h" 13 #include "mojo/public/cpp/bindings/binding.h"
14 #include "url/origin.h"
14 15
15 namespace content { 16 namespace content {
16 17
17 enum class PermissionType; 18 enum class PermissionType;
18 19
19 // Implements the mojom::PermissionService Mojo interface. 20 // Implements the mojom::PermissionService Mojo interface.
20 // This service can be created from a RenderFrameHost or a RenderProcessHost. 21 // This service can be created from a RenderFrameHost or a RenderProcessHost.
21 // It is owned by a PermissionServiceContext. 22 // It is owned by a PermissionServiceContext.
22 // It receives at PermissionServiceContext instance when created which allows it 23 // It receives at PermissionServiceContext instance when created which allows it
23 // to have some information about the current context. That enables the service 24 // to have some information about the current context. That enables the service
(...skipping 27 matching lines...) Expand all
51 ~PendingRequest(); 52 ~PendingRequest();
52 53
53 // Request ID received from the PermissionManager. 54 // Request ID received from the PermissionManager.
54 int id; 55 int id;
55 PermissionsStatusCallback callback; 56 PermissionsStatusCallback callback;
56 int request_count; 57 int request_count;
57 }; 58 };
58 using RequestsMap = IDMap<PendingRequest, IDMapOwnPointer>; 59 using RequestsMap = IDMap<PendingRequest, IDMapOwnPointer>;
59 60
60 struct PendingSubscription { 61 struct PendingSubscription {
61 PendingSubscription(PermissionType permission, const GURL& origin, 62 PendingSubscription(PermissionType permission,
63 const url::Origin& origin,
62 const PermissionStatusCallback& callback); 64 const PermissionStatusCallback& callback);
63 ~PendingSubscription(); 65 ~PendingSubscription();
64 66
65 // Subscription ID received from the PermissionManager. 67 // Subscription ID received from the PermissionManager.
66 int id; 68 int id;
67 PermissionType permission; 69 PermissionType permission;
68 GURL origin; 70 url::Origin origin;
69 PermissionStatusCallback callback; 71 PermissionStatusCallback callback;
70 }; 72 };
71 using SubscriptionsMap = IDMap<PendingSubscription, IDMapOwnPointer>; 73 using SubscriptionsMap = IDMap<PendingSubscription, IDMapOwnPointer>;
72 74
73 // PermissionService. 75 // PermissionService.
74 void HasPermission(mojom::PermissionName permission, 76 void HasPermission(mojom::PermissionName permission,
75 const mojo::String& origin, 77 const mojo::String& origin,
76 const PermissionStatusCallback& callback) override; 78 const PermissionStatusCallback& callback) override;
77 void RequestPermission(mojom::PermissionName permission, 79 void RequestPermission(mojom::PermissionName permission,
78 const mojo::String& origin, 80 const mojo::String& origin,
(...skipping 13 matching lines...) Expand all
92 void OnConnectionError(); 94 void OnConnectionError();
93 95
94 void OnRequestPermissionResponse(int pending_request_id, 96 void OnRequestPermissionResponse(int pending_request_id,
95 mojom::PermissionStatus status); 97 mojom::PermissionStatus status);
96 void OnRequestPermissionsResponse( 98 void OnRequestPermissionsResponse(
97 int pending_request_id, 99 int pending_request_id,
98 const std::vector<mojom::PermissionStatus>& result); 100 const std::vector<mojom::PermissionStatus>& result);
99 101
100 mojom::PermissionStatus GetPermissionStatusFromName( 102 mojom::PermissionStatus GetPermissionStatusFromName(
101 mojom::PermissionName permission, 103 mojom::PermissionName permission,
102 const GURL& origin); 104 const url::Origin& origin);
103 mojom::PermissionStatus GetPermissionStatusFromType(PermissionType type, 105 mojom::PermissionStatus GetPermissionStatusFromType(
104 const GURL& origin); 106 PermissionType type,
105 void ResetPermissionStatus(PermissionType type, const GURL& origin); 107 const url::Origin& origin);
108 void ResetPermissionStatus(PermissionType type, const url::Origin& origin);
106 109
107 void OnPermissionStatusChanged(int pending_subscription_id, 110 void OnPermissionStatusChanged(int pending_subscription_id,
108 mojom::PermissionStatus status); 111 mojom::PermissionStatus status);
109 112
110 RequestsMap pending_requests_; 113 RequestsMap pending_requests_;
111 SubscriptionsMap pending_subscriptions_; 114 SubscriptionsMap pending_subscriptions_;
112 // context_ owns |this|. 115 // context_ owns |this|.
113 PermissionServiceContext* context_; 116 PermissionServiceContext* context_;
114 mojo::Binding<mojom::PermissionService> binding_; 117 mojo::Binding<mojom::PermissionService> binding_;
115 base::WeakPtrFactory<PermissionServiceImpl> weak_factory_; 118 base::WeakPtrFactory<PermissionServiceImpl> weak_factory_;
116 119
117 DISALLOW_COPY_AND_ASSIGN(PermissionServiceImpl); 120 DISALLOW_COPY_AND_ASSIGN(PermissionServiceImpl);
118 }; 121 };
119 122
120 } // namespace content 123 } // namespace content
121 124
122 #endif // CONTENT_BROWSER_PERMISSIONS_PERMISSION_SERVICE_IMPL_H_ 125 #endif // CONTENT_BROWSER_PERMISSIONS_PERMISSION_SERVICE_IMPL_H_
OLDNEW
« no previous file with comments | « content/browser/permissions/permission_service_context.cc ('k') | content/browser/permissions/permission_service_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698