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

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

Issue 2258763002: Add a feature-controlled persistence checkbox to geolocation prompts on desktop Views platforms. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@permission-infobardelegate-clean
Patch Set: Fix for multiple requests Created 4 years, 4 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_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);
}

Powered by Google App Engine
This is Rietveld 408576698