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 e27912a908a9e5424dce11b35c7146a962efc58f..da393353a981fe5eccef4fa023ac8e1d1f4cdf71 100644 |
--- a/chrome/browser/extensions/api/permissions/permissions_api.cc |
+++ b/chrome/browser/extensions/api/permissions/permissions_api.cc |
@@ -56,7 +56,7 @@ bool PermissionsContainsFunction::RunSync() { |
scoped_ptr<Contains::Params> params(Contains::Params::Create(*args_)); |
EXTENSION_FUNCTION_VALIDATE(params); |
- scoped_refptr<const PermissionSet> permissions = helpers::UnpackPermissionSet( |
+ scoped_ptr<const PermissionSet> permissions = helpers::UnpackPermissionSet( |
params->permissions, |
ExtensionPrefs::Get(GetProfile())->AllowFileAccess(extension_->id()), |
&error_); |
@@ -65,13 +65,13 @@ bool PermissionsContainsFunction::RunSync() { |
results_ = Contains::Results::Create( |
extension()->permissions_data()->active_permissions()->Contains( |
- *permissions.get())); |
+ *permissions)); |
return true; |
} |
bool PermissionsGetAllFunction::RunSync() { |
scoped_ptr<Permissions> permissions = helpers::PackPermissionSet( |
- extension()->permissions_data()->active_permissions().get()); |
+ extension()->permissions_data()->active_permissions()); |
results_ = GetAll::Results::Create(*permissions); |
return true; |
} |
@@ -80,7 +80,7 @@ bool PermissionsRemoveFunction::RunSync() { |
scoped_ptr<Remove::Params> params(Remove::Params::Create(*args_)); |
EXTENSION_FUNCTION_VALIDATE(params); |
- scoped_refptr<const PermissionSet> permissions = helpers::UnpackPermissionSet( |
+ scoped_ptr<const PermissionSet> permissions = helpers::UnpackPermissionSet( |
params->permissions, |
ExtensionPrefs::Get(GetProfile())->AllowFileAccess(extension_->id()), |
&error_); |
@@ -103,12 +103,12 @@ bool PermissionsRemoveFunction::RunSync() { |
// optional and required (and should assume its required), so we need both of |
// these checks. |
// TODO(devlin): *Why* do we support that? Should be a load error. |
- scoped_refptr<const PermissionSet> optional = |
+ const PermissionSet* optional = |
PermissionsParser::GetOptionalPermissions(extension()); |
- scoped_refptr<const PermissionSet> required = |
+ const PermissionSet* required = |
PermissionsParser::GetRequiredPermissions(extension()); |
if (!optional->Contains(*permissions) || |
- !scoped_refptr<const PermissionSet>( |
+ !scoped_ptr<const PermissionSet>( |
PermissionSet::CreateIntersection(*permissions, *required)) |
->IsEmpty()) { |
error_ = kCantRemoveRequiredPermissionsError; |
@@ -192,7 +192,7 @@ bool PermissionsRequestFunction::RunAsync() { |
// The requested permissions must be defined as optional in the manifest. |
if (!PermissionsParser::GetOptionalPermissions(extension()) |
- ->Contains(*requested_permissions_.get())) { |
+ ->Contains(*requested_permissions_)) { |
error_ = kNotInOptionalPermissionsError; |
return false; |
} |
@@ -200,17 +200,17 @@ bool PermissionsRequestFunction::RunAsync() { |
// Automatically declines api permissions requests, which are blocked by |
// enterprise policy. |
if (!ExtensionManagementFactory::GetForBrowserContext(GetProfile()) |
- ->IsPermissionSetAllowed(extension(), requested_permissions_)) { |
+ ->IsPermissionSetAllowed(extension(), *requested_permissions_)) { |
error_ = kBlockedByEnterprisePolicy; |
return false; |
} |
// We don't need to prompt the user if the requested permissions are a subset |
// of the granted permissions set. |
- scoped_refptr<const PermissionSet> granted = |
+ scoped_ptr<const PermissionSet> granted = |
ExtensionPrefs::Get(GetProfile()) |
->GetGrantedPermissions(extension()->id()); |
- if (granted.get() && granted->Contains(*requested_permissions_.get())) { |
+ if (granted.get() && granted->Contains(*requested_permissions_)) { |
PermissionsUpdater perms_updater(GetProfile()); |
perms_updater.AddPermissions(extension(), requested_permissions_.get()); |
results_ = Request::Results::Create(true); |
@@ -224,7 +224,7 @@ bool PermissionsRequestFunction::RunAsync() { |
// Filter out the active permissions. |
requested_permissions_ = PermissionSet::CreateDifference( |
- *requested_permissions_.get(), |
+ *requested_permissions_, |
*extension()->permissions_data()->active_permissions()); |
AddRef(); // Balanced in InstallUIProceed() / InstallUIAbort(). |
@@ -248,8 +248,8 @@ bool PermissionsRequestFunction::RunAsync() { |
} else { |
CHECK_EQ(DO_NOT_SKIP, auto_confirm_for_tests); |
install_ui_.reset(new ExtensionInstallPrompt(GetAssociatedWebContents())); |
- install_ui_->ConfirmPermissions( |
- this, extension(), requested_permissions_.get()); |
+ install_ui_->ConfirmPermissions(this, extension(), |
+ requested_permissions_->Clone()); |
} |
return true; |