Chromium Code Reviews| OLD | NEW |
|---|---|
| 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_BROWSER_POLICY_URL_BLACKLIST_MANAGER_H_ | 5 #ifndef CHROME_BROWSER_POLICY_URL_BLACKLIST_MANAGER_H_ |
| 6 #define CHROME_BROWSER_POLICY_URL_BLACKLIST_MANAGER_H_ | 6 #define CHROME_BROWSER_POLICY_URL_BLACKLIST_MANAGER_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 23 class NotificationSource; | 23 class NotificationSource; |
| 24 class PrefService; | 24 class PrefService; |
| 25 | 25 |
| 26 namespace base { | 26 namespace base { |
| 27 class ListValue; | 27 class ListValue; |
| 28 } | 28 } |
| 29 | 29 |
| 30 namespace policy { | 30 namespace policy { |
| 31 | 31 |
| 32 // Contains a set of filters to block and allow certain URLs, and matches GURLs | 32 // Contains a set of filters to block and allow certain URLs, and matches GURLs |
| 33 // against this set. The filters are currently kept in memory. | 33 // against this set. The filters are currently kept in memory. |
|
zunger
2011/10/20 22:24:03
What's the thread-safety of this class?
Joao da Silva
2011/10/21 10:19:47
It's not thread safe. After setting up all the fil
| |
| 34 class URLBlacklist { | 34 class URLBlacklist { |
| 35 public: | 35 public: |
| 36 URLBlacklist(); | 36 URLBlacklist(); |
| 37 virtual ~URLBlacklist(); | 37 virtual ~URLBlacklist(); |
| 38 | 38 |
| 39 // URLs matching |filter| will be blocked. | 39 // URLs matching |filter| will be blocked. |
|
zunger
2011/10/20 22:24:03
Are these exact URLs? Is any normalization done?
Joao da Silva
2011/10/21 10:19:47
Most URLs are valid filters, with a couple of exce
| |
| 40 void Block(const std::string& filter); | 40 void Block(const std::string& filter); |
| 41 | 41 |
| 42 // URLs matching |filter| will be allowed. If |filter| is both Blocked and | 42 // URLs matching |filter| will be allowed. If |filter| is both Blocked and |
| 43 // Allowed, Allow takes precedence. | 43 // Allowed, Allow takes precedence. |
| 44 void Allow(const std::string& filter); | 44 void Allow(const std::string& filter); |
| 45 | 45 |
| 46 // Returns true if the URL is blocked. | 46 // Returns true if the URL is blocked. |
| 47 bool IsURLBlocked(const GURL& url) const; | 47 bool IsURLBlocked(const GURL& url) const; |
| 48 | 48 |
| 49 // A constant mapped to a scheme that can be filtered. | 49 // A constant mapped to a scheme that can be filtered. |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 66 // |port| is 0 if none is explicitly defined. | 66 // |port| is 0 if none is explicitly defined. |
| 67 // |path| does not include query parameters. | 67 // |path| does not include query parameters. |
| 68 static bool FilterToComponents(const std::string& filter, | 68 static bool FilterToComponents(const std::string& filter, |
| 69 std::string* scheme, | 69 std::string* scheme, |
| 70 std::string* host, | 70 std::string* host, |
| 71 uint16* port, | 71 uint16* port, |
| 72 std::string* path); | 72 std::string* path); |
| 73 private: | 73 private: |
| 74 void AddFilter(const std::string& filter, bool block); | 74 void AddFilter(const std::string& filter, bool block); |
| 75 | 75 |
| 76 struct PathFilter { | 76 struct PathFilter { |
|
zunger
2011/10/20 22:24:03
You can move this entire declaration into the .cc
Joao da Silva
2011/10/21 10:19:47
Done.
| |
| 77 explicit PathFilter(const std::string& path, uint16 port, bool match) | 77 explicit PathFilter(const std::string& path, uint16 port, bool match) |
| 78 : path_prefix(path), | 78 : path_prefix(path), |
| 79 port(port), | 79 port(port), |
| 80 blocked_schemes(0), | 80 blocked_schemes(0), |
| 81 allowed_schemes(0), | 81 allowed_schemes(0), |
| 82 match_subdomains(match) {} | 82 match_subdomains(match) {} |
| 83 | 83 |
| 84 std::string path_prefix; | 84 std::string path_prefix; |
| 85 uint16 port; | 85 uint16 port; |
| 86 uint8 blocked_schemes; | 86 uint8 blocked_schemes; |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 170 | 170 |
| 171 // The current blacklist. | 171 // The current blacklist. |
| 172 scoped_ptr<URLBlacklist> blacklist_; | 172 scoped_ptr<URLBlacklist> blacklist_; |
| 173 | 173 |
| 174 DISALLOW_COPY_AND_ASSIGN(URLBlacklistManager); | 174 DISALLOW_COPY_AND_ASSIGN(URLBlacklistManager); |
| 175 }; | 175 }; |
| 176 | 176 |
| 177 } // namespace policy | 177 } // namespace policy |
| 178 | 178 |
| 179 #endif // CHROME_BROWSER_POLICY_URL_BLACKLIST_MANAGER_H_ | 179 #endif // CHROME_BROWSER_POLICY_URL_BLACKLIST_MANAGER_H_ |
| 180 | |
| OLD | NEW |