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

Unified 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698