summaryrefslogtreecommitdiffstats
path: root/chrome/common/extensions/url_pattern_set.h
diff options
context:
space:
mode:
authorjstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-12 19:38:29 +0000
committerjstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-12 19:38:29 +0000
commit33ccd923b68f5f202230f5a400021f3efd304439 (patch)
treec8c57a6de3b69286738be878683594f40a0c936d /chrome/common/extensions/url_pattern_set.h
parent2261b8bbffdf8abd12837326b0d0676f8eddb744 (diff)
downloadchromium_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.h14
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_