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() {
{IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE_AND_SESSIONS,
{APIPermission::kSessions, APIPermission::kHistory},
{APIPermission::kTab,
APIPermission::kFavicon,
{APIPermission::kFavicon,
APIPermission::kProcesses,
APIPermission::kTab,
APIPermission::kTopSites,
APIPermission::kWebNavigation}},
{IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ_AND_SESSIONS,
......@@ -372,8 +372,10 @@ ChromePermissionMessageRule::GetAllRules() {
{IDS_EXTENSION_PROMPT_WARNING_HISTORY_WRITE,
{APIPermission::kHistory},
{APIPermission::kFavicon,
APIPermission::kProcesses,
APIPermission::kTab,
APIPermission::kTopSites}},
APIPermission::kTopSites,
APIPermission::kWebNavigation}},
// A special hack: If kFileSystemWriteDirectory would be displayed, hide
// kFileSystemDirectory as the write directory message implies it.
// TODO(sashab): Remove kFileSystemWriteDirectory; it's no longer needed
......@@ -404,7 +406,10 @@ ChromePermissionMessageRule::GetAllRules() {
// frequently visited sites.
{IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ,
{APIPermission::kTab},
{APIPermission::kFavicon, APIPermission::kTopSites}},
{APIPermission::kFavicon,
APIPermission::kProcesses,
APIPermission::kTopSites,
APIPermission::kWebNavigation}},
// Individual message rules taken from
// ChromeAPIPermissions::GetAllPermissions():
......
......@@ -255,6 +255,10 @@ bool PermissionIDSet::Includes(const PermissionIDSet& subset) const {
subset.permissions_);
}
bool PermissionIDSet::Equals(const PermissionIDSet& set) const {
return permissions_ == set.permissions_;
}
// static
PermissionIDSet PermissionIDSet::Difference(const PermissionIDSet& set_1,
const PermissionIDSet& set_2) {
......@@ -284,7 +288,7 @@ bool PermissionIDSet::empty() const {
return permissions_.empty();
}
PermissionIDSet::PermissionIDSet(std::set<PermissionID> permissions)
PermissionIDSet::PermissionIDSet(const std::set<PermissionID>& permissions)
: permissions_(permissions) {
}
......
......@@ -111,6 +111,8 @@ class PermissionID : public std::pair<APIPermission::ID, base::string16> {
// instead of pointers and change this to extend BaseSetOperators<PermissionID>.
class PermissionIDSet {
public:
using const_iterator = std::set<PermissionID>::const_iterator;
PermissionIDSet();
virtual ~PermissionIDSet();
......@@ -132,6 +134,7 @@ class PermissionIDSet {
// Convenience functions that call their stl_util counterparts.
bool Includes(const PermissionIDSet& subset) const;
bool Equals(const PermissionIDSet& set) const;
static PermissionIDSet Difference(const PermissionIDSet& set_1,
const PermissionIDSet& set_2);
static PermissionIDSet Intersection(const PermissionIDSet& set_1,
......@@ -142,8 +145,11 @@ class PermissionIDSet {
size_t size() const;
bool empty() const;
const_iterator begin() const { return permissions_.begin(); }
const_iterator end() const { return permissions_.end(); }
private:
PermissionIDSet(std::set<PermissionID> permissions);
PermissionIDSet(const std::set<PermissionID>& permissions);
// Check if the set contains a permission with the given 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