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

Unified Diff: chrome/browser/extensions/api/permissions/permissions_api.cc

Issue 12209094: Support requesting subsets of host permissions using the permissions API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 10 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/browser/extensions/api/permissions/permissions_api.cc
diff --git a/chrome/browser/extensions/api/permissions/permissions_api.cc b/chrome/browser/extensions/api/permissions/permissions_api.cc
index 910bb61ac84176a6ef49beec64635a070f17d99b..6492b20eaa369a4e5b7a82ed691b93b1de7030d0 100644
--- a/chrome/browser/extensions/api/permissions/permissions_api.cc
+++ b/chrome/browser/extensions/api/permissions/permissions_api.cc
@@ -68,7 +68,8 @@ bool PermissionsContainsFunction::RunImpl() {
return false;
results_ = Contains::Results::Create(
- GetExtension()->GetActivePermissions()->Contains(*permissions));
+ GetExtension()->GetActivePermissions()->ContainsOrEncompasses(
+ *permissions));
return true;
}
@@ -110,7 +111,6 @@ bool PermissionsRemoveFunction::RunImpl() {
PermissionSet::CreateIntersection(permissions.get(), required));
if (!intersection->IsEmpty()) {
error_ = kCantRemoveRequiredPermissionsError;
- results_ = Remove::Results::Create(false);
return false;
}
@@ -159,7 +159,7 @@ bool PermissionsRequestFunction::RunImpl() {
}
scoped_ptr<Request::Params> params(Request::Params::Create(*args_));
- EXTENSION_FUNCTION_VALIDATE(params.get());
+ EXTENSION_FUNCTION_VALIDATE(params);
ExtensionPrefs* prefs = ExtensionSystem::Get(profile_)->extension_prefs();
@@ -189,10 +189,9 @@ bool PermissionsRequestFunction::RunImpl() {
requested_permissions_.get());
// The requested permissions must be defined as optional in the manifest.
- if (!GetExtension()->optional_permission_set()->Contains(
+ if (!GetExtension()->optional_permission_set()->ContainsOrEncompasses(
*manifest_required_requested_permissions)) {
error_ = kNotInOptionalPermissionsError;
- results_ = Request::Results::Create(false);
return false;
}
@@ -200,7 +199,7 @@ bool PermissionsRequestFunction::RunImpl() {
// of the granted permissions set.
scoped_refptr<const PermissionSet> granted =
prefs->GetGrantedPermissions(GetExtension()->id());
- if (granted.get() && granted->Contains(*requested_permissions_)) {
+ if (granted && granted->ContainsOrEncompasses(*requested_permissions_)) {
PermissionsUpdater perms_updater(profile());
perms_updater.AddPermissions(GetExtension(), requested_permissions_.get());
results_ = Request::Results::Create(true);

Powered by Google App Engine
This is Rietveld 408576698