Index: extensions/common/permissions/permission_message_util.cc |
diff --git a/extensions/common/permissions/permission_message_util.cc b/extensions/common/permissions/permission_message_util.cc |
index e38208b979c895c0378d1dc59bf6a37a00d1d5c6..e4c1d09d742fb184ce011bf083c00e62954bec18 100644 |
--- a/extensions/common/permissions/permission_message_util.cc |
+++ b/extensions/common/permissions/permission_message_util.cc |
@@ -4,6 +4,7 @@ |
#include "extensions/common/permissions/permission_message_util.h" |
+#include "base/macros.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/string_split.h" |
#include "base/strings/utf_string_conversions.h" |
@@ -39,9 +40,10 @@ bool RcdBetterThan(const std::string& a, const std::string& b) { |
namespace permission_message_util { |
-PermissionMessage CreateFromHostList(const std::set<std::string>& hosts) { |
+PermissionMessage CreateFromHostList(const std::set<std::string>& hosts, |
+ PermissionMessageProperties properties) { |
typedef std::pair<PermissionMessage::ID, int> MsgPair; |
- const MsgPair kMessagesList[] = { |
+ static const MsgPair kReadWriteMessagesList[] = { |
std::make_pair(PermissionMessage::kHosts1, |
IDS_EXTENSION_PROMPT_WARNING_1_HOST), |
std::make_pair(PermissionMessage::kHosts2, |
@@ -50,8 +52,23 @@ PermissionMessage CreateFromHostList(const std::set<std::string>& hosts) { |
IDS_EXTENSION_PROMPT_WARNING_3_HOSTS), |
std::make_pair(PermissionMessage::kHosts4OrMore, |
IDS_EXTENSION_PROMPT_WARNING_HOSTS_LIST)}; |
- |
- int host_msg_id = hosts.size() < arraysize(kMessagesList) |
+ static const MsgPair kReadOnlyMessagesList[] = { |
+ std::make_pair(PermissionMessage::kHosts1ReadOnly, |
+ IDS_EXTENSION_PROMPT_WARNING_1_HOST_READ_ONLY), |
+ std::make_pair(PermissionMessage::kHosts2ReadOnly, |
+ IDS_EXTENSION_PROMPT_WARNING_2_HOSTS_READ_ONLY), |
+ std::make_pair(PermissionMessage::kHosts3ReadOnly, |
+ IDS_EXTENSION_PROMPT_WARNING_3_HOSTS_READ_ONLY), |
+ std::make_pair(PermissionMessage::kHosts4OrMoreReadOnly, |
+ IDS_EXTENSION_PROMPT_WARNING_HOSTS_LIST_READ_ONLY)}; |
+ COMPILE_ASSERT( |
+ arraysize(kReadWriteMessagesList) == arraysize(kReadOnlyMessagesList), |
+ message_lists_different_size); |
+ static const int kNumMessages = arraysize(kReadWriteMessagesList); |
+ const MsgPair(&messages_list)[kNumMessages] = |
+ properties == kReadOnly ? kReadOnlyMessagesList : kReadWriteMessagesList; |
+ |
+ int host_msg_id = hosts.size() < kNumMessages |
? IDS_EXTENSION_PROMPT_WARNING_HOST_AND_SUBDOMAIN |
: IDS_EXTENSION_PROMPT_WARNING_HOST_AND_SUBDOMAIN_LIST; |
std::vector<base::string16> host_list; |
@@ -67,11 +84,11 @@ PermissionMessage CreateFromHostList(const std::set<std::string>& hosts) { |
} |
DCHECK(host_list.size()); |
- if (host_list.size() < arraysize(kMessagesList)) { |
+ if (host_list.size() < kNumMessages) { |
return PermissionMessage( |
- kMessagesList[host_list.size() - 1].first, |
- l10n_util::GetStringFUTF16( |
- kMessagesList[host_list.size() - 1].second, host_list, NULL)); |
+ messages_list[host_list.size() - 1].first, |
+ l10n_util::GetStringFUTF16(messages_list[host_list.size() - 1].second, |
+ host_list, NULL)); |
} |
base::string16 details; |
@@ -81,9 +98,9 @@ PermissionMessage CreateFromHostList(const std::set<std::string>& hosts) { |
details += host_list[i]; |
} |
return PermissionMessage( |
- kMessagesList[arraysize(kMessagesList) - 1].first, |
+ messages_list[arraysize(messages_list) - 1].first, |
l10n_util::GetStringUTF16( |
- kMessagesList[arraysize(kMessagesList) - 1].second), |
+ messages_list[arraysize(messages_list) - 1].second), |
details); |
} |