| Index: chrome/browser/media/media_permission.cc
|
| diff --git a/chrome/browser/media/media_permission.cc b/chrome/browser/media/media_permission.cc
|
| deleted file mode 100644
|
| index 1cbaeb408e8ebb9f60aed540f5bc3ab93f271e7a..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/media/media_permission.cc
|
| +++ /dev/null
|
| @@ -1,129 +0,0 @@
|
| -// Copyright 2015 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/media/media_permission.h"
|
| -
|
| -#include "chrome/browser/media/media_capture_devices_dispatcher.h"
|
| -#include "chrome/browser/media/media_stream_device_permission_context.h"
|
| -#include "chrome/browser/media/media_stream_device_permissions.h"
|
| -#include "chrome/browser/permissions/permission_context_base.h"
|
| -#include "chrome/browser/permissions/permission_manager.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/common/pref_names.h"
|
| -#include "content/public/browser/permission_manager.h"
|
| -#include "content/public/browser/permission_type.h"
|
| -#include "content/public/common/url_constants.h"
|
| -#include "extensions/common/constants.h"
|
| -
|
| -namespace {
|
| -
|
| -content::PermissionType ContentSettingsTypeToPermission(
|
| - ContentSettingsType content_setting) {
|
| - if (content_setting == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC) {
|
| - return content::PermissionType::AUDIO_CAPTURE;
|
| - } else {
|
| - DCHECK_EQ(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, content_setting);
|
| - return content::PermissionType::VIDEO_CAPTURE;
|
| - }
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -MediaPermission::MediaPermission(ContentSettingsType content_type,
|
| - const GURL& requesting_origin,
|
| - const GURL& embedding_origin,
|
| - Profile* profile)
|
| - : content_type_(content_type),
|
| - requesting_origin_(requesting_origin),
|
| - embedding_origin_(embedding_origin),
|
| - profile_(profile) {}
|
| -
|
| -ContentSetting MediaPermission::GetPermissionStatus(
|
| - content::MediaStreamRequestResult* denial_reason) const {
|
| - // Deny the request if the security origin is empty, this happens with
|
| - // file access without |--allow-file-access-from-files| flag.
|
| - if (requesting_origin_.is_empty()) {
|
| - *denial_reason = content::MEDIA_DEVICE_INVALID_SECURITY_ORIGIN;
|
| - return CONTENT_SETTING_BLOCK;
|
| - }
|
| -
|
| - // Use the Permission Context to find out if the kill switch is on. Set the
|
| - // denial reason to kill switch.
|
| - content::PermissionType permission_type =
|
| - ContentSettingsTypeToPermission(content_type_);
|
| - // TODO(raymes): This calls into GetPermissionContext which is a private
|
| - // member of PermissionManager. Remove this call when this class is refactored
|
| - // into a PermissionContext. See crbug.com/596786.
|
| - PermissionContextBase* permission_context =
|
| - PermissionManager::Get(profile_)->GetPermissionContext(permission_type);
|
| -
|
| - if (!permission_context) {
|
| - *denial_reason = content::MEDIA_DEVICE_PERMISSION_DENIED;
|
| - return CONTENT_SETTING_BLOCK;
|
| - }
|
| -
|
| - MediaStreamDevicePermissionContext* media_device_permission_context =
|
| - static_cast<MediaStreamDevicePermissionContext*>(permission_context);
|
| -
|
| - if (media_device_permission_context->IsPermissionKillSwitchOn()) {
|
| - *denial_reason = content::MEDIA_DEVICE_KILL_SWITCH_ON;
|
| - return CONTENT_SETTING_BLOCK;
|
| - }
|
| -
|
| - // Check policy and content settings.
|
| - ContentSetting result =
|
| - GetStoredContentSetting(media_device_permission_context);
|
| - if (result == CONTENT_SETTING_BLOCK)
|
| - *denial_reason = content::MEDIA_DEVICE_PERMISSION_DENIED;
|
| -
|
| - return result;
|
| -}
|
| -
|
| -ContentSetting MediaPermission::GetPermissionStatusWithDeviceRequired(
|
| - const std::string& device_id,
|
| - content::MediaStreamRequestResult* denial_reason) const {
|
| - // Deny the request if there is no device attached to the OS of the requested
|
| - // type.
|
| - if (!HasAvailableDevices(device_id)) {
|
| - *denial_reason = content::MEDIA_DEVICE_NO_HARDWARE;
|
| - return CONTENT_SETTING_BLOCK;
|
| - }
|
| -
|
| - return GetPermissionStatus(denial_reason);
|
| -}
|
| -
|
| -ContentSetting MediaPermission::GetStoredContentSetting(
|
| - MediaStreamDevicePermissionContext* media_device_permission_context) const {
|
| - return media_device_permission_context->GetPermissionStatus(
|
| - requesting_origin_, embedding_origin_);
|
| -}
|
| -
|
| -bool MediaPermission::HasAvailableDevices(const std::string& device_id) const {
|
| - const content::MediaStreamDevices* devices = nullptr;
|
| - if (content_type_ == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC) {
|
| - devices =
|
| - &MediaCaptureDevicesDispatcher::GetInstance()->GetAudioCaptureDevices();
|
| - } else if (content_type_ == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA) {
|
| - devices =
|
| - &MediaCaptureDevicesDispatcher::GetInstance()->GetVideoCaptureDevices();
|
| - } else {
|
| - NOTREACHED();
|
| - }
|
| -
|
| - // TODO(tommi): It's kind of strange to have this here since if we fail this
|
| - // test, there'll be a UI shown that indicates to the user that access to
|
| - // non-existing audio/video devices has been denied. The user won't have
|
| - // any way to change that but there will be a UI shown which indicates that
|
| - // access is blocked.
|
| - if (devices->empty())
|
| - return false;
|
| -
|
| - // Note: we check device_id before dereferencing devices. If the requested
|
| - // device id is non-empty, then the corresponding device list must not be
|
| - // NULL.
|
| - if (!device_id.empty() && !devices->FindById(device_id))
|
| - return false;
|
| -
|
| - return true;
|
| -}
|
|
|