| Index: chrome/browser/permissions/permission_context_base.cc
|
| diff --git a/chrome/browser/permissions/permission_context_base.cc b/chrome/browser/permissions/permission_context_base.cc
|
| index c00f3e7aa503570ad94c778a64b0b4923857aa9d..d20aa3dcbfd16f58f3a08b3653723209b54ca31d 100644
|
| --- a/chrome/browser/permissions/permission_context_base.cc
|
| +++ b/chrome/browser/permissions/permission_context_base.cc
|
| @@ -52,15 +52,13 @@ const char PermissionContextBase::kPermissionsKillSwitchBlockedValue[] =
|
|
|
| PermissionContextBase::PermissionContextBase(
|
| Profile* profile,
|
| - const content::PermissionType permission_type,
|
| const ContentSettingsType content_settings_type)
|
| : profile_(profile),
|
| - permission_type_(permission_type),
|
| content_settings_type_(content_settings_type),
|
| weak_factory_(this) {
|
| #if defined(OS_ANDROID)
|
| - permission_queue_controller_.reset(new PermissionQueueController(
|
| - profile_, permission_type_, content_settings_type_));
|
| + permission_queue_controller_.reset(
|
| + new PermissionQueueController(profile_, content_settings_type_));
|
| #endif
|
| PermissionDecisionAutoBlocker::UpdateFromVariations();
|
| }
|
| @@ -84,7 +82,8 @@ void PermissionContextBase::RequestPermission(
|
| content::CONSOLE_MESSAGE_LEVEL_INFO,
|
| base::StringPrintf(
|
| "%s permission has been blocked.",
|
| - PermissionUtil::GetPermissionString(permission_type_).c_str()));
|
| + PermissionUtil::GetPermissionString(content_settings_type_)
|
| + .c_str()));
|
| // The kill switch is enabled for this permission; Block all requests.
|
| callback.Run(CONTENT_SETTING_BLOCK);
|
| return;
|
| @@ -114,8 +113,11 @@ void PermissionContextBase::RequestPermission(
|
| ContentSetting content_setting =
|
| GetPermissionStatus(requesting_origin, embedding_origin);
|
| if (content_setting == CONTENT_SETTING_ALLOW) {
|
| + ContentSettingsType type_for_map = content_settings_type_;
|
| + if (type_for_map == CONTENT_SETTINGS_TYPE_PUSH_MESSAGING)
|
| + type_for_map = CONTENT_SETTINGS_TYPE_NOTIFICATIONS;
|
| HostContentSettingsMapFactory::GetForProfile(profile_)->UpdateLastUsage(
|
| - requesting_origin, embedding_origin, content_settings_type_);
|
| + requesting_origin, embedding_origin, type_for_map);
|
| }
|
|
|
| if (content_setting == CONTENT_SETTING_ALLOW ||
|
| @@ -130,7 +132,7 @@ void PermissionContextBase::RequestPermission(
|
| // have been dismissed too many times in a row. If the origin is allowed to
|
| // request, that request will be made to ContinueRequestPermission().
|
| PermissionDecisionAutoBlocker::GetForProfile(profile_)->UpdateEmbargoedStatus(
|
| - permission_type_, requesting_origin, web_contents,
|
| + content_settings_type_, requesting_origin, web_contents,
|
| base::Bind(&PermissionContextBase::ContinueRequestPermission,
|
| weak_factory_.GetWeakPtr(), web_contents, id,
|
| requesting_origin, embedding_origin, user_gesture, callback));
|
| @@ -151,14 +153,15 @@ void PermissionContextBase::ContinueRequestPermission(
|
| content::CONSOLE_MESSAGE_LEVEL_INFO,
|
| base::StringPrintf(
|
| "%s permission has been auto-blocked.",
|
| - PermissionUtil::GetPermissionString(permission_type_).c_str()));
|
| + PermissionUtil::GetPermissionString(content_settings_type_)
|
| + .c_str()));
|
| // Permission has been automatically blocked.
|
| callback.Run(CONTENT_SETTING_BLOCK);
|
| return;
|
| }
|
|
|
| - PermissionUmaUtil::PermissionRequested(permission_type_, requesting_origin,
|
| - embedding_origin, profile_);
|
| + PermissionUmaUtil::PermissionRequested(
|
| + content_settings_type_, requesting_origin, embedding_origin, profile_);
|
|
|
| DecidePermission(web_contents, id, requesting_origin, embedding_origin,
|
| user_gesture, callback);
|
| @@ -180,7 +183,7 @@ ContentSetting PermissionContextBase::GetPermissionStatus(
|
| GetPermissionStatusInternal(requesting_origin, embedding_origin);
|
| if (content_setting == CONTENT_SETTING_ASK &&
|
| PermissionDecisionAutoBlocker::GetForProfile(profile_)->IsUnderEmbargo(
|
| - permission_type_, requesting_origin)) {
|
| + content_settings_type_, requesting_origin)) {
|
| return CONTENT_SETTING_BLOCK;
|
| }
|
| return content_setting;
|
| @@ -219,7 +222,7 @@ void PermissionContextBase::CancelPermissionRequest(
|
| bool PermissionContextBase::IsPermissionKillSwitchOn() const {
|
| const std::string param = variations::GetVariationParamValue(
|
| kPermissionsKillSwitchFieldStudy,
|
| - PermissionUtil::GetPermissionString(permission_type_));
|
| + PermissionUtil::GetPermissionString(content_settings_type_));
|
|
|
| return param == kPermissionsKillSwitchBlockedValue;
|
| }
|
| @@ -251,7 +254,7 @@ void PermissionContextBase::DecidePermission(
|
|
|
| std::unique_ptr<PermissionRequest> request_ptr =
|
| base::MakeUnique<PermissionRequestImpl>(
|
| - requesting_origin, permission_type_, profile_, user_gesture,
|
| + requesting_origin, content_settings_type_, profile_, user_gesture,
|
| base::Bind(&PermissionContextBase::PermissionDecided,
|
| weak_factory_.GetWeakPtr(), id, requesting_origin,
|
| embedding_origin, user_gesture, callback),
|
| @@ -299,20 +302,21 @@ void PermissionContextBase::PermissionDecided(
|
| content_setting == CONTENT_SETTING_BLOCK ||
|
| content_setting == CONTENT_SETTING_DEFAULT);
|
| if (content_setting == CONTENT_SETTING_ALLOW) {
|
| - PermissionUmaUtil::PermissionGranted(permission_type_, gesture_type,
|
| + PermissionUmaUtil::PermissionGranted(content_settings_type_, gesture_type,
|
| requesting_origin, profile_);
|
| } else if (content_setting == CONTENT_SETTING_BLOCK) {
|
| - PermissionUmaUtil::PermissionDenied(permission_type_, gesture_type,
|
| + PermissionUmaUtil::PermissionDenied(content_settings_type_, gesture_type,
|
| requesting_origin, profile_);
|
| } else {
|
| - PermissionUmaUtil::PermissionDismissed(permission_type_, gesture_type,
|
| - requesting_origin, profile_);
|
| + PermissionUmaUtil::PermissionDismissed(
|
| + content_settings_type_, gesture_type, requesting_origin, profile_);
|
| }
|
| }
|
|
|
| if (content_setting == CONTENT_SETTING_DEFAULT &&
|
| PermissionDecisionAutoBlocker::GetForProfile(profile_)
|
| - ->RecordDismissAndEmbargo(requesting_origin, permission_type_)) {
|
| + ->RecordDismissAndEmbargo(requesting_origin,
|
| + content_settings_type_)) {
|
| // The permission has been embargoed, so it is blocked for this permission
|
| // request, but not persisted.
|
| content_setting = CONTENT_SETTING_BLOCK;
|
|
|