Index: chrome/browser/media/media_stream_infobar_delegate_android.cc |
diff --git a/chrome/browser/media/media_stream_infobar_delegate_android.cc b/chrome/browser/media/media_stream_infobar_delegate_android.cc |
index 2bfc3a0671589675ffa7ebc652f38a7ccaf25811..9500af3e255fd9056e4ea540fc6cd0c72ce147b4 100644 |
--- a/chrome/browser/media/media_stream_infobar_delegate_android.cc |
+++ b/chrome/browser/media/media_stream_infobar_delegate_android.cc |
@@ -11,6 +11,7 @@ |
#include "base/metrics/histogram.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/infobars/infobar_service.h" |
+#include "chrome/browser/permissions/permission_uma_util.h" |
#include "chrome/common/url_constants.h" |
#include "chrome/grit/generated_resources.h" |
#include "components/content_settings/core/common/content_settings_types.h" |
@@ -100,6 +101,32 @@ MediaStreamInfoBarDelegateAndroid::AsMediaStreamInfoBarDelegateAndroid() { |
} |
bool MediaStreamInfoBarDelegateAndroid::Accept() { |
+ bool persist_permission = true; |
+ if (ShouldShowPersistenceToggle()) { |
+ persist_permission = persist(); |
+ |
+ // TODO(dominickn): fold these metrics calls into |
+ // PermissionUmaUtil::PermissionGranted. See crbug.com/638076. |
+ if (GetPermissionCount() == 2) { |
+ PermissionUmaUtil::PermissionPromptAcceptedWithPersistenceToggle( |
+ controller_->GetPermissionTypeForContentSettingsType( |
+ GetContentSettingType(kGroupedInfobarAudioPosition)), |
+ persist_permission); |
+ |
+ PermissionUmaUtil::PermissionPromptAcceptedWithPersistenceToggle( |
+ controller_->GetPermissionTypeForContentSettingsType( |
+ GetContentSettingType(kGroupedInfobarVideoPosition)), |
+ persist_permission); |
+ } else { |
+ DCHECK_EQ(1, GetPermissionCount()); |
+ PermissionUmaUtil::PermissionPromptAcceptedWithPersistenceToggle( |
+ controller_->GetPermissionTypeForContentSettingsType( |
+ GetContentSettingType(0)), |
+ persist_permission); |
+ } |
+ } |
+ |
+ controller_->set_persist(persist_permission); |
if (GetPermissionCount() == 2) { |
controller_->GroupedRequestFinished( |
GetAcceptState(kGroupedInfobarAudioPosition), |
@@ -112,6 +139,31 @@ bool MediaStreamInfoBarDelegateAndroid::Accept() { |
} |
bool MediaStreamInfoBarDelegateAndroid::Cancel() { |
+ bool persist_permission = true; |
+ if (ShouldShowPersistenceToggle()) { |
+ persist_permission = persist(); |
+ |
+ // TODO(dominickn): fold these metrics calls into |
+ // PermissionUmaUtil::PermissionGranted. See crbug.com/638076. |
+ if (GetPermissionCount() == 2) { |
+ PermissionUmaUtil::PermissionPromptDeniedWithPersistenceToggle( |
+ controller_->GetPermissionTypeForContentSettingsType( |
+ GetContentSettingType(kGroupedInfobarAudioPosition)), |
+ persist_permission); |
+ |
+ PermissionUmaUtil::PermissionPromptDeniedWithPersistenceToggle( |
+ controller_->GetPermissionTypeForContentSettingsType( |
+ GetContentSettingType(kGroupedInfobarVideoPosition)), |
+ persist_permission); |
+ } else { |
+ DCHECK_EQ(1, GetPermissionCount()); |
+ PermissionUmaUtil::PermissionPromptDeniedWithPersistenceToggle( |
+ controller_->GetPermissionTypeForContentSettingsType( |
+ GetContentSettingType(0)), |
+ persist_permission); |
+ } |
+ } |
+ controller_->set_persist(persist_permission); |
controller_->PermissionDenied(); |
return true; |
} |