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

Unified Diff: chrome/common/extensions/permissions/chrome_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: chrome/common/extensions/permissions/chrome_permission_message_provider.cc
diff --git a/chrome/common/extensions/permissions/chrome_permission_message_provider.cc b/chrome/common/extensions/permissions/chrome_permission_message_provider.cc
index 0ed371e7c69f4ede0e834912089baa19d4de551a..7bf445fb29b7c1d7b75a3c9abe11794d1f09475f 100644
--- a/chrome/common/extensions/permissions/chrome_permission_message_provider.cc
+++ b/chrome/common/extensions/permissions/chrome_permission_message_provider.cc
@@ -25,12 +25,6 @@ namespace extensions {
namespace {
-bool IsNewPermissionMessageSystemEnabled() {
- const std::string group_name =
- base::FieldTrialList::FindFullName("PermissionMessageSystem");
- return group_name == "NewSystem";
-}
-
typedef std::set<PermissionMessage> PermissionMsgSet;
template<typename T>
@@ -88,7 +82,7 @@ ChromePermissionMessageProvider::ChromePermissionMessageProvider() {
ChromePermissionMessageProvider::~ChromePermissionMessageProvider() {
}
-PermissionMessages ChromePermissionMessageProvider::GetPermissionMessages(
+PermissionMessages ChromePermissionMessageProvider::GetLegacyPermissionMessages(
const PermissionSet* permissions,
Manifest::Type extension_type) const {
PermissionMessages messages;
@@ -143,7 +137,8 @@ PermissionMessages ChromePermissionMessageProvider::GetPermissionMessages(
PermissionMsgSet host_msgs =
GetHostPermissionMessages(permissions, NULL, extension_type);
- PermissionMsgSet api_msgs = GetAPIPermissionMessages(permissions, NULL);
+ PermissionMsgSet api_msgs =
+ GetAPIPermissionMessages(permissions, NULL, extension_type);
PermissionMsgSet manifest_permission_msgs =
GetManifestPermissionMessages(permissions, NULL);
messages.insert(messages.end(), host_msgs.begin(), host_msgs.end());
@@ -162,35 +157,13 @@ PermissionMessages ChromePermissionMessageProvider::GetPermissionMessages(
return messages;
}
-PermissionMessageStrings
-ChromePermissionMessageProvider::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;
-}
-
PermissionMessageIDs
ChromePermissionMessageProvider::GetLegacyPermissionMessageIDs(
const PermissionSet* permissions,
Manifest::Type extension_type) const {
PermissionMessageIDs ids;
for (const PermissionMessage& msg :
- GetPermissionMessages(permissions, extension_type)) {
+ GetLegacyPermissionMessages(permissions, extension_type)) {
ids.push_back(msg.id());
}
return ids;
@@ -267,7 +240,7 @@ bool ChromePermissionMessageProvider::IsPrivilegeIncrease(
if (IsHostPrivilegeIncrease(old_permissions, new_permissions, extension_type))
return true;
- if (IsAPIPrivilegeIncrease(old_permissions, new_permissions))
+ if (IsAPIPrivilegeIncrease(old_permissions, new_permissions, extension_type))
return true;
if (IsManifestPermissionPrivilegeIncrease(old_permissions, new_permissions))
@@ -280,7 +253,7 @@ PermissionIDSet ChromePermissionMessageProvider::GetAllPermissionIDs(
const PermissionSet* permissions,
Manifest::Type extension_type) const {
PermissionIDSet permission_ids;
- GetAPIPermissionMessages(permissions, &permission_ids);
+ GetAPIPermissionMessages(permissions, &permission_ids, extension_type);
GetManifestPermissionMessages(permissions, &permission_ids);
GetHostPermissionMessages(permissions, &permission_ids, extension_type);
return permission_ids;
@@ -289,7 +262,8 @@ PermissionIDSet ChromePermissionMessageProvider::GetAllPermissionIDs(
std::set<PermissionMessage>
ChromePermissionMessageProvider::GetAPIPermissionMessages(
const PermissionSet* permissions,
- PermissionIDSet* permission_ids) const {
+ PermissionIDSet* permission_ids,
+ Manifest::Type extension_type) const {
PermissionMsgSet messages;
for (APIPermissionSet::const_iterator permission_it =
permissions->apis().begin();
@@ -308,7 +282,8 @@ ChromePermissionMessageProvider::GetAPIPermissionMessages(
// display only the "<all_urls>" warning message if both permissions
// are required.
if (permissions->ShouldWarnAllHosts()) {
- if (permission_ids != NULL)
+ // Platform apps don't show hosts warnings. See crbug.com/255229.
+ if (permission_ids != NULL && extension_type != Manifest::TYPE_PLATFORM_APP)
permission_ids->insert(APIPermission::kHostsAll);
messages.erase(
PermissionMessage(
@@ -384,7 +359,7 @@ void ChromePermissionMessageProvider::CoalesceWarningMessages(
std::vector<base::string16>* message_strings,
std::vector<base::string16>* message_details_strings) const {
PermissionMessages messages =
- GetPermissionMessages(permissions, extension_type);
+ GetLegacyPermissionMessages(permissions, extension_type);
// WARNING: When modifying a coalescing rule in this list, be sure to also
// modify the corresponding rule in
@@ -494,14 +469,15 @@ void ChromePermissionMessageProvider::CoalesceWarningMessages(
bool ChromePermissionMessageProvider::IsAPIPrivilegeIncrease(
const PermissionSet* old_permissions,
- const PermissionSet* new_permissions) const {
+ const PermissionSet* new_permissions,
+ Manifest::Type extension_type) const {
if (new_permissions == NULL)
return false;
PermissionMsgSet old_warnings =
- GetAPIPermissionMessages(old_permissions, NULL);
+ GetAPIPermissionMessages(old_permissions, NULL, extension_type);
PermissionMsgSet new_warnings =
- GetAPIPermissionMessages(new_permissions, NULL);
+ GetAPIPermissionMessages(new_permissions, NULL, extension_type);
PermissionMsgSet delta_warnings =
base::STLSetDifference<PermissionMsgSet>(new_warnings, old_warnings);

Powered by Google App Engine
This is Rietveld 408576698