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..df315f1d3ae3f992c123dacc3401a02272db86b4 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,14 @@ base::string16 PageInfoUI::PermissionActionToUIString( |
const int* button_text_ids = NULL; |
switch (source) { |
case content_settings::SETTING_SOURCE_USER: |
- if (setting == CONTENT_SETTING_DEFAULT) |
+ 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 +258,48 @@ 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_PAGE_INFO_PERMISSION_SET_BY_POLICY; |
+ break; |
+ case content_settings::SettingSource::SETTING_SOURCE_EXTENSION: |
+ message_id = IDS_PAGE_INFO_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_PAGE_INFO_PERMISSION_AUTOMATICALLY_BLOCKED; |
+ break; |
+ default: |
+ break; |
+ } |
+ } |
+ |
+ if (message_id == kInvalidResourceID) |
+ return base::string16(); |
+ return l10n_util::GetStringUTF16(message_id); |
+} |
+ |
+// static |
+SkColor PageInfoUI::GetPermissionDecisionTextColor() { |
+ return SK_ColorGRAY; |
+} |
+ |
+// static |
const gfx::Image& PageInfoUI::GetPermissionIcon(const PermissionInfo& info) { |
ContentSetting setting = info.setting; |
if (setting == CONTENT_SETTING_DEFAULT) |