| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/media/media_devices_permission_checker.h" | 5 #include "content/browser/media/media_devices_permission_checker.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 | 72 |
| 73 } // namespace | 73 } // namespace |
| 74 | 74 |
| 75 MediaDevicesPermissionChecker::MediaDevicesPermissionChecker() | 75 MediaDevicesPermissionChecker::MediaDevicesPermissionChecker() |
| 76 : use_override_(base::CommandLine::ForCurrentProcess()->HasSwitch( | 76 : use_override_(base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 77 switches::kUseFakeUIForMediaStream)), | 77 switches::kUseFakeUIForMediaStream)), |
| 78 override_value_( | 78 override_value_( |
| 79 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( | 79 base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
| 80 switches::kUseFakeUIForMediaStream) != "deny") {} | 80 switches::kUseFakeUIForMediaStream) != "deny") {} |
| 81 | 81 |
| 82 MediaDevicesPermissionChecker::MediaDevicesPermissionChecker( |
| 83 bool override_value) |
| 84 : use_override_(true), override_value_(override_value) {} |
| 85 |
| 82 bool MediaDevicesPermissionChecker::CheckPermissionOnUIThread( | 86 bool MediaDevicesPermissionChecker::CheckPermissionOnUIThread( |
| 83 MediaDeviceType device_type, | 87 MediaDeviceType device_type, |
| 84 int render_process_id, | 88 int render_process_id, |
| 85 int render_frame_id, | 89 int render_frame_id, |
| 86 const url::Origin& security_origin) { | 90 const url::Origin& security_origin) const { |
| 87 if (use_override_) | 91 if (use_override_) |
| 88 return override_value_; | 92 return override_value_; |
| 89 | 93 |
| 90 return CheckSinglePermissionOnUIThread(device_type, render_process_id, | 94 return CheckSinglePermissionOnUIThread(device_type, render_process_id, |
| 91 render_frame_id, security_origin); | 95 render_frame_id, security_origin); |
| 92 } | 96 } |
| 93 | 97 |
| 94 void MediaDevicesPermissionChecker::CheckPermission( | 98 void MediaDevicesPermissionChecker::CheckPermission( |
| 95 MediaDeviceType device_type, | 99 MediaDeviceType device_type, |
| 96 int render_process_id, | 100 int render_process_id, |
| 97 int render_frame_id, | 101 int render_frame_id, |
| 98 const url::Origin& security_origin, | 102 const url::Origin& security_origin, |
| 99 const base::Callback<void(bool)>& callback) { | 103 const base::Callback<void(bool)>& callback) const { |
| 100 if (use_override_) { | 104 if (use_override_) { |
| 101 callback.Run(override_value_); | 105 callback.Run(override_value_); |
| 102 return; | 106 return; |
| 103 } | 107 } |
| 104 | 108 |
| 105 BrowserThread::PostTaskAndReplyWithResult( | 109 BrowserThread::PostTaskAndReplyWithResult( |
| 106 BrowserThread::UI, FROM_HERE, | 110 BrowserThread::UI, FROM_HERE, |
| 107 base::Bind(&CheckSinglePermissionOnUIThread, device_type, | 111 base::Bind(&CheckSinglePermissionOnUIThread, device_type, |
| 108 render_process_id, render_frame_id, security_origin), | 112 render_process_id, render_frame_id, security_origin), |
| 109 callback); | 113 callback); |
| 110 } | 114 } |
| 111 | 115 |
| 112 MediaDevicesManager::BoolDeviceTypes | 116 MediaDevicesManager::BoolDeviceTypes |
| 113 MediaDevicesPermissionChecker::CheckPermissionsOnUIThread( | 117 MediaDevicesPermissionChecker::CheckPermissionsOnUIThread( |
| 114 MediaDevicesManager::BoolDeviceTypes requested_device_types, | 118 MediaDevicesManager::BoolDeviceTypes requested_device_types, |
| 115 int render_process_id, | 119 int render_process_id, |
| 116 int render_frame_id, | 120 int render_frame_id, |
| 117 const url::Origin& security_origin) { | 121 const url::Origin& security_origin) const { |
| 118 if (use_override_) { | 122 if (use_override_) { |
| 119 MediaDevicesManager::BoolDeviceTypes result; | 123 MediaDevicesManager::BoolDeviceTypes result; |
| 120 result.fill(override_value_); | 124 result.fill(override_value_); |
| 121 return result; | 125 return result; |
| 122 } | 126 } |
| 123 | 127 |
| 124 return DoCheckPermissionsOnUIThread(requested_device_types, render_process_id, | 128 return DoCheckPermissionsOnUIThread(requested_device_types, render_process_id, |
| 125 render_frame_id, security_origin); | 129 render_frame_id, security_origin); |
| 126 } | 130 } |
| 127 | 131 |
| 128 void MediaDevicesPermissionChecker::CheckPermissions( | 132 void MediaDevicesPermissionChecker::CheckPermissions( |
| 129 MediaDevicesManager::BoolDeviceTypes requested, | 133 MediaDevicesManager::BoolDeviceTypes requested, |
| 130 int render_process_id, | 134 int render_process_id, |
| 131 int render_frame_id, | 135 int render_frame_id, |
| 132 const url::Origin& security_origin, | 136 const url::Origin& security_origin, |
| 133 const base::Callback<void(const MediaDevicesManager::BoolDeviceTypes&)>& | 137 const base::Callback<void(const MediaDevicesManager::BoolDeviceTypes&)>& |
| 134 callback) { | 138 callback) const { |
| 135 if (use_override_) { | 139 if (use_override_) { |
| 136 MediaDevicesManager::BoolDeviceTypes result; | 140 MediaDevicesManager::BoolDeviceTypes result; |
| 137 result.fill(override_value_); | 141 result.fill(override_value_); |
| 138 callback.Run(result); | 142 callback.Run(result); |
| 139 return; | 143 return; |
| 140 } | 144 } |
| 141 | 145 |
| 142 BrowserThread::PostTaskAndReplyWithResult( | 146 BrowserThread::PostTaskAndReplyWithResult( |
| 143 BrowserThread::UI, FROM_HERE, | 147 BrowserThread::UI, FROM_HERE, |
| 144 base::Bind(&DoCheckPermissionsOnUIThread, requested, render_process_id, | 148 base::Bind(&DoCheckPermissionsOnUIThread, requested, render_process_id, |
| 145 render_frame_id, security_origin), | 149 render_frame_id, security_origin), |
| 146 callback); | 150 callback); |
| 147 } | 151 } |
| 148 | 152 |
| 149 void MediaDevicesPermissionChecker::OverridePermissionsForTesting( | |
| 150 bool override_value) { | |
| 151 use_override_ = true; | |
| 152 override_value_ = override_value; | |
| 153 } | |
| 154 | |
| 155 } // namespace content | 153 } // namespace content |
| OLD | NEW |