Index: extensions/shell/browser/media_capture_util.cc |
diff --git a/extensions/shell/browser/media_capture_util.cc b/extensions/shell/browser/media_capture_util.cc |
index 364e19df8a7c6ecc74dc971cfdb60fc61ceabe48..30e3fb63c78203e2c82269c19a0a1742e0a28564 100644 |
--- a/extensions/shell/browser/media_capture_util.cc |
+++ b/extensions/shell/browser/media_capture_util.cc |
@@ -42,14 +42,9 @@ void GrantMediaStreamRequest(content::WebContents* web_contents, |
request.video_type == content::MEDIA_DEVICE_VIDEO_CAPTURE); |
MediaStreamDevices devices; |
- const PermissionsData* permissions_data = extension->permissions_data(); |
if (request.audio_type == content::MEDIA_DEVICE_AUDIO_CAPTURE) { |
- // app_shell has no UI surface to show an error, and on an embedded device |
- // it's better to crash than to have a feature not work. |
- CHECK(permissions_data->HasAPIPermission(APIPermission::kAudioCapture)) |
- << "Audio capture request but no audioCapture permission in manifest."; |
- |
+ VerifyMediaAccessPermission(request.audio_type, extension); |
const MediaStreamDevice* device = GetRequestedDeviceOrDefault( |
MediaCaptureDevices::GetInstance()->GetAudioCaptureDevices(), |
request.requested_audio_device_id); |
@@ -58,10 +53,7 @@ void GrantMediaStreamRequest(content::WebContents* web_contents, |
} |
if (request.video_type == content::MEDIA_DEVICE_VIDEO_CAPTURE) { |
- // See APIPermission::kAudioCapture check above. |
- CHECK(permissions_data->HasAPIPermission(APIPermission::kVideoCapture)) |
- << "Video capture request but no videoCapture permission in manifest."; |
- |
+ VerifyMediaAccessPermission(request.video_type, extension); |
const MediaStreamDevice* device = GetRequestedDeviceOrDefault( |
MediaCaptureDevices::GetInstance()->GetVideoCaptureDevices(), |
request.requested_video_device_id); |
@@ -77,5 +69,20 @@ void GrantMediaStreamRequest(content::WebContents* web_contents, |
ui.Pass()); |
} |
+void VerifyMediaAccessPermission(content::MediaStreamType type, |
+ const Extension* extension) { |
+ const PermissionsData* permissions_data = extension->permissions_data(); |
+ if (type == content::MEDIA_DEVICE_AUDIO_CAPTURE) { |
+ // app_shell has no UI surface to show an error, and on an embedded device |
+ // it's better to crash than to have a feature not work. |
+ CHECK(permissions_data->HasAPIPermission(APIPermission::kAudioCapture)) |
+ << "Audio capture request but no audioCapture permission in manifest."; |
+ } else { |
+ DCHECK(type == content::MEDIA_DEVICE_VIDEO_CAPTURE); |
+ CHECK(permissions_data->HasAPIPermission(APIPermission::kVideoCapture)) |
+ << "Video capture request but no videoCapture permission in manifest."; |
+ } |
+} |
+ |
} // namespace media_capture_util |
} // namespace extensions |