Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(134)

Side by Side Diff: extensions/common/permissions/permission_message_provider.cc

Issue 980353003: Extensions: Switch to new permission message system, part I (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698