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 ed5c88896d3361ec4fe6123bf63b026176b9355b..57f3ad696b13f560190cc1fdadc705404b7dc555 100644 |
| --- a/chrome/browser/ui/page_info/page_info_ui.cc |
| +++ b/chrome/browser/ui/page_info/page_info_ui.cc |
| @@ -6,6 +6,9 @@ |
| #include "base/macros.h" |
| #include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
| +#include "chrome/browser/permissions/permission_manager.h" |
| +#include "chrome/browser/permissions/permission_result.h" |
| +#include "chrome/browser/permissions/permission_util.h" |
| #include "chrome/browser/plugins/plugin_utils.h" |
| #include "chrome/browser/plugins/plugins_field_trial.h" |
| #include "chrome/common/chrome_features.h" |
| @@ -17,39 +20,13 @@ |
| #include "ui/base/l10n/l10n_util.h" |
| #include "ui/base/resource/resource_bundle.h" |
| #include "ui/gfx/image/image.h" |
| +#include "url/gurl.h" |
| 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_BUTTON_TEXT_ALLOWED_BY_POLICY, |
| - IDS_PAGE_INFO_BUTTON_TEXT_BLOCKED_BY_POLICY, |
| - IDS_PAGE_INFO_BUTTON_TEXT_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_BUTTON_TEXT_ALLOWED_BY_EXTENSION, |
| - IDS_PAGE_INFO_BUTTON_TEXT_BLOCKED_BY_EXTENSION, |
| - kInvalidResourceID, |
| - 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, |
| @@ -248,16 +225,15 @@ base::string16 PageInfoUI::PermissionActionToUIString( |
| const int* button_text_ids = NULL; |
| switch (source) { |
| case content_settings::SETTING_SOURCE_USER: |
| - if (setting == CONTENT_SETTING_DEFAULT) |
| + |
|
lgarron
2017/03/29 05:49:26
Nit: avoid adding unneeded whitespace.
Patti Lor
2017/03/30 03:27:29
Done.
|
| + if (setting == CONTENT_SETTING_DEFAULT) { |
| button_text_ids = kPermissionButtonTextIDDefaultSetting; |
| - else |
| - button_text_ids = kPermissionButtonTextIDUserManaged; |
| - break; |
| + break; |
| + } |
| + // Fallthrough. |
| case content_settings::SETTING_SOURCE_POLICY: |
| - button_text_ids = kPermissionButtonTextIDPolicyManaged; |
| - break; |
| case content_settings::SETTING_SOURCE_EXTENSION: |
| - button_text_ids = kPermissionButtonTextIDExtensionManaged; |
| + button_text_ids = kPermissionButtonTextIDUserManaged; |
| break; |
| case content_settings::SETTING_SOURCE_WHITELIST: |
| case content_settings::SETTING_SOURCE_NONE: |
| @@ -283,6 +259,43 @@ int PageInfoUI::GetPermissionIconID(ContentSettingsType type, |
| } |
| // static |
| +base::string16 PageInfoUI::PermissionDecisionReasonToUIString( |
| + Profile* profile, |
| + const PageInfoUI::PermissionInfo& permission, |
| + const GURL& url) { |
| + int message_id = kInvalidResourceID; |
| + switch (permission.source) { |
| + case content_settings::SettingSource::SETTING_SOURCE_POLICY: |
| + message_id = IDS_WEBSITE_SETTINGS_PERMISSION_SET_BY_POLICY; |
| + break; |
| + case content_settings::SettingSource::SETTING_SOURCE_EXTENSION: |
| + message_id = IDS_WEBSITE_SETTINGS_PERMISSION_SET_BY_EXTENSION; |
| + break; |
| + default: |
| + break; |
| + } |
| + |
| + if (permission.setting == CONTENT_SETTING_BLOCK && |
| + PermissionUtil::IsPermission(permission.type)) { |
| + PermissionResult permission_result = |
| + PermissionManager::Get(profile)->GetPermissionStatus(permission.type, |
| + url, url); |
| + switch (permission_result.source) { |
| + case PermissionStatusSource::MULTIPLE_DISMISSALS: |
| + case PermissionStatusSource::SAFE_BROWSING_BLACKLIST: |
| + message_id = IDS_WEBSITE_SETTINGS_PERMISSION_AUTOMATICALLY_BLOCKED; |
| + break; |
| + default: |
| + break; |
| + } |
| + } |
| + |
| + if (message_id == kInvalidResourceID) |
| + return base::string16(); |
| + return l10n_util::GetStringUTF16(message_id); |
| +} |
| + |
| +// static |
| const gfx::Image& PageInfoUI::GetPermissionIcon(const PermissionInfo& info) { |
| ContentSetting setting = info.setting; |
| if (setting == CONTENT_SETTING_DEFAULT) |