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 070eabd2f0285cf3eb0efc8b50f8fa23f07acfa4..343b7e649da38b262128e2a287d72f3955c9f845 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/utf_string_conversions.h" |
#include "extensions/common/permissions/permission_message.h" |
@@ -37,9 +38,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, |
@@ -48,8 +50,24 @@ 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), |
+ "Different numbers of entries in kReadWriteMessagesList vs " |
+ "kReadWriteMessagesList"); |
+ static const int kNumMessages = arraysize(kReadWriteMessagesList); |
+ const MsgPair(&messages_list)[kNumMessages] = |
aboxhall
2014/07/25 19:06:31
Before you ask, this is how clang-format formatted
|
+ properties & kReadOnly ? kReadOnlyMessagesList : kReadWriteMessagesList; |
not at google - send to devlin
2014/07/25 20:40:03
shouldn't this be "== kReadOnly"?
aboxhall
2014/07/25 20:54:22
Ugh yeah, I think I was imagining it was a bitmask
|
+ |
+ 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; |
@@ -65,11 +83,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, |
+ messages_list[host_list.size() - 1].first, |
l10n_util::GetStringFUTF16( |
- kMessagesList[host_list.size() - 1].second, host_list, NULL)); |
+ messages_list[host_list.size() - 1].second, host_list, NULL)); |
} |
base::string16 details; |
@@ -80,9 +98,9 @@ PermissionMessage CreateFromHostList(const std::set<std::string>& hosts) { |
IDS_EXTENSION_PROMPT_WARNING_HOST_LIST_ENTRY, 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); |
} |