Commit c6c00e8f authored by treib's avatar treib Committed by Commit bot

Extensions: Switch to new permission message system, part II

- Update some remaining tests to check both legacy and new system
- Add some missing coalescing rules in the new system

BUG=398257

Review URL: https://codereview.chromium.org/1042793003

Cr-Commit-Position: refs/heads/master@{#324068}
parent ae280428
...@@ -345,9 +345,9 @@ ChromePermissionMessageRule::GetAllRules() { ...@@ -345,9 +345,9 @@ ChromePermissionMessageRule::GetAllRules() {
{IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS, {IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS,
{APIPermission::kSessions, APIPermission::kHistory}, {APIPermission::kSessions, APIPermission::kHistory},
{APIPermission::kTab, {APIPermission::kFavicon,
APIPermission::kFavicon,
APIPermission::kProcesses, APIPermission::kProcesses,
APIPermission::kTab,
APIPermission::kTopSites, APIPermission::kTopSites,
APIPermission::kWebNavigation}}, APIPermission::kWebNavigation}},
{IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS, {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS,
...@@ -372,8 +372,10 @@ ChromePermissionMessageRule::GetAllRules() { ...@@ -372,8 +372,10 @@ ChromePermissionMessageRule::GetAllRules() {
{IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE, {IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE,
{APIPermission::kHistory}, {APIPermission::kHistory},
{APIPermission::kFavicon, {APIPermission::kFavicon,
APIPermission::kProcesses,
APIPermission::kTab, APIPermission::kTab,
APIPermission::kTopSites}}, APIPermission::kTopSites,
APIPermission::kWebNavigation}},
// A special hack: If kFileSystemWriteDirectory would be displayed, hide // A special hack: If kFileSystemWriteDirectory would be displayed, hide
// kFileSystemDirectory as the write directory message implies it. // kFileSystemDirectory as the write directory message implies it.
// TODO(sashab): Remove kFileSystemWriteDirectory; it's no longer needed // TODO(sashab): Remove kFileSystemWriteDirectory; it's no longer needed
...@@ -404,7 +406,10 @@ ChromePermissionMessageRule::GetAllRules() { ...@@ -404,7 +406,10 @@ ChromePermissionMessageRule::GetAllRules() {
// frequently visited sites. // frequently visited sites.
{IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ, {IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ,
{APIPermission::kTab}, {APIPermission::kTab},
{APIPermission::kFavicon, APIPermission::kTopSites}}, {APIPermission::kFavicon,
APIPermission::kProcesses,
APIPermission::kTopSites,
APIPermission::kWebNavigation}},
// Individual message rules taken from // Individual message rules taken from
// ChromeAPIPermissions::GetAllPermissions(): // ChromeAPIPermissions::GetAllPermissions():
......
...@@ -255,6 +255,10 @@ bool PermissionIDSet::Includes(const PermissionIDSet& subset) const { ...@@ -255,6 +255,10 @@ bool PermissionIDSet::Includes(const PermissionIDSet& subset) const {
subset.permissions_); subset.permissions_);
} }
bool PermissionIDSet::Equals(const PermissionIDSet& set) const {
return permissions_ == set.permissions_;
}
// static // static
PermissionIDSet PermissionIDSet::Difference(const PermissionIDSet& set_1, PermissionIDSet PermissionIDSet::Difference(const PermissionIDSet& set_1,
const PermissionIDSet& set_2) { const PermissionIDSet& set_2) {
...@@ -284,7 +288,7 @@ bool PermissionIDSet::empty() const { ...@@ -284,7 +288,7 @@ bool PermissionIDSet::empty() const {
return permissions_.empty(); return permissions_.empty();
} }
PermissionIDSet::PermissionIDSet(std::set<PermissionID> permissions) PermissionIDSet::PermissionIDSet(const std::set<PermissionID>& permissions)
: permissions_(permissions) { : permissions_(permissions) {
} }
......
...@@ -111,6 +111,8 @@ class PermissionID : public std::pair<APIPermission::ID, base::string16> { ...@@ -111,6 +111,8 @@ class PermissionID : public std::pair<APIPermission::ID, base::string16> {
// instead of pointers and change this to extend BaseSetOperators<PermissionID>. // instead of pointers and change this to extend BaseSetOperators<PermissionID>.
class PermissionIDSet { class PermissionIDSet {
public: public:
using const_iterator = std::set<PermissionID>::const_iterator;
PermissionIDSet(); PermissionIDSet();
virtual ~PermissionIDSet(); virtual ~PermissionIDSet();
...@@ -132,6 +134,7 @@ class PermissionIDSet { ...@@ -132,6 +134,7 @@ class PermissionIDSet {
// Convenience functions that call their stl_util counterparts. // Convenience functions that call their stl_util counterparts.
bool Includes(const PermissionIDSet& subset) const; bool Includes(const PermissionIDSet& subset) const;
bool Equals(const PermissionIDSet& set) const;
static PermissionIDSet Difference(const PermissionIDSet& set_1, static PermissionIDSet Difference(const PermissionIDSet& set_1,
const PermissionIDSet& set_2); const PermissionIDSet& set_2);
static PermissionIDSet Intersection(const PermissionIDSet& set_1, static PermissionIDSet Intersection(const PermissionIDSet& set_1,
...@@ -142,8 +145,11 @@ class PermissionIDSet { ...@@ -142,8 +145,11 @@ class PermissionIDSet {
size_t size() const; size_t size() const;
bool empty() const; bool empty() const;
const_iterator begin() const { return permissions_.begin(); }
const_iterator end() const { return permissions_.end(); }
private: private:
PermissionIDSet(std::set<PermissionID> permissions); PermissionIDSet(const std::set<PermissionID>& permissions);
// Check if the set contains a permission with the given ID. // Check if the set contains a permission with the given ID.
bool ContainsID(APIPermission::ID permission_id); bool ContainsID(APIPermission::ID permission_id);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment