| 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 3f263c4ca169d9d0f5dac2f99414c3ff97bc1f63..9edebc75166ecf3ddc0def2d5f7cd4927a8795d5 100644
|
| --- a/chrome/browser/permissions/permission_context_base.cc
|
| +++ b/chrome/browser/permissions/permission_context_base.cc
|
| @@ -135,6 +135,11 @@ void PermissionContextBase::RequestPermission(
|
| if (result.content_setting == CONTENT_SETTING_ALLOW ||
|
| result.content_setting == CONTENT_SETTING_BLOCK) {
|
| switch (result.source) {
|
| + case PermissionStatusSource::SAFE_BROWSING_BLACKLIST:
|
| + LogPermissionBlockedMessage(web_contents,
|
| + kPermissionBlockedBlacklistMessage,
|
| + content_settings_type_);
|
| + break;
|
| case PermissionStatusSource::KILL_SWITCH:
|
| // Block the request and log to the developer console.
|
| LogPermissionBlockedMessage(web_contents,
|
| @@ -152,12 +157,10 @@ void PermissionContextBase::RequestPermission(
|
| kPermissionBlockedRepeatedIgnoresMessage,
|
| content_settings_type_);
|
| break;
|
| - case PermissionStatusSource::SAFE_BROWSING_BLACKLIST:
|
| - LogPermissionBlockedMessage(web_contents,
|
| - kPermissionBlockedBlacklistMessage,
|
| - content_settings_type_);
|
| - break;
|
| case PermissionStatusSource::UNSPECIFIED:
|
| + case PermissionStatusSource::INSECURE_ORIGIN:
|
| + case PermissionStatusSource::ENTERPRISE_POLICY:
|
| + case PermissionStatusSource::EXTENSION:
|
| break;
|
| }
|
|
|
| @@ -232,7 +235,7 @@ PermissionResult PermissionContextBase::GetPermissionStatus(
|
| if (IsRestrictedToSecureOrigins()) {
|
| if (!content::IsOriginSecure(requesting_origin)) {
|
| return PermissionResult(CONTENT_SETTING_BLOCK,
|
| - PermissionStatusSource::UNSPECIFIED);
|
| + PermissionStatusSource::INSECURE_ORIGIN);
|
| }
|
|
|
| // TODO(raymes): We should check the entire chain of embedders here whenever
|
| @@ -243,7 +246,7 @@ PermissionResult PermissionContextBase::GetPermissionStatus(
|
| if (!requesting_origin.SchemeIs(extensions::kExtensionScheme) &&
|
| !content::IsOriginSecure(embedding_origin)) {
|
| return PermissionResult(CONTENT_SETTING_BLOCK,
|
| - PermissionStatusSource::UNSPECIFIED);
|
| + PermissionStatusSource::INSECURE_ORIGIN);
|
| }
|
| }
|
|
|
| @@ -255,18 +258,15 @@ PermissionResult PermissionContextBase::GetPermissionStatus(
|
| PermissionStatusSource::UNSPECIFIED);
|
| }
|
|
|
| - ContentSetting content_setting = GetPermissionStatusInternal(
|
| + PermissionResult result = GetPermissionStatusInternal(
|
| render_frame_host, requesting_origin, embedding_origin);
|
| - if (content_setting == CONTENT_SETTING_ASK) {
|
| - PermissionResult result =
|
| - PermissionDecisionAutoBlocker::GetForProfile(profile_)
|
| - ->GetEmbargoResult(requesting_origin, content_settings_type_);
|
| + if (result.content_setting == CONTENT_SETTING_ASK) {
|
| + result = PermissionDecisionAutoBlocker::GetForProfile(profile_)
|
| + ->GetEmbargoResult(requesting_origin, content_settings_type_);
|
| DCHECK(result.content_setting == CONTENT_SETTING_ASK ||
|
| result.content_setting == CONTENT_SETTING_BLOCK);
|
| - return result;
|
| }
|
| -
|
| - return PermissionResult(content_setting, PermissionStatusSource::UNSPECIFIED);
|
| + return result;
|
| }
|
|
|
| PermissionResult PermissionContextBase::UpdatePermissionStatusWithDeviceStatus(
|
| @@ -313,13 +313,23 @@ bool PermissionContextBase::IsPermissionKillSwitchOn() const {
|
| return param == kPermissionsKillSwitchBlockedValue;
|
| }
|
|
|
| -ContentSetting PermissionContextBase::GetPermissionStatusInternal(
|
| +PermissionResult PermissionContextBase::GetPermissionStatusInternal(
|
| content::RenderFrameHost* render_frame_host,
|
| const GURL& requesting_origin,
|
| const GURL& embedding_origin) const {
|
| - return HostContentSettingsMapFactory::GetForProfile(profile_)
|
| - ->GetContentSetting(requesting_origin, embedding_origin,
|
| - content_settings_storage_type(), std::string());
|
| + content_settings::SettingInfo info;
|
| + std::unique_ptr<base::Value> value =
|
| + HostContentSettingsMapFactory::GetForProfile(profile_)->GetWebsiteSetting(
|
| + requesting_origin, embedding_origin, content_settings_storage_type(),
|
| + std::string(), &info);
|
| + ContentSetting content_setting = CONTENT_SETTING_DEFAULT;
|
| + DCHECK(value.get());
|
| + DCHECK_EQ(base::Value::Type::INTEGER, value->GetType());
|
| + content_setting = content_settings::ValueToContentSetting(value.get());
|
| + return PermissionResult(
|
| + content_setting,
|
| + PermissionUtil::ConvertSettingSourceToPermissionStatusSource(
|
| + info.source));
|
| }
|
|
|
| void PermissionContextBase::DecidePermission(
|
|
|