Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Unified Diff: chrome/browser/ui/page_info/page_info_ui.cc

Issue 2799883004: Permissions: Customize permission decision strings to ask/allow/block settings. (Closed)
Patch Set: Update resource_ids to add 100 starting from 15930. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/app/generated_resources.grd ('k') | components/page_info_strings.grdp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..06bbfd0a799f636cae2e87146eb1260c93fa9550 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,
+ 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,
+ IDS_PAGE_INFO_PERMISSION_ASK_BY_EXTENSION,
+ 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;
« no previous file with comments | « chrome/app/generated_resources.grd ('k') | components/page_info_strings.grdp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698