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 6b8aa8c3540669a6b9cbc0c2cf65523b7a38cfce..4f25a33c3114cd212f221514ea19c4ed564da28d 100644 |
--- a/chrome/browser/media/media_stream_devices_controller.cc |
+++ b/chrome/browser/media/media_stream_devices_controller.cc |
@@ -7,7 +7,6 @@ |
#include <map> |
#include <utility> |
-#include "base/auto_reset.h" |
#include "base/callback_helpers.h" |
#include "base/memory/ptr_util.h" |
#include "base/metrics/histogram.h" |
@@ -164,8 +163,7 @@ MediaStreamDevicesController::MediaStreamDevicesController( |
const content::MediaResponseCallback& callback) |
: web_contents_(web_contents), |
request_(request), |
- callback_(callback), |
- persist_permission_changes_(true) { |
+ callback_(callback) { |
if (request_.request_type == content::MEDIA_OPEN_DEVICE_PEPPER_ONLY) { |
MediaPermissionRequestLogger::LogRequest( |
web_contents, request.render_process_id, request.render_frame_id, |
@@ -258,13 +256,13 @@ base::string16 MediaStreamDevicesController::GetMessageText() const { |
} |
void MediaStreamDevicesController::ForcePermissionDeniedTemporarily() { |
- base::AutoReset<bool> persist_permissions( |
- &persist_permission_changes_, false); |
+ set_persist(false); |
// TODO(tsergeant): Determine whether it is appropriate to record permission |
// action metrics here, as this is a different sort of user action. |
RunCallback(CONTENT_SETTING_BLOCK, |
CONTENT_SETTING_BLOCK, |
content::MEDIA_DEVICE_PERMISSION_DENIED); |
+ set_persist(true); |
} |
int MediaStreamDevicesController::GetIconId() const { |
@@ -329,6 +327,10 @@ void MediaStreamDevicesController::GroupedRequestFinished(bool audio_accepted, |
content::MEDIA_DEVICE_PERMISSION_DENIED); |
} |
+bool MediaStreamDevicesController::ShouldShowPersistenceToggle() const { |
+ return PermissionUtil::ShouldShowPersistenceToggle(); |
+} |
+ |
void MediaStreamDevicesController::Cancelled() { |
RecordPermissionAction(request_, profile_, |
base::Bind(PermissionUmaUtil::PermissionDismissed)); |
@@ -462,8 +464,7 @@ void MediaStreamDevicesController::RunCallback( |
// If the kill switch is on we don't update the tab context or persist the |
// setting. |
- if (persist_permission_changes_ && |
- denial_reason != content::MEDIA_DEVICE_KILL_SWITCH_ON) { |
+ if (persist() && denial_reason != content::MEDIA_DEVICE_KILL_SWITCH_ON) { |
StorePermission(audio_setting, video_setting); |
UpdateTabSpecificContentSettings(audio_setting, video_setting); |
} |