OLD | NEW |
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 "chrome/browser/permissions/permission_manager.h" | 5 #include "chrome/browser/permissions/permission_manager.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/callback.h" | 9 #include "base/callback.h" |
10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 using content::PermissionStatus; | 27 using content::PermissionStatus; |
28 using content::PermissionType; | 28 using content::PermissionType; |
29 | 29 |
30 namespace { | 30 namespace { |
31 | 31 |
32 // Helper method to convert ContentSetting to PermissionStatus. | 32 // Helper method to convert ContentSetting to PermissionStatus. |
33 PermissionStatus ContentSettingToPermissionStatus(ContentSetting setting) { | 33 PermissionStatus ContentSettingToPermissionStatus(ContentSetting setting) { |
34 switch (setting) { | 34 switch (setting) { |
35 case CONTENT_SETTING_ALLOW: | 35 case CONTENT_SETTING_ALLOW: |
36 case CONTENT_SETTING_SESSION_ONLY: | 36 case CONTENT_SETTING_SESSION_ONLY: |
37 return content::PERMISSION_STATUS_GRANTED; | 37 return content::PermissionStatus::GRANTED; |
38 case CONTENT_SETTING_BLOCK: | 38 case CONTENT_SETTING_BLOCK: |
39 return content::PERMISSION_STATUS_DENIED; | 39 return content::PermissionStatus::DENIED; |
40 case CONTENT_SETTING_ASK: | 40 case CONTENT_SETTING_ASK: |
41 return content::PERMISSION_STATUS_ASK; | 41 return content::PermissionStatus::ASK; |
42 case CONTENT_SETTING_DETECT_IMPORTANT_CONTENT: | 42 case CONTENT_SETTING_DETECT_IMPORTANT_CONTENT: |
43 case CONTENT_SETTING_DEFAULT: | 43 case CONTENT_SETTING_DEFAULT: |
44 case CONTENT_SETTING_NUM_SETTINGS: | 44 case CONTENT_SETTING_NUM_SETTINGS: |
45 break; | 45 break; |
46 } | 46 } |
47 | 47 |
48 NOTREACHED(); | 48 NOTREACHED(); |
49 return content::PERMISSION_STATUS_DENIED; | 49 return content::PermissionStatus::DENIED; |
50 } | 50 } |
51 | 51 |
52 // Wrap a callback taking a PermissionStatus to pass it as a callback taking a | 52 // Wrap a callback taking a PermissionStatus to pass it as a callback taking a |
53 // ContentSetting. | 53 // ContentSetting. |
54 void ContentSettingToPermissionStatusCallbackWrapper( | 54 void ContentSettingToPermissionStatusCallbackWrapper( |
55 const base::Callback<void(PermissionStatus)>& callback, | 55 const base::Callback<void(PermissionStatus)>& callback, |
56 ContentSetting setting) { | 56 ContentSetting setting) { |
57 callback.Run(ContentSettingToPermissionStatus(setting)); | 57 callback.Run(ContentSettingToPermissionStatus(setting)); |
58 } | 58 } |
59 | 59 |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 return ContentSettingToPermissionStatus( | 133 return ContentSettingToPermissionStatus( |
134 GetContentSettingForConstantPermission(type)); | 134 GetContentSettingForConstantPermission(type)); |
135 } | 135 } |
136 | 136 |
137 } // anonymous namespace | 137 } // anonymous namespace |
138 | 138 |
139 class PermissionManager::PendingRequest { | 139 class PermissionManager::PendingRequest { |
140 public: | 140 public: |
141 PendingRequest(content::RenderFrameHost* render_frame_host, | 141 PendingRequest(content::RenderFrameHost* render_frame_host, |
142 const std::vector<PermissionType> permissions, | 142 const std::vector<PermissionType> permissions, |
143 const base::Callback<void( | 143 const base::Callback< |
144 const std::vector<PermissionStatus>&)>& callback) | 144 void(const std::vector<PermissionStatus>&)>& callback) |
145 : render_process_id_(render_frame_host->GetProcess()->GetID()), | 145 : render_process_id_(render_frame_host->GetProcess()->GetID()), |
146 render_frame_id_(render_frame_host->GetRoutingID()), | 146 render_frame_id_(render_frame_host->GetRoutingID()), |
147 callback_(callback), | 147 callback_(callback), |
148 permissions_(permissions), | 148 permissions_(permissions), |
149 results_(permissions.size(), content::PERMISSION_STATUS_DENIED), | 149 results_(permissions.size(), content::PermissionStatus::DENIED), |
150 remaining_results_(permissions.size()) { | 150 remaining_results_(permissions.size()) {} |
151 } | |
152 | 151 |
153 void SetPermissionStatus(int permission_id, PermissionStatus status) { | 152 void SetPermissionStatus(int permission_id, PermissionStatus status) { |
154 DCHECK(!IsComplete()); | 153 DCHECK(!IsComplete()); |
155 | 154 |
156 results_[permission_id] = status; | 155 results_[permission_id] = status; |
157 --remaining_results_; | 156 --remaining_results_; |
158 } | 157 } |
159 | 158 |
160 bool IsComplete() const { | 159 bool IsComplete() const { |
161 return remaining_results_ == 0; | 160 return remaining_results_ == 0; |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 | 320 |
322 PermissionStatus PermissionManager::GetPermissionStatus( | 321 PermissionStatus PermissionManager::GetPermissionStatus( |
323 PermissionType permission, | 322 PermissionType permission, |
324 const GURL& requesting_origin, | 323 const GURL& requesting_origin, |
325 const GURL& embedding_origin) { | 324 const GURL& embedding_origin) { |
326 if (IsConstantPermission(permission)) | 325 if (IsConstantPermission(permission)) |
327 return GetPermissionStatusForConstantPermission(permission); | 326 return GetPermissionStatusForConstantPermission(permission); |
328 | 327 |
329 PermissionContextBase* context = PermissionContext::Get(profile_, permission); | 328 PermissionContextBase* context = PermissionContext::Get(profile_, permission); |
330 if (!context) | 329 if (!context) |
331 return content::PERMISSION_STATUS_DENIED; | 330 return content::PermissionStatus::DENIED; |
332 | 331 |
333 return ContentSettingToPermissionStatus(context->GetPermissionStatus( | 332 return ContentSettingToPermissionStatus(context->GetPermissionStatus( |
334 requesting_origin.GetOrigin(), embedding_origin.GetOrigin())); | 333 requesting_origin.GetOrigin(), embedding_origin.GetOrigin())); |
335 } | 334 } |
336 | 335 |
337 void PermissionManager::RegisterPermissionUsage(PermissionType permission, | 336 void PermissionManager::RegisterPermissionUsage(PermissionType permission, |
338 const GURL& requesting_origin, | 337 const GURL& requesting_origin, |
339 const GURL& embedding_origin) { | 338 const GURL& embedding_origin) { |
340 // This is required because constant permissions don't have a | 339 // This is required because constant permissions don't have a |
341 // ContentSettingsType. | 340 // ContentSettingsType. |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
424 // Add the callback to |callbacks| which will be run after the loop to | 423 // Add the callback to |callbacks| which will be run after the loop to |
425 // prevent re-entrance issues. | 424 // prevent re-entrance issues. |
426 callbacks.push_back( | 425 callbacks.push_back( |
427 base::Bind(subscription->callback, | 426 base::Bind(subscription->callback, |
428 ContentSettingToPermissionStatus(new_value))); | 427 ContentSettingToPermissionStatus(new_value))); |
429 } | 428 } |
430 | 429 |
431 for (const auto& callback : callbacks) | 430 for (const auto& callback : callbacks) |
432 callback.Run(); | 431 callback.Run(); |
433 } | 432 } |
OLD | NEW |