| Index: extensions/common/permissions/permission_message_provider.cc
|
| diff --git a/extensions/common/permissions/permission_message_provider.cc b/extensions/common/permissions/permission_message_provider.cc
|
| index 80cc582883ee117beddb1c1653b2859acdf79bd6..f194340ed0c517aae5bda34ce102a1545d7729b9 100644
|
| --- a/extensions/common/permissions/permission_message_provider.cc
|
| +++ b/extensions/common/permissions/permission_message_provider.cc
|
| @@ -4,16 +4,47 @@
|
|
|
| #include "extensions/common/permissions/permission_message_provider.h"
|
|
|
| +#include "base/metrics/field_trial.h"
|
| #include "base/strings/string_split.h"
|
| #include "extensions/common/extensions_client.h"
|
|
|
| namespace extensions {
|
|
|
| +namespace {
|
| +
|
| +ForceForTesting g_force_permission_system_for_testing =
|
| + ForceForTesting::DONT_FORCE;
|
| +
|
| +bool IsNewPermissionMessageSystemEnabled() {
|
| + if (g_force_permission_system_for_testing != ForceForTesting::DONT_FORCE)
|
| + return g_force_permission_system_for_testing == ForceForTesting::FORCE_NEW;
|
| + const std::string group_name =
|
| + base::FieldTrialList::FindFullName("PermissionMessageSystem");
|
| + return group_name == "NewSystem";
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +void ForcePermissionMessageSystemForTesting(
|
| + ForceForTesting force) {
|
| + g_force_permission_system_for_testing = force;
|
| +}
|
| +
|
| PermissionMessageString::PermissionMessageString(
|
| const CoalescedPermissionMessage& message)
|
| : message(message.message()), submessages(message.submessages()) {
|
| }
|
|
|
| +PermissionMessageString::PermissionMessageString(const base::string16& message)
|
| + : message(message) {
|
| +}
|
| +
|
| +PermissionMessageString::PermissionMessageString(
|
| + const base::string16& message,
|
| + const std::vector<base::string16>& submessages)
|
| + : message(message), submessages(submessages) {
|
| +}
|
| +
|
| PermissionMessageString::PermissionMessageString(const base::string16& message,
|
| const base::string16& details)
|
| : message(message) {
|
| @@ -28,4 +59,26 @@ const PermissionMessageProvider* PermissionMessageProvider::Get() {
|
| return &(ExtensionsClient::Get()->GetPermissionMessageProvider());
|
| }
|
|
|
| +PermissionMessageStrings
|
| +PermissionMessageProvider::GetPermissionMessageStrings(
|
| + const PermissionSet* permissions,
|
| + Manifest::Type extension_type) const {
|
| + PermissionMessageStrings strings;
|
| + if (IsNewPermissionMessageSystemEnabled()) {
|
| + CoalescedPermissionMessages messages = GetCoalescedPermissionMessages(
|
| + GetAllPermissionIDs(permissions, extension_type));
|
| + for (const CoalescedPermissionMessage& msg : messages)
|
| + strings.push_back(PermissionMessageString(msg));
|
| + } else {
|
| + std::vector<base::string16> messages =
|
| + GetLegacyWarningMessages(permissions, extension_type);
|
| + std::vector<base::string16> details =
|
| + GetLegacyWarningMessagesDetails(permissions, extension_type);
|
| + DCHECK_EQ(messages.size(), details.size());
|
| + for (size_t i = 0; i < messages.size(); i++)
|
| + strings.push_back(PermissionMessageString(messages[i], details[i]));
|
| + }
|
| + return strings;
|
| +}
|
| +
|
| } // namespace extensions
|
|
|