Index: chrome/browser/media/media_stream_devices_controller.cc |
diff --git a/chrome/browser/media/media_stream_devices_controller.cc b/chrome/browser/media/media_stream_devices_controller.cc |
index 56e73b9efb1876cd0658f2984da93ba2b6f89022..3cb55cc23313826bef8491fc84a3064ca910a278 100644 |
--- a/chrome/browser/media/media_stream_devices_controller.cc |
+++ b/chrome/browser/media/media_stream_devices_controller.cc |
@@ -23,7 +23,6 @@ |
#include "chrome/common/pref_names.h" |
#include "components/pref_registry/pref_registry_syncable.h" |
#include "content/public/browser/browser_thread.h" |
-#include "content/public/browser/navigation_entry.h" |
#include "content/public/common/media_stream_request.h" |
#include "extensions/common/constants.h" |
#include "grit/generated_resources.h" |
@@ -38,15 +37,6 @@ using content::BrowserThread; |
namespace { |
-// This prefix is combined with request security origins to store media access |
-// permissions that the user has granted a specific page navigation instance. |
-// The string value stored with the navigation instance will contain one or more |
-// kMediaPermissionXxx constants that indicates the permission(s) that the user |
-// has granted the page. |
-const char kMediaPermissionKeyPrefix[] = "media_permissions#"; |
-const base::char16 kMediaPermissionAudio = static_cast<base::char16>('a'); |
-const base::char16 kMediaPermissionVideo = static_cast<base::char16>('v'); |
- |
bool HasAvailableDevicesForRequest(const content::MediaStreamRequest& request) { |
const content::MediaStreamDevices* audio_devices = |
request.audio_type == content::MEDIA_DEVICE_AUDIO_CAPTURE ? |
@@ -90,75 +80,6 @@ bool HasAvailableDevicesForRequest(const content::MediaStreamRequest& request) { |
return true; |
} |
-base::string16 GetMediaPermissionsFromNavigationEntry( |
- content::NavigationEntry* navigation_entry, |
- const content::MediaStreamRequest& request) { |
- const std::string key(kMediaPermissionKeyPrefix + |
- request.security_origin.spec()); |
- |
- base::string16 permissions; |
- if (!navigation_entry->GetExtraData(key, &permissions)) { |
- DCHECK(permissions.empty()); |
- } |
- |
- return permissions; |
-} |
- |
-void SetMediaPermissionsForNavigationEntry( |
- content::NavigationEntry* navigation_entry, |
- const content::MediaStreamRequest& request, |
- const base::string16& permissions) { |
- const std::string key(kMediaPermissionKeyPrefix + |
- request.security_origin.spec()); |
- permissions.empty() ? |
- navigation_entry->ClearExtraData(key) : |
- navigation_entry->SetExtraData(key, permissions); |
-} |
- |
-void SetMediaPermissionsForNavigationEntry( |
- content::NavigationEntry* navigation_entry, |
- const content::MediaStreamRequest& request, |
- bool allow_audio, |
- bool allow_video) { |
- base::string16 permissions; |
- if (allow_audio) |
- permissions += kMediaPermissionAudio; |
- if (allow_video) |
- permissions += kMediaPermissionVideo; |
- SetMediaPermissionsForNavigationEntry(navigation_entry, request, permissions); |
-} |
- |
-bool IsRequestAllowedByNavigationEntry( |
- content::NavigationEntry* navigation_entry, |
- const content::MediaStreamRequest& request) { |
- using content::MEDIA_NO_SERVICE; |
- using content::MEDIA_DEVICE_AUDIO_CAPTURE; |
- using content::MEDIA_DEVICE_VIDEO_CAPTURE; |
- |
- // If we aren't being asked for at least one of these two, fail right away. |
- if (!navigation_entry || |
- (request.audio_type != MEDIA_DEVICE_AUDIO_CAPTURE && |
- request.video_type != MEDIA_DEVICE_VIDEO_CAPTURE)) { |
- return false; |
- } |
- |
- base::string16 permissions = |
- GetMediaPermissionsFromNavigationEntry(navigation_entry, request); |
- |
- bool audio_requested_and_granted = |
- request.audio_type == MEDIA_DEVICE_AUDIO_CAPTURE && |
- permissions.find(kMediaPermissionAudio) != base::string16::npos; |
- |
- bool video_requested_and_granted = |
- request.video_type == MEDIA_DEVICE_VIDEO_CAPTURE && |
- permissions.find(kMediaPermissionVideo) != base::string16::npos; |
- |
- return |
- (audio_requested_and_granted || request.audio_type == MEDIA_NO_SERVICE) && |
- (video_requested_and_granted || request.video_type == MEDIA_NO_SERVICE); |
-} |
- |
- |
bool IsInKioskMode() { |
if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kKioskMode)) |
return true; |
@@ -309,18 +230,6 @@ bool MediaStreamDevicesController::DismissInfoBarAndTakeActionOnSettings() { |
return true; |
} |
- // Check if the navigation entry has previously been granted access. |
- // We do this after the IsDefaultMediaAccessBlocked check to handle the use |
- // case where the user modifies the content settings to 'deny' after having |
- // previously granted the page access and the permissions in the |
- // NavigationEntry are out of date. |
- content::NavigationEntry* navigation_entry = |
- web_contents_->GetController().GetVisibleEntry(); |
- if (IsRequestAllowedByNavigationEntry(navigation_entry, request_)) { |
- Accept(false); |
- return true; |
- } |
- |
// Show the infobar. |
return false; |
} |
@@ -409,18 +318,6 @@ void MediaStreamDevicesController::Accept(bool update_content_setting) { |
get_default_video_device, |
&devices); |
} |
- |
- // For pages accessed via http (not https), tag this navigation entry |
- // with the granted permissions. This avoids repeated prompts for |
- // device access. |
- if (!IsSchemeSecure()) { |
- content::NavigationEntry* navigation_entry = |
- web_contents_->GetController().GetVisibleEntry(); |
- if (navigation_entry) { |
- SetMediaPermissionsForNavigationEntry( |
- navigation_entry, request_, audio_allowed, video_allowed); |
- } |
- } |
break; |
} |
case content::MEDIA_DEVICE_ACCESS: { |
@@ -470,14 +367,6 @@ void MediaStreamDevicesController::Deny( |
DLOG(WARNING) << "MediaStreamDevicesController::Deny: " << result; |
NotifyUIRequestDenied(); |
- // Clear previously allowed permissions from the navigation entry if any. |
- content::NavigationEntry* navigation_entry = |
- web_contents_->GetController().GetVisibleEntry(); |
- if (navigation_entry) { |
- SetMediaPermissionsForNavigationEntry( |
- navigation_entry, request_, false, false); |
- } |
- |
if (update_content_setting) { |
CHECK_EQ(content::MEDIA_DEVICE_PERMISSION_DENIED, result); |
SetPermission(false); |