summaryrefslogtreecommitdiffstats
path: root/extensions/common/url_pattern_set.cc
diff options
context:
space:
mode:
authorkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-13 19:43:47 +0000
committerkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-13 19:43:47 +0000
commitb56676dbdd2c6a548e0b67d54e02272390b9be41 (patch)
tree3f23a22165c56db3193be45f7a01f8223f9a0d7b /extensions/common/url_pattern_set.cc
parent59295c036d31be1aab70b03f7f45036d7658a364 (diff)
downloadchromium_src-b56676dbdd2c6a548e0b67d54e02272390b9be41.zip
chromium_src-b56676dbdd2c6a548e0b67d54e02272390b9be41.tar.gz
chromium_src-b56676dbdd2c6a548e0b67d54e02272390b9be41.tar.bz2
Support requesting subsets of host permissions using the permissions API.
BUG=158004 TBR=ben@chromium.org Review URL: https://chromiumcodereview.appspot.com/12209094 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182287 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'extensions/common/url_pattern_set.cc')
-rw-r--r--extensions/common/url_pattern_set.cc20
1 files changed, 17 insertions, 3 deletions
diff --git a/extensions/common/url_pattern_set.cc b/extensions/common/url_pattern_set.cc
index 4066320..7a19c71 100644
--- a/extensions/common/url_pattern_set.cc
+++ b/extensions/common/url_pattern_set.cc
@@ -129,9 +129,14 @@ void URLPatternSet::ClearPatterns() {
patterns_.clear();
}
-bool URLPatternSet::Contains(const URLPatternSet& set) const {
- return std::includes(patterns_.begin(), patterns_.end(),
- set.patterns_.begin(), set.patterns_.end());
+bool URLPatternSet::Contains(const URLPatternSet& other) const {
+ for (URLPatternSet::const_iterator it = other.begin();
+ it != other.end(); ++it) {
+ if (!ContainsPattern(*it))
+ return false;
+ }
+
+ return true;
}
bool URLPatternSet::MatchesURL(const GURL& url) const {
@@ -216,4 +221,13 @@ bool URLPatternSet::Populate(const base::ListValue& value,
return Populate(patterns, valid_schemes, allow_file_access, error);
}
+bool URLPatternSet::ContainsPattern(const URLPattern& pattern) const {
+ for (URLPatternSet::const_iterator it = begin();
+ it != end(); ++it) {
+ if (it->Contains(pattern))
+ return true;
+ }
+ return false;
+}
+
} // namespace extensions