Chromium Code Reviews| Index: chrome/browser/ui/page_info/page_info_ui.cc |
| diff --git a/chrome/browser/ui/page_info/page_info_ui.cc b/chrome/browser/ui/page_info/page_info_ui.cc |
| index 273b3c910fc1c23fc761f77dc570dec290f855bd..2d21ba0b3210fecc157e0a6530a263e582e14a32 100644 |
| --- a/chrome/browser/ui/page_info/page_info_ui.cc |
| +++ b/chrome/browser/ui/page_info/page_info_ui.cc |
| @@ -27,6 +27,33 @@ namespace { |
| const int kInvalidResourceID = -1; |
| // The resource IDs for the strings that are displayed on the permissions |
| +// button if the permission setting is managed by policy. |
| +const int kPermissionButtonTextIDPolicyManaged[] = { |
| + kInvalidResourceID, |
| + IDS_PAGE_INFO_PERMISSION_ALLOWED_BY_POLICY, |
| + IDS_PAGE_INFO_PERMISSION_BLOCKED_BY_POLICY, |
| + IDS_PAGE_INFO_PERMISSION_ASK_BY_POLICY, |
|
lgarron
2017/04/18 06:40:00
The enterprise policy control page doesn't seem to
Patti Lor
2017/04/19 04:16:31
Acknowledged.
|
| + kInvalidResourceID, |
| + kInvalidResourceID}; |
| +static_assert(arraysize(kPermissionButtonTextIDPolicyManaged) == |
| + CONTENT_SETTING_NUM_SETTINGS, |
| + "kPermissionButtonTextIDPolicyManaged array size is incorrect"); |
| + |
| +// The resource IDs for the strings that are displayed on the permissions |
| +// button if the permission setting is managed by an extension. |
| +const int kPermissionButtonTextIDExtensionManaged[] = { |
| + kInvalidResourceID, |
| + IDS_PAGE_INFO_PERMISSION_ALLOWED_BY_EXTENSION, |
| + IDS_PAGE_INFO_PERMISSION_BLOCKED_BY_EXTENSION, |
| + kInvalidResourceID, |
|
lgarron
2017/04/18 06:40:00
ASK is possible: https://developer.chrome.com/exte
Patti Lor
2017/04/19 04:16:31
Oops, thanks for digging deeper here - fixed.
|
| + kInvalidResourceID, |
| + kInvalidResourceID}; |
| +static_assert(arraysize(kPermissionButtonTextIDExtensionManaged) == |
| + CONTENT_SETTING_NUM_SETTINGS, |
| + "kPermissionButtonTextIDExtensionManaged array size is " |
| + "incorrect"); |
| + |
| +// The resource IDs for the strings that are displayed on the permissions |
| // button if the permission setting is managed by the user. |
| const int kPermissionButtonTextIDUserManaged[] = { |
| kInvalidResourceID, |
| @@ -103,6 +130,34 @@ std::unique_ptr<PageInfoUI::SecurityDescription> CreateSecurityDescription( |
| security_description->details = l10n_util::GetStringUTF16(details_id); |
| return security_description; |
| } |
| + |
| +// Gets the actual setting for a ContentSettingType, taking into account what |
| +// the default setting value is and whether Html5ByDefault is enabled. |
| +ContentSetting GetEffectiveSetting(Profile* profile, |
| + ContentSettingsType type, |
| + ContentSetting setting, |
| + ContentSetting default_setting) { |
| + ContentSetting effective_setting = setting; |
| + if (effective_setting == CONTENT_SETTING_DEFAULT) |
| + effective_setting = default_setting; |
| + |
| +#if BUILDFLAG(ENABLE_PLUGINS) |
| + HostContentSettingsMap* host_content_settings_map = |
| + HostContentSettingsMapFactory::GetForProfile(profile); |
| + effective_setting = PluginsFieldTrial::EffectiveContentSetting( |
| + host_content_settings_map, type, effective_setting); |
| + |
| + // Display the UI string for ASK instead of DETECT for HTML5 by Default. |
| + // TODO(tommycli): Once HTML5 by Default is shipped and the feature flag |
| + // is removed, just migrate the actual content setting to ASK. |
| + if (PluginUtils::ShouldPreferHtmlOverPlugins(host_content_settings_map) && |
| + effective_setting == CONTENT_SETTING_DETECT_IMPORTANT_CONTENT) { |
| + effective_setting = CONTENT_SETTING_ASK; |
| + } |
| +#endif |
| + return effective_setting; |
| +} |
| + |
| } // namespace |
| PageInfoUI::CookieInfo::CookieInfo() : allowed(-1), blocked(-1) {} |
| @@ -208,25 +263,8 @@ base::string16 PageInfoUI::PermissionActionToUIString( |
| ContentSetting setting, |
| ContentSetting default_setting, |
| content_settings::SettingSource source) { |
| - ContentSetting effective_setting = setting; |
| - if (effective_setting == CONTENT_SETTING_DEFAULT) |
| - effective_setting = default_setting; |
| - |
| -#if BUILDFLAG(ENABLE_PLUGINS) |
| - HostContentSettingsMap* host_content_settings_map = |
| - HostContentSettingsMapFactory::GetForProfile(profile); |
| - effective_setting = PluginsFieldTrial::EffectiveContentSetting( |
| - host_content_settings_map, type, effective_setting); |
| - |
| - // Display the UI string for ASK instead of DETECT for HTML5 by Default. |
| - // TODO(tommycli): Once HTML5 by Default is shipped and the feature flag |
| - // is removed, just migrate the actual content setting to ASK. |
| - if (PluginUtils::ShouldPreferHtmlOverPlugins(host_content_settings_map) && |
| - effective_setting == CONTENT_SETTING_DETECT_IMPORTANT_CONTENT) { |
| - effective_setting = CONTENT_SETTING_ASK; |
| - } |
| -#endif |
| - |
| + ContentSetting effective_setting = |
| + GetEffectiveSetting(profile, type, setting, default_setting); |
| const int* button_text_ids = NULL; |
| switch (source) { |
| case content_settings::SETTING_SOURCE_USER: |
| @@ -267,13 +305,15 @@ base::string16 PageInfoUI::PermissionDecisionReasonToUIString( |
| Profile* profile, |
| const PageInfoUI::PermissionInfo& permission, |
| const GURL& url) { |
| + ContentSetting effective_setting = GetEffectiveSetting( |
| + profile, permission.type, permission.setting, permission.default_setting); |
| int message_id = kInvalidResourceID; |
| switch (permission.source) { |
| case content_settings::SettingSource::SETTING_SOURCE_POLICY: |
| - message_id = IDS_PAGE_INFO_PERMISSION_SET_BY_POLICY; |
| + message_id = kPermissionButtonTextIDPolicyManaged[effective_setting]; |
| break; |
| case content_settings::SettingSource::SETTING_SOURCE_EXTENSION: |
| - message_id = IDS_PAGE_INFO_PERMISSION_SET_BY_EXTENSION; |
| + message_id = kPermissionButtonTextIDExtensionManaged[effective_setting]; |
| break; |
| default: |
| break; |