| 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 0b2e1a9c038d6fba4e62590ecf20711cab511b6a..070eabd2f0285cf3eb0efc8b50f8fa23f07acfa4 100644
|
| --- a/extensions/common/permissions/permission_message_util.cc
|
| +++ b/extensions/common/permissions/permission_message_util.cc
|
| @@ -38,57 +38,52 @@ bool RcdBetterThan(const std::string& a, const std::string& b) {
|
| namespace permission_message_util {
|
|
|
| PermissionMessage CreateFromHostList(const std::set<std::string>& hosts) {
|
| - std::vector<std::string> host_list(hosts.begin(), hosts.end());
|
| + typedef std::pair<PermissionMessage::ID, int> MsgPair;
|
| + const MsgPair kMessagesList[] = {
|
| + std::make_pair(PermissionMessage::kHosts1,
|
| + IDS_EXTENSION_PROMPT_WARNING_1_HOST),
|
| + std::make_pair(PermissionMessage::kHosts2,
|
| + IDS_EXTENSION_PROMPT_WARNING_2_HOSTS),
|
| + std::make_pair(PermissionMessage::kHosts3,
|
| + 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)
|
| + ? IDS_EXTENSION_PROMPT_WARNING_HOST_AND_SUBDOMAIN
|
| + : IDS_EXTENSION_PROMPT_WARNING_HOST_AND_SUBDOMAIN_LIST;
|
| + std::vector<base::string16> host_list;
|
| + for (std::set<std::string>::const_iterator it = hosts.begin();
|
| + it != hosts.end();
|
| + ++it) {
|
| + std::string host = *it;
|
| + host_list.push_back(
|
| + host[0] == '*' && host[1] == '.'
|
| + ? l10n_util::GetStringFUTF16(host_msg_id,
|
| + base::UTF8ToUTF16(host.erase(0, 2)))
|
| + : base::UTF8ToUTF16(host));
|
| + }
|
| DCHECK(host_list.size());
|
| - PermissionMessage::ID message_id;
|
| - base::string16 message;
|
| - base::string16 details;
|
|
|
| - switch (host_list.size()) {
|
| - case 1:
|
| - message_id = PermissionMessage::kHosts1;
|
| - message = l10n_util::GetStringFUTF16(IDS_EXTENSION_PROMPT_WARNING_1_HOST,
|
| - base::UTF8ToUTF16(host_list[0]));
|
| - break;
|
| - case 2:
|
| - message_id = PermissionMessage::kHosts2;
|
| - message = l10n_util::GetStringFUTF16(IDS_EXTENSION_PROMPT_WARNING_2_HOSTS,
|
| - base::UTF8ToUTF16(host_list[0]),
|
| - base::UTF8ToUTF16(host_list[1]));
|
| - break;
|
| - case 3:
|
| - message_id = PermissionMessage::kHosts3;
|
| - message = l10n_util::GetStringFUTF16(IDS_EXTENSION_PROMPT_WARNING_3_HOSTS,
|
| - base::UTF8ToUTF16(host_list[0]),
|
| - base::UTF8ToUTF16(host_list[1]),
|
| - base::UTF8ToUTF16(host_list[2]));
|
| - break;
|
| - default:
|
| - message_id = PermissionMessage::kHosts4OrMore;
|
| -
|
| - const int kRetainedFilesMessageIDs[6] = {
|
| - IDS_EXTENSION_PROMPT_WARNING_HOSTS_DEFAULT,
|
| - IDS_EXTENSION_PROMPT_WARNING_HOST_SINGULAR,
|
| - IDS_EXTENSION_PROMPT_WARNING_HOSTS_ZERO,
|
| - IDS_EXTENSION_PROMPT_WARNING_HOSTS_TWO,
|
| - IDS_EXTENSION_PROMPT_WARNING_HOSTS_FEW,
|
| - IDS_EXTENSION_PROMPT_WARNING_HOSTS_MANY, };
|
| - std::vector<int> message_ids;
|
| - for (size_t i = 0; i < arraysize(kRetainedFilesMessageIDs); i++) {
|
| - message_ids.push_back(kRetainedFilesMessageIDs[i]);
|
| - }
|
| - message = l10n_util::GetPluralStringFUTF16(message_ids, host_list.size());
|
| -
|
| - for (size_t i = 0; i < host_list.size(); ++i) {
|
| - if (i > 0)
|
| - details += base::ASCIIToUTF16("\n");
|
| - details += l10n_util::GetStringFUTF16(
|
| - IDS_EXTENSION_PROMPT_WARNING_HOST_LIST_ENTRY,
|
| - base::UTF8ToUTF16(host_list[i]));
|
| - }
|
| + if (host_list.size() < arraysize(kMessagesList)) {
|
| + return PermissionMessage(
|
| + kMessagesList[host_list.size() - 1].first,
|
| + l10n_util::GetStringFUTF16(
|
| + kMessagesList[host_list.size() - 1].second, host_list, NULL));
|
| }
|
|
|
| - return PermissionMessage(message_id, message, details);
|
| + base::string16 details;
|
| + for (size_t i = 0; i < host_list.size(); ++i) {
|
| + if (i > 0)
|
| + details += base::ASCIIToUTF16("\n");
|
| + details += l10n_util::GetStringFUTF16(
|
| + IDS_EXTENSION_PROMPT_WARNING_HOST_LIST_ENTRY, host_list[i]);
|
| + }
|
| + return PermissionMessage(
|
| + kMessagesList[arraysize(kMessagesList) - 1].first,
|
| + l10n_util::GetStringUTF16(
|
| + kMessagesList[arraysize(kMessagesList) - 1].second),
|
| + details);
|
| }
|
|
|
| std::set<std::string> GetDistinctHosts(const URLPatternSet& host_patterns,
|
|
|