OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_PATTERN_H_ | 7 #ifndef COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_PATTERN_H_ |
8 #define COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_PATTERN_H_ | 8 #define COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_PATTERN_H_ |
9 | 9 |
10 #include <string> | 10 #include <string> |
11 | 11 |
12 #include "base/gtest_prod_util.h" | 12 #include "base/gtest_prod_util.h" |
| 13 #include "mojo/public/cpp/bindings/struct_traits.h" |
13 | 14 |
14 class GURL; | 15 class GURL; |
15 | 16 |
16 namespace content_settings { | 17 namespace content_settings { |
17 class PatternParser; | 18 class PatternParser; |
| 19 |
| 20 namespace mojom { |
| 21 class ContentSettingsPatternDataView; |
| 22 } |
18 } | 23 } |
19 | 24 |
20 // A pattern used in content setting rules. See |IsValid| for a description of | 25 // A pattern used in content setting rules. See |IsValid| for a description of |
21 // possible patterns. | 26 // possible patterns. |
22 class ContentSettingsPattern { | 27 class ContentSettingsPattern { |
23 public: | 28 public: |
24 // Each content settings pattern describes a set of origins. Patterns, and the | 29 // Each content settings pattern describes a set of origins. Patterns, and the |
25 // sets they describe, have specific relations. |Relation| describes the | 30 // sets they describe, have specific relations. |Relation| describes the |
26 // relation of two patterns A and B. When pattern A is compared with pattern B | 31 // relation of two patterns A and B. When pattern A is compared with pattern B |
27 // (A compare B) interesting relations are: | 32 // (A compare B) interesting relations are: |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 | 215 |
211 // Returns true if the pattern has a lower priority than the |other| pattern. | 216 // Returns true if the pattern has a lower priority than the |other| pattern. |
212 bool operator<(const ContentSettingsPattern& other) const; | 217 bool operator<(const ContentSettingsPattern& other) const; |
213 | 218 |
214 // Returns true if the pattern has a higher priority than the |other| pattern. | 219 // Returns true if the pattern has a higher priority than the |other| pattern. |
215 bool operator>(const ContentSettingsPattern& other) const; | 220 bool operator>(const ContentSettingsPattern& other) const; |
216 | 221 |
217 private: | 222 private: |
218 friend class content_settings::PatternParser; | 223 friend class content_settings::PatternParser; |
219 friend class ContentSettingsPatternSerializer; | 224 friend class ContentSettingsPatternSerializer; |
| 225 friend struct mojo::StructTraits< |
| 226 content_settings::mojom::ContentSettingsPatternDataView, |
| 227 ContentSettingsPattern>; |
220 FRIEND_TEST_ALL_PREFIXES(ContentSettingsPatternParserTest, SerializePatterns); | 228 FRIEND_TEST_ALL_PREFIXES(ContentSettingsPatternParserTest, SerializePatterns); |
221 | 229 |
222 class Builder; | 230 class Builder; |
223 | 231 |
224 static Relation CompareScheme( | 232 static Relation CompareScheme( |
225 const ContentSettingsPattern::PatternParts& parts, | 233 const ContentSettingsPattern::PatternParts& parts, |
226 const ContentSettingsPattern::PatternParts& other_parts); | 234 const ContentSettingsPattern::PatternParts& other_parts); |
227 | 235 |
228 static Relation CompareHost( | 236 static Relation CompareHost( |
229 const ContentSettingsPattern::PatternParts& parts, | 237 const ContentSettingsPattern::PatternParts& parts, |
230 const ContentSettingsPattern::PatternParts& other_parts); | 238 const ContentSettingsPattern::PatternParts& other_parts); |
231 | 239 |
232 static Relation ComparePort( | 240 static Relation ComparePort( |
233 const ContentSettingsPattern::PatternParts& parts, | 241 const ContentSettingsPattern::PatternParts& parts, |
234 const ContentSettingsPattern::PatternParts& other_parts); | 242 const ContentSettingsPattern::PatternParts& other_parts); |
235 | 243 |
236 static Relation ComparePath( | 244 static Relation ComparePath( |
237 const ContentSettingsPattern::PatternParts& parts, | 245 const ContentSettingsPattern::PatternParts& parts, |
238 const ContentSettingsPattern::PatternParts& other_parts); | 246 const ContentSettingsPattern::PatternParts& other_parts); |
239 | 247 |
240 ContentSettingsPattern(const PatternParts& parts, bool valid); | 248 ContentSettingsPattern(const PatternParts& parts, bool valid); |
241 | 249 |
242 PatternParts parts_; | 250 PatternParts parts_; |
243 | 251 |
244 bool is_valid_; | 252 bool is_valid_; |
245 }; | 253 }; |
246 | 254 |
247 #endif // COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_PATTERN_H_ | 255 #endif // COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_PATTERN_H_ |
OLD | NEW |