Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(757)

Side by Side Diff: chrome/common/extensions/url_pattern_set.h

Issue 7432006: Add an experimental permissions API for extensions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_COMMON_EXTENSIONS_URL_PATTERN_SET_H_ 5 #ifndef CHROME_COMMON_EXTENSIONS_URL_PATTERN_SET_H_
6 #define CHROME_COMMON_EXTENSIONS_URL_PATTERN_SET_H_ 6 #define CHROME_COMMON_EXTENSIONS_URL_PATTERN_SET_H_
7 #pragma once 7 #pragma once
8 8
9 #include <set> 9 #include <set>
10 10
11 #include "chrome/common/extensions/url_pattern.h" 11 #include "chrome/common/extensions/url_pattern.h"
12 12
13 class GURL; 13 class GURL;
14 14
15 // Represents the set of URLs an extension uses for web content. 15 // Represents the set of URLs an extension uses for web content.
16 class URLPatternSet { 16 class URLPatternSet {
17 public: 17 public:
18 typedef std::set<URLPattern>::const_iterator const_iterator; 18 typedef std::set<URLPattern>::const_iterator const_iterator;
19 typedef std::set<URLPattern>::iterator iterator; 19 typedef std::set<URLPattern>::iterator iterator;
20 20
21 // Clears |out| and populates the set with |set1| - |set2|.
22 static void CreateDifference(const URLPatternSet& set1,
23 const URLPatternSet& set2,
24 URLPatternSet* out);
25
26 // Clears |out| and populates the set with the intersection of |set1|
27 // and |set2|.
28 static void CreateIntersection(const URLPatternSet& set1,
29 const URLPatternSet& set2,
30 URLPatternSet* out);
31
21 // Clears |out| and populates the set with the union of |set1| and |set2|. 32 // Clears |out| and populates the set with the union of |set1| and |set2|.
22 static void CreateUnion(const URLPatternSet& set1, 33 static void CreateUnion(const URLPatternSet& set1,
23 const URLPatternSet& set2, 34 const URLPatternSet& set2,
24 URLPatternSet* out); 35 URLPatternSet* out);
25 36
26 URLPatternSet(); 37 URLPatternSet();
27 URLPatternSet(const URLPatternSet& rhs); 38 URLPatternSet(const URLPatternSet& rhs);
28 explicit URLPatternSet(const std::set<URLPattern>& patterns); 39 explicit URLPatternSet(const std::set<URLPattern>& patterns);
29 ~URLPatternSet(); 40 ~URLPatternSet();
30 41
31 URLPatternSet& operator=(const URLPatternSet& rhs); 42 URLPatternSet& operator=(const URLPatternSet& rhs);
32 bool operator==(const URLPatternSet& rhs) const; 43 bool operator==(const URLPatternSet& rhs) const;
33 44
34 bool is_empty() const; 45 bool is_empty() const;
35 const std::set<URLPattern>& patterns() const { return patterns_; } 46 const std::set<URLPattern>& patterns() const { return patterns_; }
36 const_iterator begin() const { return patterns_.begin(); } 47 const_iterator begin() const { return patterns_.begin(); }
37 const_iterator end() const { return patterns_.end(); } 48 const_iterator end() const { return patterns_.end(); }
38 49
39 void AddPattern(const URLPattern& pattern); 50 void AddPattern(const URLPattern& pattern);
40 void ClearPatterns(); 51 void ClearPatterns();
41 52
53 // Returns true if the permission |set| is a subset of this.
54 bool Contains(const URLPatternSet& set) const;
55
42 // Test if the extent contains a URL. 56 // Test if the extent contains a URL.
43 bool MatchesURL(const GURL& url) const; 57 bool MatchesURL(const GURL& url) const;
44 58
45 // Returns true if there is a single URL that would be in two extents. 59 // Returns true if there is a single URL that would be in two extents.
46 bool OverlapsWith(const URLPatternSet& other) const; 60 bool OverlapsWith(const URLPatternSet& other) const;
47 61
48 private: 62 private:
49 // The list of URL patterns that comprise the extent. 63 // The list of URL patterns that comprise the extent.
50 std::set<URLPattern> patterns_; 64 std::set<URLPattern> patterns_;
51 }; 65 };
52 66
53 #endif // CHROME_COMMON_EXTENSIONS_URL_PATTERN_SET_H_ 67 #endif // CHROME_COMMON_EXTENSIONS_URL_PATTERN_SET_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698