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..528439a1b42b325a7004f511b777359c54c4d3cb 100644 |
--- a/extensions/shell/browser/media_capture_util.cc |
+++ b/extensions/shell/browser/media_capture_util.cc |
@@ -77,5 +77,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 |