diff options
author | jstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-12 19:38:29 +0000 |
---|---|---|
committer | jstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-12 19:38:29 +0000 |
commit | 33ccd923b68f5f202230f5a400021f3efd304439 (patch) | |
tree | c8c57a6de3b69286738be878683594f40a0c936d /chrome/common/extensions/url_pattern_set.h | |
parent | 2261b8bbffdf8abd12837326b0d0676f8eddb744 (diff) | |
download | chromium_src-33ccd923b68f5f202230f5a400021f3efd304439.zip chromium_src-33ccd923b68f5f202230f5a400021f3efd304439.tar.gz chromium_src-33ccd923b68f5f202230f5a400021f3efd304439.tar.bz2 |
Update URLPatternSet to contain a std::set instead of std::vector.
This updates URLPatternSet to contain a std::set instead of a std::vector, making it easier to implement the set operations in ExtensionPermissionSet.
BUG=84507
TEST=unit_tests
Review URL: http://codereview.chromium.org/7347011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92219 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/extensions/url_pattern_set.h')
-rw-r--r-- | chrome/common/extensions/url_pattern_set.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/chrome/common/extensions/url_pattern_set.h b/chrome/common/extensions/url_pattern_set.h index 2120e547..0c8be44 100644 --- a/chrome/common/extensions/url_pattern_set.h +++ b/chrome/common/extensions/url_pattern_set.h @@ -6,6 +6,7 @@ #define CHROME_COMMON_EXTENSIONS_URL_PATTERN_SET_H_ #pragma once +#include <set> #include <vector> #include "chrome/common/extensions/url_pattern.h" @@ -15,20 +16,27 @@ class GURL; // Represents the set of URLs an extension uses for web content. class URLPatternSet { public: + typedef std::set<URLPattern>::const_iterator const_iterator; + typedef std::set<URLPattern>::iterator iterator; + // Clears |out| and populates the set with the union of |set1| and |set2|. - // NOTE: this does not discard duplicates. static void CreateUnion(const URLPatternSet& set1, const URLPatternSet& set2, URLPatternSet* out); URLPatternSet(); URLPatternSet(const URLPatternSet& rhs); + explicit URLPatternSet(const std::set<URLPattern>& patterns); ~URLPatternSet(); + URLPatternSet& operator=(const URLPatternSet& rhs); + bool operator==(const URLPatternSet& rhs) const; bool is_empty() const; + const std::set<URLPattern>& patterns() const { return patterns_; } + const_iterator begin() const { return patterns_.begin(); } + const_iterator end() const { return patterns_.end(); } - const URLPatternList& patterns() const { return patterns_; } void AddPattern(const URLPattern& pattern); void ClearPatterns(); @@ -40,7 +48,7 @@ class URLPatternSet { private: // The list of URL patterns that comprise the extent. - URLPatternList patterns_; + std::set<URLPattern> patterns_; }; #endif // CHROME_COMMON_EXTENSIONS_URL_PATTERN_SET_H_ |