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); |
raymes
2017/02/07 04:46:15
I think we should just delete this since it's not
Timothy Loh
2017/02/08 04:01:06
Sure, I'll do this later :)
raymes
2017/02/09 00:39:56
In that case, please add a note about why we need
Timothy Loh
2017/02/10 07:25:38
Done.
|
} |
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; |