| Index: extensions/common/permissions/api_permission_set.h
|
| diff --git a/extensions/common/permissions/api_permission_set.h b/extensions/common/permissions/api_permission_set.h
|
| index 9b6f26da35432ff80be0ff89bce6786d386117a8..c5dd2483916b11c7113c6f6be29928d64dcf3e52 100644
|
| --- a/extensions/common/permissions/api_permission_set.h
|
| +++ b/extensions/common/permissions/api_permission_set.h
|
| @@ -5,11 +5,9 @@
|
| #ifndef EXTENSIONS_COMMON_PERMISSIONS_API_PERMISSION_SET_H_
|
| #define EXTENSIONS_COMMON_PERMISSIONS_API_PERMISSION_SET_H_
|
|
|
| -#include <iterator>
|
| -#include <map>
|
|
|
| -#include "base/memory/linked_ptr.h"
|
| #include "extensions/common/permissions/api_permission.h"
|
| +#include "extensions/common/permissions/base_set_operators.h"
|
|
|
| namespace base {
|
| class ListValue;
|
| @@ -18,48 +16,16 @@ class ListValue;
|
| namespace extensions {
|
|
|
| class Extension;
|
| +class APIPermissionSet;
|
|
|
| -typedef std::map<APIPermission::ID,
|
| - linked_ptr<APIPermission> > APIPermissionMap;
|
| +template<>
|
| +struct BaseSetOperatorsTraits<APIPermissionSet> {
|
| + typedef APIPermission ElementType;
|
| + typedef APIPermission::ID ElementIDType;
|
| +};
|
|
|
| -class APIPermissionSet {
|
| +class APIPermissionSet : public BaseSetOperators<APIPermissionSet> {
|
| public:
|
| - class const_iterator :
|
| - public std::iterator<std::input_iterator_tag, const APIPermission*> {
|
| - public:
|
| - const_iterator(const APIPermissionMap::const_iterator& it);
|
| - const_iterator(const const_iterator& ids_it);
|
| -
|
| - const_iterator& operator++() {
|
| - ++it_;
|
| - return *this;
|
| - }
|
| -
|
| - const_iterator operator++(int) {
|
| - const_iterator tmp(it_++);
|
| - return tmp;
|
| - }
|
| -
|
| - bool operator==(const const_iterator& rhs) const {
|
| - return it_ == rhs.it_;
|
| - }
|
| -
|
| - bool operator!=(const const_iterator& rhs) const {
|
| - return it_ != rhs.it_;
|
| - }
|
| -
|
| - const APIPermission* operator*() const {
|
| - return it_->second.get();
|
| - }
|
| -
|
| - const APIPermission* operator->() const {
|
| - return it_->second.get();
|
| - }
|
| -
|
| - private:
|
| - APIPermissionMap::const_iterator it_;
|
| - };
|
| -
|
| enum ParseSource {
|
| // Don't allow internal permissions to be parsed (e.g. entries in the
|
| // "permissions" list in a manifest).
|
| @@ -70,87 +36,16 @@ class APIPermissionSet {
|
| kAllowInternalPermissions,
|
| };
|
|
|
| - APIPermissionSet();
|
| -
|
| - APIPermissionSet(const APIPermissionSet& set);
|
| -
|
| - ~APIPermissionSet();
|
| -
|
| - const_iterator begin() const {
|
| - return const_iterator(map().begin());
|
| - }
|
| -
|
| - const_iterator end() const {
|
| - return map().end();
|
| - }
|
| -
|
| - const_iterator find(APIPermission::ID id) const {
|
| - return map().find(id);
|
| - }
|
| -
|
| - const APIPermissionMap& map() const {
|
| - return map_;
|
| - }
|
| -
|
| - APIPermissionMap& map() {
|
| - return map_;
|
| - }
|
| -
|
| - void clear() {
|
| - map_.clear();
|
| - }
|
| -
|
| - size_t count(APIPermission::ID id) const {
|
| - return map().count(id);
|
| - }
|
| -
|
| - bool empty() const {
|
| - return map().empty();
|
| - }
|
| -
|
| - size_t erase(APIPermission::ID id) {
|
| - return map().erase(id);
|
| - }
|
| -
|
| - size_t size() const {
|
| - return map().size();
|
| - }
|
| -
|
| - APIPermissionSet& operator=(const APIPermissionSet& rhs);
|
| -
|
| - bool operator==(const APIPermissionSet& rhs) const;
|
| -
|
| - bool operator!=(const APIPermissionSet& rhs) const {
|
| - return !operator==(rhs);
|
| - }
|
| -
|
| void insert(APIPermission::ID id);
|
|
|
| // Insert |permission| into the APIPermissionSet. The APIPermissionSet will
|
| // take the ownership of |permission|,
|
| void insert(APIPermission* permission);
|
|
|
| - bool Contains(const APIPermissionSet& rhs) const;
|
| -
|
| - static void Difference(
|
| - const APIPermissionSet& set1,
|
| - const APIPermissionSet& set2,
|
| - APIPermissionSet* set3);
|
| -
|
| - static void Intersection(
|
| - const APIPermissionSet& set1,
|
| - const APIPermissionSet& set2,
|
| - APIPermissionSet* set3);
|
| -
|
| - static void Union(
|
| - const APIPermissionSet& set1,
|
| - const APIPermissionSet& set2,
|
| - APIPermissionSet* set3);
|
| -
|
| // Parses permissions from |permissions| and adds the parsed permissions to
|
| // |api_permissions|. If |source| is kDisallowInternalPermissions, treat
|
| - // permissions with kFlagInternal as errors. If |unhandled_permissions|
|
| - // is not NULL, the names of all permissions that couldn't be parsed will be
|
| + // permissions with kFlagInternal as errors. If |unhandled_permissions| is
|
| + // not NULL, the names of all permissions that couldn't be parsed will be
|
| // added to this vector. If |error| is NULL, parsing will continue with the
|
| // next permission if invalid data is detected. If |error| is not NULL, it
|
| // will be set to an error message and false is returned when an invalid
|
| @@ -163,9 +58,6 @@ class APIPermissionSet {
|
| std::vector<std::string>* unhandled_permissions);
|
|
|
| void AddImpliedPermissions();
|
| -
|
| - private:
|
| - APIPermissionMap map_;
|
| };
|
|
|
| } // namespace extensions
|
|
|