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 // Patterns used in content setting rules. | 5 // Patterns used in content setting rules. |
6 | 6 |
7 #ifndef CHROME_COMMON_CONTENT_SETTINGS_PATTERN_H_ | 7 #ifndef CHROME_COMMON_CONTENT_SETTINGS_PATTERN_H_ |
8 #define CHROME_COMMON_CONTENT_SETTINGS_PATTERN_H_ | 8 #define CHROME_COMMON_CONTENT_SETTINGS_PATTERN_H_ |
9 #pragma once | 9 #pragma once |
10 | 10 |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 | 138 |
139 // Returns true if the pattern and the |other| pattern are not identical. | 139 // Returns true if the pattern and the |other| pattern are not identical. |
140 bool operator!=(const ContentSettingsPattern& other) const; | 140 bool operator!=(const ContentSettingsPattern& other) const; |
141 | 141 |
142 // Returns true if the pattern has a lower priority than the |other| pattern. | 142 // Returns true if the pattern has a lower priority than the |other| pattern. |
143 bool operator<(const ContentSettingsPattern& other) const; | 143 bool operator<(const ContentSettingsPattern& other) const; |
144 | 144 |
145 // Returns true if the pattern has a higher priority than the |other| pattern. | 145 // Returns true if the pattern has a higher priority than the |other| pattern. |
146 bool operator>(const ContentSettingsPattern& other) const; | 146 bool operator>(const ContentSettingsPattern& other) const; |
147 | 147 |
148 private: | 148 // Public for serializing and sending |ContentSettingsPattern| over IPC. |
149 friend class content_settings::PatternParser; | |
150 friend class ContentSettingsPatternParserTest_SerializePatterns_Test; | |
151 friend class Builder; | |
152 | |
153 struct PatternParts { | 149 struct PatternParts { |
154 PatternParts(); | 150 PatternParts(); |
155 ~PatternParts(); | 151 ~PatternParts(); |
156 | 152 |
157 // Lowercase string of the URL scheme to match. This string is empty if the | 153 // Lowercase string of the URL scheme to match. This string is empty if the |
158 // |is_scheme_wildcard| flag is set. | 154 // |is_scheme_wildcard| flag is set. |
159 std::string scheme; | 155 std::string scheme; |
160 | 156 |
161 // True if the scheme wildcard is set. | 157 // True if the scheme wildcard is set. |
162 bool is_scheme_wildcard; | 158 bool is_scheme_wildcard; |
(...skipping 13 matching lines...) Expand all Loading... |
176 std::string port; | 172 std::string port; |
177 | 173 |
178 // True if the port wildcard is set. | 174 // True if the port wildcard is set. |
179 bool is_port_wildcard; | 175 bool is_port_wildcard; |
180 | 176 |
181 // TODO(markusheintz): Needed for legacy reasons. Remove. Path | 177 // TODO(markusheintz): Needed for legacy reasons. Remove. Path |
182 // specification. Only used for content settings pattern with a "file" | 178 // specification. Only used for content settings pattern with a "file" |
183 // scheme part. | 179 // scheme part. |
184 std::string path; | 180 std::string path; |
185 }; | 181 }; |
| 182 PatternParts parts_; |
| 183 bool is_valid_; |
| 184 |
| 185 private: |
| 186 friend class content_settings::PatternParser; |
| 187 friend class ContentSettingsPatternParserTest_SerializePatterns_Test; |
| 188 friend class Builder; |
186 | 189 |
187 class Builder : public BuilderInterface { | 190 class Builder : public BuilderInterface { |
188 public: | 191 public: |
189 explicit Builder(bool use_legacy_validate); | 192 explicit Builder(bool use_legacy_validate); |
190 virtual ~Builder(); | 193 virtual ~Builder(); |
191 | 194 |
192 // Overrides BuilderInterface | 195 // Overrides BuilderInterface |
193 virtual BuilderInterface* WithPort(const std::string& port); | 196 virtual BuilderInterface* WithPort(const std::string& port); |
194 | 197 |
195 virtual BuilderInterface* WithPortWildcard(); | 198 virtual BuilderInterface* WithPortWildcard(); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 const ContentSettingsPattern::PatternParts& parts, | 237 const ContentSettingsPattern::PatternParts& parts, |
235 const ContentSettingsPattern::PatternParts& other_parts); | 238 const ContentSettingsPattern::PatternParts& other_parts); |
236 | 239 |
237 static Relation ComparePort( | 240 static Relation ComparePort( |
238 const ContentSettingsPattern::PatternParts& parts, | 241 const ContentSettingsPattern::PatternParts& parts, |
239 const ContentSettingsPattern::PatternParts& other_parts); | 242 const ContentSettingsPattern::PatternParts& other_parts); |
240 | 243 |
241 static bool Validate(const PatternParts& parts); | 244 static bool Validate(const PatternParts& parts); |
242 | 245 |
243 ContentSettingsPattern(const PatternParts& parts, bool valid); | 246 ContentSettingsPattern(const PatternParts& parts, bool valid); |
244 | |
245 PatternParts parts_; | |
246 | |
247 bool is_valid_; | |
248 }; | 247 }; |
249 | 248 |
250 // Stream operator so ContentSettingsPattern can be used in assertion | 249 // Stream operator so ContentSettingsPattern can be used in assertion |
251 // statements. | 250 // statements. |
252 inline std::ostream& operator<<( | 251 inline std::ostream& operator<<( |
253 std::ostream& out, const ContentSettingsPattern& pattern) { | 252 std::ostream& out, const ContentSettingsPattern& pattern) { |
254 return out << pattern.ToString(); | 253 return out << pattern.ToString(); |
255 } | 254 } |
256 | 255 |
257 #endif // CHROME_COMMON_CONTENT_SETTINGS_PATTERN_H_ | 256 #endif // CHROME_COMMON_CONTENT_SETTINGS_PATTERN_H_ |
OLD | NEW |