blob: 518136b66cd19ad5981b4ef2079c19dbd385eba5 [file] [log] [blame]
// Copyright 2019 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 <string>
#include <vector>
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/extensions/install_prompt_permissions.h"
#include "extensions/common/manifest.h"
#include "extensions/common/permissions/permission_message_provider.h"
#include "extensions/common/permissions/permission_set.h"
#include "extensions/common/permissions/permissions_data.h"
namespace extensions {
InstallPromptPermissions::InstallPromptPermissions() = default;
InstallPromptPermissions::~InstallPromptPermissions() = default;
void InstallPromptPermissions::LoadFromPermissionSet(
const extensions::PermissionSet* permissions_set,
const extensions::Manifest::Type type) {
const extensions::PermissionMessageProvider* message_provider =
extensions::PermissionMessageProvider::Get();
const extensions::PermissionMessages& permissions_messages =
message_provider->GetPermissionMessages(
message_provider->GetAllPermissionIDs(*permissions_set, type));
AddPermissionMessages(permissions_messages);
}
void InstallPromptPermissions::AddPermissionMessages(
const extensions::PermissionMessages& permissions_messages) {
for (const extensions::PermissionMessage& msg : permissions_messages) {
permissions.push_back(msg.message());
// Add a dash to the front of each permission detail.
std::u16string details_str;
if (!msg.submessages().empty()) {
std::vector<std::u16string> detail_lines_with_bullets;
for (const auto& detail_line : msg.submessages()) {
detail_lines_with_bullets.push_back(u"- " + detail_line);
}
details_str = base::JoinString(detail_lines_with_bullets, u"\n");
}
details.push_back(details_str);
is_showing_details.push_back(false);
}
}
} // namespace extensions