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

Unified Diff: chrome/browser/media/media_capture_devices_dispatcher.cc

Issue 23454030: Whitelist virtual keyboard extension to accept audioCapture and videoCapture permissions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: format nit Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/media_capture_devices_dispatcher.cc
diff --git a/chrome/browser/media/media_capture_devices_dispatcher.cc b/chrome/browser/media/media_capture_devices_dispatcher.cc
index 6f94d2be5c08c1480311c13eb36a8cd88ee5da4c..d289aef160c69ef979f47f2c7b8da60d016b04ea 100644
--- a/chrome/browser/media/media_capture_devices_dispatcher.cc
+++ b/chrome/browser/media/media_capture_devices_dispatcher.cc
@@ -55,6 +55,14 @@ const content::MediaStreamDevice* FindDeviceWithId(
return NULL;
};
+// This is a short-term solution to grant microphone access to virtual keyboard
+// extension for voice input. Once http://crbug.com/292856 is fixed, remove this
+// whitelist.
+bool IsMediaRequestWhitelistedForExtension(
+ const extensions::Extension* extension) {
+ return extension->id() == "mppnpdlheglhdfmldimlhpnegondlapf";
+}
+
// This is a short-term solution to allow testing of the the Screen Capture API
// with Google Hangouts in M27.
// TODO(sergeyu): Remove this whitelist as soon as possible.
@@ -199,9 +207,10 @@ void MediaCaptureDevicesDispatcher::ProcessMediaAccessRequest(
request.audio_type == content::MEDIA_TAB_AUDIO_CAPTURE) {
ProcessTabCaptureAccessRequest(
web_contents, request, callback, extension);
- } else if (extension && extension->is_platform_app()) {
+ } else if (extension && (extension->is_platform_app() ||
+ IsMediaRequestWhitelistedForExtension(extension))) {
// For extensions access is approved based on extension permissions.
- ProcessMediaAccessRequestFromPlatformApp(
+ ProcessMediaAccessRequestFromPlatformAppOrExtension(
web_contents, request, callback, extension);
} else {
ProcessRegularMediaAccessRequest(web_contents, request, callback);
@@ -404,11 +413,12 @@ void MediaCaptureDevicesDispatcher::ProcessTabCaptureAccessRequest(
#endif // !defined(OS_ANDROID)
}
-void MediaCaptureDevicesDispatcher::ProcessMediaAccessRequestFromPlatformApp(
- content::WebContents* web_contents,
- const content::MediaStreamRequest& request,
- const content::MediaResponseCallback& callback,
- const extensions::Extension* extension) {
+void MediaCaptureDevicesDispatcher::
+ ProcessMediaAccessRequestFromPlatformAppOrExtension(
+ content::WebContents* web_contents,
+ const content::MediaStreamRequest& request,
+ const content::MediaResponseCallback& callback,
+ const extensions::Extension* extension) {
content::MediaStreamDevices devices;
Profile* profile =
Profile::FromBrowserContext(web_contents->GetBrowserContext());
« no previous file with comments | « chrome/browser/media/media_capture_devices_dispatcher.h ('k') | chrome/common/extensions/api/_permission_features.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698