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

Side by Side Diff: content/shell/browser/layout_test/layout_test_permission_manager.cc

Issue 1832813002: Add mojom module suffix in .mojom files in content. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address Tom's comment 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 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 "content/shell/browser/layout_test/layout_test_permission_manager.h" 5 #include "content/shell/browser/layout_test/layout_test_permission_manager.h"
6 6
7 #include <list> 7 #include <list>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
11 #include "content/public/browser/browser_thread.h" 11 #include "content/public/browser/browser_thread.h"
12 #include "content/public/browser/permission_type.h" 12 #include "content/public/browser/permission_type.h"
13 #include "content/public/browser/web_contents.h" 13 #include "content/public/browser/web_contents.h"
14 #include "content/shell/browser/layout_test/layout_test_content_browser_client.h " 14 #include "content/shell/browser/layout_test/layout_test_content_browser_client.h "
15 #include "content/shell/browser/layout_test/layout_test_notification_manager.h" 15 #include "content/shell/browser/layout_test/layout_test_notification_manager.h"
16 16
17 namespace content { 17 namespace content {
18 18
19 struct LayoutTestPermissionManager::Subscription { 19 struct LayoutTestPermissionManager::Subscription {
20 PermissionDescription permission; 20 PermissionDescription permission;
21 base::Callback<void(content::PermissionStatus)> callback; 21 base::Callback<void(content::mojom::PermissionStatus)> callback;
22 PermissionStatus current_value; 22 mojom::PermissionStatus current_value;
23 }; 23 };
24 24
25 LayoutTestPermissionManager::PermissionDescription::PermissionDescription( 25 LayoutTestPermissionManager::PermissionDescription::PermissionDescription(
26 PermissionType type, 26 PermissionType type,
27 const GURL& origin, 27 const GURL& origin,
28 const GURL& embedding_origin) 28 const GURL& embedding_origin)
29 : type(type), 29 : type(type),
30 origin(origin), 30 origin(origin),
31 embedding_origin(embedding_origin) { 31 embedding_origin(embedding_origin) {
32 } 32 }
(...skipping 25 matching lines...) Expand all
58 : PermissionManager() { 58 : PermissionManager() {
59 } 59 }
60 60
61 LayoutTestPermissionManager::~LayoutTestPermissionManager() { 61 LayoutTestPermissionManager::~LayoutTestPermissionManager() {
62 } 62 }
63 63
64 int LayoutTestPermissionManager::RequestPermission( 64 int LayoutTestPermissionManager::RequestPermission(
65 PermissionType permission, 65 PermissionType permission,
66 RenderFrameHost* render_frame_host, 66 RenderFrameHost* render_frame_host,
67 const GURL& requesting_origin, 67 const GURL& requesting_origin,
68 const base::Callback<void(PermissionStatus)>& callback) { 68 const base::Callback<void(mojom::PermissionStatus)>& callback) {
69 DCHECK_CURRENTLY_ON(BrowserThread::UI); 69 DCHECK_CURRENTLY_ON(BrowserThread::UI);
70 70
71 callback.Run(GetPermissionStatus( 71 callback.Run(GetPermissionStatus(
72 permission, requesting_origin, 72 permission, requesting_origin,
73 WebContents::FromRenderFrameHost(render_frame_host) 73 WebContents::FromRenderFrameHost(render_frame_host)
74 ->GetLastCommittedURL().GetOrigin())); 74 ->GetLastCommittedURL().GetOrigin()));
75 return kNoPendingOperation; 75 return kNoPendingOperation;
76 } 76 }
77 77
78 int LayoutTestPermissionManager::RequestPermissions( 78 int LayoutTestPermissionManager::RequestPermissions(
79 const std::vector<PermissionType>& permissions, 79 const std::vector<PermissionType>& permissions,
80 content::RenderFrameHost* render_frame_host, 80 content::RenderFrameHost* render_frame_host,
81 const GURL& requesting_origin, 81 const GURL& requesting_origin,
82 const base::Callback<void( 82 const base::Callback<void(const std::vector<mojom::PermissionStatus>&)>&
83 const std::vector<PermissionStatus>&)>& callback) { 83 callback) {
84 DCHECK_CURRENTLY_ON(BrowserThread::UI); 84 DCHECK_CURRENTLY_ON(BrowserThread::UI);
85 85
86 std::vector<PermissionStatus> result(permissions.size()); 86 std::vector<mojom::PermissionStatus> result(permissions.size());
87 const GURL& embedding_origin = 87 const GURL& embedding_origin =
88 WebContents::FromRenderFrameHost(render_frame_host) 88 WebContents::FromRenderFrameHost(render_frame_host)
89 ->GetLastCommittedURL().GetOrigin(); 89 ->GetLastCommittedURL().GetOrigin();
90 for (const auto& permission : permissions) { 90 for (const auto& permission : permissions) {
91 result.push_back(GetPermissionStatus( 91 result.push_back(GetPermissionStatus(
92 permission, requesting_origin, embedding_origin)); 92 permission, requesting_origin, embedding_origin));
93 } 93 }
94 94
95 callback.Run(result); 95 callback.Run(result);
96 return kNoPendingOperation; 96 return kNoPendingOperation;
(...skipping 11 matching lines...) Expand all
108 108
109 base::AutoLock lock(permissions_lock_); 109 base::AutoLock lock(permissions_lock_);
110 110
111 auto it = permissions_.find( 111 auto it = permissions_.find(
112 PermissionDescription(permission, requesting_origin, embedding_origin)); 112 PermissionDescription(permission, requesting_origin, embedding_origin));
113 if (it == permissions_.end()) 113 if (it == permissions_.end())
114 return; 114 return;
115 permissions_.erase(it); 115 permissions_.erase(it);
116 } 116 }
117 117
118 PermissionStatus LayoutTestPermissionManager::GetPermissionStatus( 118 mojom::PermissionStatus LayoutTestPermissionManager::GetPermissionStatus(
119 PermissionType permission, 119 PermissionType permission,
120 const GURL& requesting_origin, 120 const GURL& requesting_origin,
121 const GURL& embedding_origin) { 121 const GURL& embedding_origin) {
122 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) || 122 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) ||
123 BrowserThread::CurrentlyOn(BrowserThread::IO)); 123 BrowserThread::CurrentlyOn(BrowserThread::IO));
124 124
125 base::AutoLock lock(permissions_lock_); 125 base::AutoLock lock(permissions_lock_);
126 126
127 auto it = permissions_.find( 127 auto it = permissions_.find(
128 PermissionDescription(permission, requesting_origin, embedding_origin)); 128 PermissionDescription(permission, requesting_origin, embedding_origin));
129 if (it == permissions_.end()) 129 if (it == permissions_.end())
130 return PermissionStatus::DENIED; 130 return mojom::PermissionStatus::DENIED;
131 return it->second; 131 return it->second;
132 } 132 }
133 133
134 void LayoutTestPermissionManager::RegisterPermissionUsage( 134 void LayoutTestPermissionManager::RegisterPermissionUsage(
135 PermissionType permission, 135 PermissionType permission,
136 const GURL& requesting_origin, 136 const GURL& requesting_origin,
137 const GURL& embedding_origin) { 137 const GURL& embedding_origin) {
138 DCHECK_CURRENTLY_ON(BrowserThread::UI); 138 DCHECK_CURRENTLY_ON(BrowserThread::UI);
139 } 139 }
140 140
141 int LayoutTestPermissionManager::SubscribePermissionStatusChange( 141 int LayoutTestPermissionManager::SubscribePermissionStatusChange(
142 PermissionType permission, 142 PermissionType permission,
143 const GURL& requesting_origin, 143 const GURL& requesting_origin,
144 const GURL& embedding_origin, 144 const GURL& embedding_origin,
145 const base::Callback<void(PermissionStatus)>& callback) { 145 const base::Callback<void(mojom::PermissionStatus)>& callback) {
146 DCHECK_CURRENTLY_ON(BrowserThread::UI); 146 DCHECK_CURRENTLY_ON(BrowserThread::UI);
147 147
148 Subscription* subscription = new Subscription(); 148 Subscription* subscription = new Subscription();
149 subscription->permission = 149 subscription->permission =
150 PermissionDescription(permission, requesting_origin, embedding_origin); 150 PermissionDescription(permission, requesting_origin, embedding_origin);
151 subscription->callback = callback; 151 subscription->callback = callback;
152 subscription->current_value = 152 subscription->current_value =
153 GetPermissionStatus(permission, 153 GetPermissionStatus(permission,
154 subscription->permission.origin, 154 subscription->permission.origin,
155 subscription->permission.embedding_origin); 155 subscription->permission.embedding_origin);
156 156
157 return subscriptions_.Add(subscription); 157 return subscriptions_.Add(subscription);
158 } 158 }
159 159
160 void LayoutTestPermissionManager::UnsubscribePermissionStatusChange( 160 void LayoutTestPermissionManager::UnsubscribePermissionStatusChange(
161 int subscription_id) { 161 int subscription_id) {
162 DCHECK_CURRENTLY_ON(BrowserThread::UI); 162 DCHECK_CURRENTLY_ON(BrowserThread::UI);
163 163
164 // Whether |subscription_id| is known will be checked by the Remove() call. 164 // Whether |subscription_id| is known will be checked by the Remove() call.
165 subscriptions_.Remove(subscription_id); 165 subscriptions_.Remove(subscription_id);
166 } 166 }
167 167
168 void LayoutTestPermissionManager::SetPermission(PermissionType permission, 168 void LayoutTestPermissionManager::SetPermission(PermissionType permission,
169 PermissionStatus status, 169 mojom::PermissionStatus status,
170 const GURL& origin, 170 const GURL& origin,
171 const GURL& embedding_origin) { 171 const GURL& embedding_origin) {
172 DCHECK_CURRENTLY_ON(BrowserThread::UI); 172 DCHECK_CURRENTLY_ON(BrowserThread::UI);
173 173
174 PermissionDescription description(permission, origin, embedding_origin); 174 PermissionDescription description(permission, origin, embedding_origin);
175 175
176 base::AutoLock lock(permissions_lock_); 176 base::AutoLock lock(permissions_lock_);
177 177
178 auto it = permissions_.find(description); 178 auto it = permissions_.find(description);
179 if (it == permissions_.end()) { 179 if (it == permissions_.end()) {
180 permissions_.insert(std::pair<PermissionDescription, PermissionStatus>( 180 permissions_.insert(
181 description, status)); 181 std::pair<PermissionDescription, mojom::PermissionStatus>(description,
182 status));
182 } else { 183 } else {
183 it->second = status; 184 it->second = status;
184 } 185 }
185 186
186 OnPermissionChanged(description, status); 187 OnPermissionChanged(description, status);
187 } 188 }
188 189
189 void LayoutTestPermissionManager::ResetPermissions() { 190 void LayoutTestPermissionManager::ResetPermissions() {
190 DCHECK_CURRENTLY_ON(BrowserThread::UI); 191 DCHECK_CURRENTLY_ON(BrowserThread::UI);
191 192
192 base::AutoLock lock(permissions_lock_); 193 base::AutoLock lock(permissions_lock_);
193 permissions_.clear(); 194 permissions_.clear();
194 } 195 }
195 196
196 void LayoutTestPermissionManager::OnPermissionChanged( 197 void LayoutTestPermissionManager::OnPermissionChanged(
197 const PermissionDescription& permission, 198 const PermissionDescription& permission,
198 PermissionStatus status) { 199 mojom::PermissionStatus status) {
199 std::list<base::Closure> callbacks; 200 std::list<base::Closure> callbacks;
200 201
201 for (SubscriptionsMap::iterator iter(&subscriptions_); 202 for (SubscriptionsMap::iterator iter(&subscriptions_);
202 !iter.IsAtEnd(); iter.Advance()) { 203 !iter.IsAtEnd(); iter.Advance()) {
203 Subscription* subscription = iter.GetCurrentValue(); 204 Subscription* subscription = iter.GetCurrentValue();
204 if (subscription->permission != permission) 205 if (subscription->permission != permission)
205 continue; 206 continue;
206 207
207 if (subscription->current_value == status) 208 if (subscription->current_value == status)
208 continue; 209 continue;
209 210
210 subscription->current_value = status; 211 subscription->current_value = status;
211 212
212 // Add the callback to |callbacks| which will be run after the loop to 213 // Add the callback to |callbacks| which will be run after the loop to
213 // prevent re-entrance issues. 214 // prevent re-entrance issues.
214 callbacks.push_back(base::Bind(subscription->callback, status)); 215 callbacks.push_back(base::Bind(subscription->callback, status));
215 } 216 }
216 217
217 for (const auto& callback : callbacks) 218 for (const auto& callback : callbacks)
218 callback.Run(); 219 callback.Run();
219 } 220 }
220 221
221 } // namespace content 222 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698