| 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> |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 122 | 122 |
| 123 // The version of the pattern format implemented. | 123 // The version of the pattern format implemented. |
| 124 static const int kContentSettingsPatternVersion; | 124 static const int kContentSettingsPatternVersion; |
| 125 | 125 |
| 126 // Returns a wildcard content settings pattern that matches all possible valid | 126 // Returns a wildcard content settings pattern that matches all possible valid |
| 127 // origins. | 127 // origins. |
| 128 static ContentSettingsPattern Wildcard(); | 128 static ContentSettingsPattern Wildcard(); |
| 129 | 129 |
| 130 // Returns a pattern that matches the scheme and host of this URL, as well as | 130 // Returns a pattern that matches the scheme and host of this URL, as well as |
| 131 // all subdomains and ports. | 131 // all subdomains and ports. |
| 132 // TODO(lshang): Remove this when crbug.com/604612 is done. |
| 132 static ContentSettingsPattern FromURL(const GURL& url); | 133 static ContentSettingsPattern FromURL(const GURL& url); |
| 133 | 134 |
| 134 // Returns a pattern that matches exactly this URL. | 135 // Returns a pattern that matches exactly this URL. |
| 135 static ContentSettingsPattern FromURLNoWildcard(const GURL& url); | 136 static ContentSettingsPattern FromURLNoWildcard(const GURL& url); |
| 136 | 137 |
| 137 // Returns a pattern that matches the given pattern specification. | 138 // Returns a pattern that matches the given pattern specification. |
| 138 // Valid patterns specifications are: | 139 // Valid patterns specifications are: |
| 139 // - [*.]domain.tld (matches domain.tld and all sub-domains) | 140 // - [*.]domain.tld (matches domain.tld and all sub-domains) |
| 140 // - host (matches an exact hostname) | 141 // - host (matches an exact hostname) |
| 141 // - scheme://host:port (supported schemes: http,https) | 142 // - scheme://host:port (supported schemes: http,https) |
| 142 // - scheme://[*.]domain.tld:port (supported schemes: http,https) | 143 // - scheme://[*.]domain.tld:port (supported schemes: http,https) |
| 143 // - file://path (The path has to be an absolute path and start with a '/') | 144 // - file://path (The path has to be an absolute path and start with a '/') |
| 144 // - a.b.c.d (matches an exact IPv4 ip) | 145 // - a.b.c.d (matches an exact IPv4 ip) |
| 145 // - [a:b:c:d:e:f:g:h] (matches an exact IPv6 ip) | 146 // - [a:b:c:d:e:f:g:h] (matches an exact IPv6 ip) |
| 146 static ContentSettingsPattern FromString(const std::string& pattern_spec); | 147 static ContentSettingsPattern FromString(const std::string& pattern_spec); |
| 147 | 148 |
| 149 // Migrate domain scoped settings generated using FromURL() to be origin |
| 150 // scoped. Return false if domain_pattern is not generated using FromURL(). |
| 151 // TODO(lshang): Remove this when migration is done. https://crbug.com/604612 |
| 152 static bool MigrateFromDomaintoOrigin( |
| 153 const ContentSettingsPattern& domain_pattern, |
| 154 ContentSettingsPattern* origin_pattern); |
| 155 |
| 148 // Sets the scheme that doesn't support domain wildcard and port. | 156 // Sets the scheme that doesn't support domain wildcard and port. |
| 149 // Needs to be called by the embedder before using ContentSettingsPattern. | 157 // Needs to be called by the embedder before using ContentSettingsPattern. |
| 150 // |scheme| can't be NULL, and the pointed string must remain alive until the | 158 // |scheme| can't be NULL, and the pointed string must remain alive until the |
| 151 // app terminates. | 159 // app terminates. |
| 152 static void SetNonWildcardDomainNonPortScheme(const char* scheme); | 160 static void SetNonWildcardDomainNonPortScheme(const char* scheme); |
| 153 | 161 |
| 154 // Compares |scheme| against the scheme set by the embedder. | 162 // Compares |scheme| against the scheme set by the embedder. |
| 155 static bool IsNonWildcardDomainNonPortScheme(const std::string& scheme); | 163 static bool IsNonWildcardDomainNonPortScheme(const std::string& scheme); |
| 156 | 164 |
| 157 // Constructs an empty pattern. Empty patterns are invalid patterns. Invalid | 165 // Constructs an empty pattern. Empty patterns are invalid patterns. Invalid |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 210 const ContentSettingsPattern::PatternParts& other_parts); | 218 const ContentSettingsPattern::PatternParts& other_parts); |
| 211 | 219 |
| 212 ContentSettingsPattern(const PatternParts& parts, bool valid); | 220 ContentSettingsPattern(const PatternParts& parts, bool valid); |
| 213 | 221 |
| 214 PatternParts parts_; | 222 PatternParts parts_; |
| 215 | 223 |
| 216 bool is_valid_; | 224 bool is_valid_; |
| 217 }; | 225 }; |
| 218 | 226 |
| 219 #endif // COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_PATTERN_H_ | 227 #endif // COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_PATTERN_H_ |
| OLD | NEW |