Chromium Code Reviews| 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); |
| } |