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

Unified Diff: extensions/common/permissions/permission_set.cc

Issue 1349613003: [Extensions] Un-refcount PermissionSet (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase 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
« no previous file with comments | « extensions/common/permissions/permission_set.h ('k') | extensions/common/permissions/permissions_data.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/common/permissions/permission_set.cc
diff --git a/extensions/common/permissions/permission_set.cc b/extensions/common/permissions/permission_set.cc
index 5cd8d05ec77962cb99fd9bfa7d215163cd2c474d..a3e3f4144f6fd1f3e5bd818d5f8db4993ade0b53 100644
--- a/extensions/common/permissions/permission_set.cc
+++ b/extensions/common/permissions/permission_set.cc
@@ -43,8 +43,10 @@ PermissionSet::PermissionSet(
InitEffectiveHosts();
}
+PermissionSet::~PermissionSet() {}
+
// static
-scoped_refptr<const PermissionSet> PermissionSet::CreateDifference(
+scoped_ptr<const PermissionSet> PermissionSet::CreateDifference(
const PermissionSet& set1,
const PermissionSet& set2) {
APIPermissionSet apis;
@@ -61,12 +63,12 @@ scoped_refptr<const PermissionSet> PermissionSet::CreateDifference(
URLPatternSet scriptable_hosts = URLPatternSet::CreateDifference(
set1.scriptable_hosts(), set2.scriptable_hosts());
- return make_scoped_refptr(new PermissionSet(
- apis, manifest_permissions, explicit_hosts, scriptable_hosts));
+ return make_scoped_ptr(new PermissionSet(apis, manifest_permissions,
+ explicit_hosts, scriptable_hosts));
}
// static
-scoped_refptr<const PermissionSet> PermissionSet::CreateIntersection(
+scoped_ptr<const PermissionSet> PermissionSet::CreateIntersection(
const PermissionSet& set1,
const PermissionSet& set2) {
APIPermissionSet apis;
@@ -82,12 +84,12 @@ scoped_refptr<const PermissionSet> PermissionSet::CreateIntersection(
URLPatternSet scriptable_hosts = URLPatternSet::CreateSemanticIntersection(
set1.scriptable_hosts(), set2.scriptable_hosts());
- return new PermissionSet(apis, manifest_permissions,
- explicit_hosts, scriptable_hosts);
+ return make_scoped_ptr(new PermissionSet(apis, manifest_permissions,
+ explicit_hosts, scriptable_hosts));
}
// static
-scoped_refptr<const PermissionSet> PermissionSet::CreateUnion(
+scoped_ptr<const PermissionSet> PermissionSet::CreateUnion(
const PermissionSet& set1,
const PermissionSet& set2) {
APIPermissionSet apis;
@@ -104,8 +106,8 @@ scoped_refptr<const PermissionSet> PermissionSet::CreateUnion(
URLPatternSet scriptable_hosts = URLPatternSet::CreateUnion(
set1.scriptable_hosts(), set2.scriptable_hosts());
- return new PermissionSet(apis, manifest_permissions,
- explicit_hosts, scriptable_hosts);
+ return make_scoped_ptr(new PermissionSet(apis, manifest_permissions,
+ explicit_hosts, scriptable_hosts));
}
bool PermissionSet::operator==(
@@ -120,6 +122,10 @@ bool PermissionSet::operator!=(const PermissionSet& rhs) const {
return !(*this == rhs);
}
+scoped_ptr<const PermissionSet> PermissionSet::Clone() const {
+ return make_scoped_ptr(new PermissionSet(*this));
+}
+
bool PermissionSet::Contains(const PermissionSet& set) const {
return apis_.Contains(set.apis()) &&
manifest_permissions_.Contains(set.manifest_permissions()) &&
@@ -218,7 +224,13 @@ bool PermissionSet::HasEffectiveFullAccess() const {
return false;
}
-PermissionSet::~PermissionSet() {}
+PermissionSet::PermissionSet(const PermissionSet& permissions)
+ : apis_(permissions.apis_),
+ manifest_permissions_(permissions.manifest_permissions_),
+ explicit_hosts_(permissions.explicit_hosts_),
+ scriptable_hosts_(permissions.scriptable_hosts_),
+ effective_hosts_(permissions.effective_hosts_),
+ should_warn_all_hosts_(permissions.should_warn_all_hosts_) {}
void PermissionSet::InitImplicitPermissions() {
// The downloads permission implies the internal version as well.
« no previous file with comments | « extensions/common/permissions/permission_set.h ('k') | extensions/common/permissions/permissions_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698