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

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

Issue 2746873004: Move ChromeOS login media access logic into a MediaAccessHandler (Closed)
Patch Set: Move ChromeOS login media access logic into a MediaAccessHandler Created 3 years, 8 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
« no previous file with comments | « chrome/browser/media/extension_media_access_handler.h ('k') | chrome/browser/media/media_access_handler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/media/extension_media_access_handler.cc
diff --git a/chrome/browser/media/extension_media_access_handler.cc b/chrome/browser/media/extension_media_access_handler.cc
index 681fe900f28a8ec754e681bfbdbf23e1aec5717c..8b08117681c001b029fa0558fb41df3b65de67d0 100644
--- a/chrome/browser/media/extension_media_access_handler.cc
+++ b/chrome/browser/media/extension_media_access_handler.cc
@@ -6,8 +6,6 @@
#include <utility>
-#include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h"
-#include "chrome/browser/media/webrtc/media_stream_capture_indicator.h"
#include "chrome/browser/media/webrtc/media_stream_device_permissions.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/pref_names.h"
@@ -47,6 +45,7 @@ ExtensionMediaAccessHandler::~ExtensionMediaAccessHandler() {
}
bool ExtensionMediaAccessHandler::SupportsStreamType(
+ content::WebContents* web_contents,
const content::MediaStreamType type,
const extensions::Extension* extension) {
return extension && (extension->is_platform_app() ||
@@ -71,13 +70,8 @@ void ExtensionMediaAccessHandler::HandleRequest(
const content::MediaStreamRequest& request,
const content::MediaResponseCallback& callback,
const extensions::Extension* extension) {
- // TODO(vrk): This code is largely duplicated in
- // MediaStreamDevicesController::Accept(). Move this code into a shared method
- // between the two classes.
-
Profile* profile =
Profile::FromBrowserContext(web_contents->GetBrowserContext());
-
bool audio_allowed =
request.audio_type == content::MEDIA_DEVICE_AUDIO_CAPTURE &&
extension->permissions_data()->HasAPIPermission(
@@ -91,59 +85,6 @@ void ExtensionMediaAccessHandler::HandleRequest(
GetDevicePolicy(profile, extension->url(), prefs::kVideoCaptureAllowed,
prefs::kVideoCaptureAllowedUrls) != ALWAYS_DENY;
- bool get_default_audio_device = audio_allowed;
- bool get_default_video_device = video_allowed;
-
- content::MediaStreamDevices devices;
-
- // Set an initial error result. If neither audio or video is allowed, we'll
- // never try to get any device below but will just create |ui| and return an
- // empty list with "invalid state" result. If at least one is allowed, we'll
- // try to get device(s), and if failure, we want to return "no hardware"
- // result.
- // TODO(grunell): The invalid state result should be changed to a new denied
- // result + a dcheck to ensure at least one of audio or video types is
- // capture.
- content::MediaStreamRequestResult result =
- (audio_allowed || video_allowed) ? content::MEDIA_DEVICE_NO_HARDWARE
- : content::MEDIA_DEVICE_INVALID_STATE;
-
- // Get the exact audio or video device if an id is specified.
- // We only set any error result here and before running the callback change
- // it to OK if we have any device.
- if (audio_allowed && !request.requested_audio_device_id.empty()) {
- const content::MediaStreamDevice* audio_device =
- MediaCaptureDevicesDispatcher::GetInstance()->GetRequestedAudioDevice(
- request.requested_audio_device_id);
- if (audio_device) {
- devices.push_back(*audio_device);
- get_default_audio_device = false;
- }
- }
- if (video_allowed && !request.requested_video_device_id.empty()) {
- const content::MediaStreamDevice* video_device =
- MediaCaptureDevicesDispatcher::GetInstance()->GetRequestedVideoDevice(
- request.requested_video_device_id);
- if (video_device) {
- devices.push_back(*video_device);
- get_default_video_device = false;
- }
- }
-
- // If either or both audio and video devices were requested but not
- // specified by id, get the default devices.
- if (get_default_audio_device || get_default_video_device) {
- MediaCaptureDevicesDispatcher::GetInstance()->GetDefaultDevicesForProfile(
- profile, get_default_audio_device, get_default_video_device, &devices);
- }
-
- std::unique_ptr<content::MediaStreamUI> ui;
- if (!devices.empty()) {
- result = content::MEDIA_DEVICE_OK;
- ui = MediaCaptureDevicesDispatcher::GetInstance()
- ->GetMediaStreamCaptureIndicator()
- ->RegisterMediaStream(web_contents, devices);
- }
-
- callback.Run(devices, result, std::move(ui));
+ CheckDevicesAndRunCallback(web_contents, request, callback, audio_allowed,
+ video_allowed);
}
« no previous file with comments | « chrome/browser/media/extension_media_access_handler.h ('k') | chrome/browser/media/media_access_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698