blob: b792ae9169b64311ded3cbd751b2ebc9a280abd9 [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/common/extensions/permissions/permission_message.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
namespace extensions {
//
// PermissionMessage
//
// static
PermissionMessage PermissionMessage::CreateFromHostList(
const std::set<std::string>& hosts) {
std::vector<std::string> host_list(hosts.begin(), hosts.end());
DCHECK(host_list.size());
ID message_id;
string16 message;
string16 details;
switch (host_list.size()) {
case 1:
message_id = kHosts1;
message = l10n_util::GetStringFUTF16(IDS_EXTENSION_PROMPT_WARNING_1_HOST,
UTF8ToUTF16(host_list[0]));
break;
case 2:
message_id = kHosts2;
message = l10n_util::GetStringFUTF16(IDS_EXTENSION_PROMPT_WARNING_2_HOSTS,
UTF8ToUTF16(host_list[0]),
UTF8ToUTF16(host_list[1]));
break;
case 3:
message_id = kHosts3;
message = l10n_util::GetStringFUTF16(IDS_EXTENSION_PROMPT_WARNING_3_HOSTS,
UTF8ToUTF16(host_list[0]),
UTF8ToUTF16(host_list[1]),
UTF8ToUTF16(host_list[2]));
break;
default:
message_id = kHosts4OrMore;
message = l10n_util::GetStringFUTF16(
IDS_EXTENSION_PROMPT_WARNING_HOSTS,
base::IntToString16(host_list.size()));
for (size_t i = 0; i < host_list.size(); ++i) {
if (i > 0)
details += ASCIIToUTF16("\n");
details += l10n_util::GetStringFUTF16(
IDS_EXTENSION_PROMPT_WARNING_HOST_LIST_ENTRY,
UTF8ToUTF16(host_list[i]));
}
}
return PermissionMessage(message_id, message, details);
}
PermissionMessage::PermissionMessage(
PermissionMessage::ID id, const string16& message)
: id_(id),
message_(message) {
}
PermissionMessage::PermissionMessage(
PermissionMessage::ID id, const string16& message, const string16& details)
: id_(id),
message_(message),
details_(details) {
}
PermissionMessage::~PermissionMessage() {}
} // namespace extensions