| OLD | NEW | 
|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "extensions/common/permissions/permission_message_provider.h" | 5 #include "extensions/common/permissions/permission_message_provider.h" | 
| 6 | 6 | 
|  | 7 #include "base/metrics/field_trial.h" | 
| 7 #include "base/strings/string_split.h" | 8 #include "base/strings/string_split.h" | 
| 8 #include "extensions/common/extensions_client.h" | 9 #include "extensions/common/extensions_client.h" | 
| 9 | 10 | 
| 10 namespace extensions { | 11 namespace extensions { | 
| 11 | 12 | 
|  | 13 namespace { | 
|  | 14 | 
|  | 15 ForceForTesting g_force_permission_system_for_testing = | 
|  | 16     ForceForTesting::DONT_FORCE; | 
|  | 17 | 
|  | 18 bool IsNewPermissionMessageSystemEnabled() { | 
|  | 19   if (g_force_permission_system_for_testing != ForceForTesting::DONT_FORCE) | 
|  | 20     return g_force_permission_system_for_testing == ForceForTesting::FORCE_NEW; | 
|  | 21   const std::string group_name = | 
|  | 22       base::FieldTrialList::FindFullName("PermissionMessageSystem"); | 
|  | 23   return group_name == "NewSystem"; | 
|  | 24 } | 
|  | 25 | 
|  | 26 }  // namespace | 
|  | 27 | 
|  | 28 void ForcePermissionMessageSystemForTesting( | 
|  | 29     ForceForTesting force) { | 
|  | 30   g_force_permission_system_for_testing = force; | 
|  | 31 } | 
|  | 32 | 
| 12 PermissionMessageString::PermissionMessageString( | 33 PermissionMessageString::PermissionMessageString( | 
| 13     const CoalescedPermissionMessage& message) | 34     const CoalescedPermissionMessage& message) | 
| 14     : message(message.message()), submessages(message.submessages()) { | 35     : message(message.message()), submessages(message.submessages()) { | 
| 15 } | 36 } | 
| 16 | 37 | 
|  | 38 PermissionMessageString::PermissionMessageString(const base::string16& message) | 
|  | 39     : message(message) { | 
|  | 40 } | 
|  | 41 | 
|  | 42 PermissionMessageString::PermissionMessageString( | 
|  | 43     const base::string16& message, | 
|  | 44     const std::vector<base::string16>& submessages) | 
|  | 45     : message(message), submessages(submessages) { | 
|  | 46 } | 
|  | 47 | 
| 17 PermissionMessageString::PermissionMessageString(const base::string16& message, | 48 PermissionMessageString::PermissionMessageString(const base::string16& message, | 
| 18                                                  const base::string16& details) | 49                                                  const base::string16& details) | 
| 19     : message(message) { | 50     : message(message) { | 
| 20   base::SplitString(details, base::char16('\n'), &submessages); | 51   base::SplitString(details, base::char16('\n'), &submessages); | 
| 21 } | 52 } | 
| 22 | 53 | 
| 23 PermissionMessageString::~PermissionMessageString() { | 54 PermissionMessageString::~PermissionMessageString() { | 
| 24 } | 55 } | 
| 25 | 56 | 
| 26 // static | 57 // static | 
| 27 const PermissionMessageProvider* PermissionMessageProvider::Get() { | 58 const PermissionMessageProvider* PermissionMessageProvider::Get() { | 
| 28   return &(ExtensionsClient::Get()->GetPermissionMessageProvider()); | 59   return &(ExtensionsClient::Get()->GetPermissionMessageProvider()); | 
| 29 } | 60 } | 
| 30 | 61 | 
|  | 62 PermissionMessageStrings | 
|  | 63 PermissionMessageProvider::GetPermissionMessageStrings( | 
|  | 64     const PermissionSet* permissions, | 
|  | 65     Manifest::Type extension_type) const { | 
|  | 66   PermissionMessageStrings strings; | 
|  | 67   if (IsNewPermissionMessageSystemEnabled()) { | 
|  | 68     CoalescedPermissionMessages messages = GetCoalescedPermissionMessages( | 
|  | 69         GetAllPermissionIDs(permissions, extension_type)); | 
|  | 70     for (const CoalescedPermissionMessage& msg : messages) | 
|  | 71       strings.push_back(PermissionMessageString(msg)); | 
|  | 72   } else { | 
|  | 73     std::vector<base::string16> messages = | 
|  | 74         GetLegacyWarningMessages(permissions, extension_type); | 
|  | 75     std::vector<base::string16> details = | 
|  | 76         GetLegacyWarningMessagesDetails(permissions, extension_type); | 
|  | 77     DCHECK_EQ(messages.size(), details.size()); | 
|  | 78     for (size_t i = 0; i < messages.size(); i++) | 
|  | 79       strings.push_back(PermissionMessageString(messages[i], details[i])); | 
|  | 80   } | 
|  | 81   return strings; | 
|  | 82 } | 
|  | 83 | 
| 31 }  // namespace extensions | 84 }  // namespace extensions | 
| OLD | NEW | 
|---|