Chromium Code Reviews| 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); |
|
xhwang
2016/08/23 18:03:58
Can you have a helper function? This code is a bit
dominickn
2016/08/23 20:13:16
Done.
|
| + |
| + 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; |
| } |