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

Unified Diff: extensions/common/manifest_handlers/permissions_parser.cc

Issue 1349613003: [Extensions] Un-refcount PermissionSet (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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/manifest_handlers/permissions_parser.cc
diff --git a/extensions/common/manifest_handlers/permissions_parser.cc b/extensions/common/manifest_handlers/permissions_parser.cc
index e221ed36e78ff81af6dfacb84e06f2b45b1ec2be..1aa2e606766d39e46c6a10c460cb9e95b0c756ba 100644
--- a/extensions/common/manifest_handlers/permissions_parser.cc
+++ b/extensions/common/manifest_handlers/permissions_parser.cc
@@ -32,16 +32,15 @@ namespace keys = manifest_keys;
namespace errors = manifest_errors;
struct ManifestPermissions : public Extension::ManifestData {
- ManifestPermissions(scoped_refptr<const PermissionSet> permissions);
+ ManifestPermissions(scoped_ptr<const PermissionSet> permissions);
~ManifestPermissions() override;
- scoped_refptr<const PermissionSet> permissions;
+ scoped_ptr<const PermissionSet> permissions;
};
ManifestPermissions::ManifestPermissions(
- scoped_refptr<const PermissionSet> permissions)
- : permissions(permissions) {
-}
+ scoped_ptr<const PermissionSet> permissions)
+ : permissions(permissions.Pass()) {}
ManifestPermissions::~ManifestPermissions() {
}
@@ -267,21 +266,21 @@ void PermissionsParser::Finalize(Extension* extension) {
ManifestHandler::AddExtensionInitialRequiredPermissions(
extension, &initial_required_permissions_->manifest_permissions);
- scoped_refptr<const PermissionSet> required_permissions(
+ scoped_ptr<const PermissionSet> required_permissions(
new PermissionSet(initial_required_permissions_->api_permissions,
initial_required_permissions_->manifest_permissions,
initial_required_permissions_->host_permissions,
initial_required_permissions_->scriptable_hosts));
- extension->SetManifestData(keys::kPermissions,
- new ManifestPermissions(required_permissions));
-
- scoped_refptr<const PermissionSet> optional_permissions(
- new PermissionSet(initial_optional_permissions_->api_permissions,
- initial_optional_permissions_->manifest_permissions,
- initial_optional_permissions_->host_permissions,
- URLPatternSet()));
- extension->SetManifestData(keys::kOptionalPermissions,
- new ManifestPermissions(optional_permissions));
+ extension->SetManifestData(
+ keys::kPermissions, new ManifestPermissions(required_permissions.Pass()));
+
+ scoped_ptr<const PermissionSet> optional_permissions(new PermissionSet(
+ initial_optional_permissions_->api_permissions,
+ initial_optional_permissions_->manifest_permissions,
+ initial_optional_permissions_->host_permissions, URLPatternSet()));
+ extension->SetManifestData(
+ keys::kOptionalPermissions,
+ new ManifestPermissions(optional_permissions.Pass()));
}
// static
@@ -319,20 +318,21 @@ void PermissionsParser::SetScriptableHosts(
}
// static
-scoped_refptr<const PermissionSet> PermissionsParser::GetRequiredPermissions(
+const PermissionSet* PermissionsParser::GetRequiredPermissions(
const Extension* extension) {
DCHECK(extension->GetManifestData(keys::kPermissions));
return static_cast<const ManifestPermissions*>(
- extension->GetManifestData(keys::kPermissions))->permissions;
+ extension->GetManifestData(keys::kPermissions))
+ ->permissions.get();
}
// static
-scoped_refptr<const PermissionSet> PermissionsParser::GetOptionalPermissions(
+const PermissionSet* PermissionsParser::GetOptionalPermissions(
const Extension* extension) {
DCHECK(extension->GetManifestData(keys::kOptionalPermissions));
return static_cast<const ManifestPermissions*>(
extension->GetManifestData(keys::kOptionalPermissions))
- ->permissions;
+ ->permissions.get();
}
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698