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

Side by Side Diff: chrome/common/content_settings_pattern.h

Issue 9254028: Added support for file URI path wildcards in content settings (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase on trunk Created 8 years, 11 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
« no previous file with comments | « AUTHORS ('k') | chrome/common/content_settings_pattern.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 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 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
11 #include <ostream> 11 #include <ostream>
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 // |is_port_wildcard| flag is set. 86 // |is_port_wildcard| flag is set.
87 std::string port; 87 std::string port;
88 88
89 // True if the port wildcard is set. 89 // True if the port wildcard is set.
90 bool is_port_wildcard; 90 bool is_port_wildcard;
91 91
92 // TODO(markusheintz): Needed for legacy reasons. Remove. Path 92 // TODO(markusheintz): Needed for legacy reasons. Remove. Path
93 // specification. Only used for content settings pattern with a "file" 93 // specification. Only used for content settings pattern with a "file"
94 // scheme part. 94 // scheme part.
95 std::string path; 95 std::string path;
96
97 // True if the path wildcard is set.
98 bool is_path_wildcard;
96 }; 99 };
97 100
98 class BuilderInterface { 101 class BuilderInterface {
99 public: 102 public:
100 virtual ~BuilderInterface() {} 103 virtual ~BuilderInterface() {}
101 104
102 virtual BuilderInterface* WithPort(const std::string& port) = 0; 105 virtual BuilderInterface* WithPort(const std::string& port) = 0;
103 106
104 virtual BuilderInterface* WithPortWildcard() = 0; 107 virtual BuilderInterface* WithPortWildcard() = 0;
105 108
106 virtual BuilderInterface* WithHost(const std::string& host) = 0; 109 virtual BuilderInterface* WithHost(const std::string& host) = 0;
107 110
108 virtual BuilderInterface* WithDomainWildcard() = 0; 111 virtual BuilderInterface* WithDomainWildcard() = 0;
109 112
110 virtual BuilderInterface* WithScheme(const std::string& scheme) = 0; 113 virtual BuilderInterface* WithScheme(const std::string& scheme) = 0;
111 114
112 virtual BuilderInterface* WithSchemeWildcard() = 0; 115 virtual BuilderInterface* WithSchemeWildcard() = 0;
113 116
114 virtual BuilderInterface* WithPath(const std::string& path) = 0; 117 virtual BuilderInterface* WithPath(const std::string& path) = 0;
115 118
119 virtual BuilderInterface* WithPathWildcard() = 0;
120
116 virtual BuilderInterface* Invalid() = 0; 121 virtual BuilderInterface* Invalid() = 0;
117 122
118 // Returns a content settings pattern according to the current configuration 123 // Returns a content settings pattern according to the current configuration
119 // of the builder. 124 // of the builder.
120 virtual ContentSettingsPattern Build() = 0; 125 virtual ContentSettingsPattern Build() = 0;
121 }; 126 };
122 127
123 static BuilderInterface* CreateBuilder(bool use_legacy_validate); 128 static BuilderInterface* CreateBuilder(bool use_legacy_validate);
124 129
125 // The version of the pattern format implemented. 130 // The version of the pattern format implemented.
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 virtual BuilderInterface* WithHost(const std::string& host) OVERRIDE; 212 virtual BuilderInterface* WithHost(const std::string& host) OVERRIDE;
208 213
209 virtual BuilderInterface* WithDomainWildcard() OVERRIDE; 214 virtual BuilderInterface* WithDomainWildcard() OVERRIDE;
210 215
211 virtual BuilderInterface* WithScheme(const std::string& scheme) OVERRIDE; 216 virtual BuilderInterface* WithScheme(const std::string& scheme) OVERRIDE;
212 217
213 virtual BuilderInterface* WithSchemeWildcard() OVERRIDE; 218 virtual BuilderInterface* WithSchemeWildcard() OVERRIDE;
214 219
215 virtual BuilderInterface* WithPath(const std::string& path) OVERRIDE; 220 virtual BuilderInterface* WithPath(const std::string& path) OVERRIDE;
216 221
222 virtual BuilderInterface* WithPathWildcard() OVERRIDE;
223
217 virtual BuilderInterface* Invalid() OVERRIDE; 224 virtual BuilderInterface* Invalid() OVERRIDE;
218 225
219 virtual ContentSettingsPattern Build() OVERRIDE; 226 virtual ContentSettingsPattern Build() OVERRIDE;
227
220 private: 228 private:
221 // Canonicalizes the pattern parts so that they are ASCII only, either 229 // Canonicalizes the pattern parts so that they are ASCII only, either
222 // in original (if it was already ASCII) or punycode form. Returns true if 230 // in original (if it was already ASCII) or punycode form. Returns true if
223 // the canonicalization was successful. 231 // the canonicalization was successful.
224 static bool Canonicalize(PatternParts* parts); 232 static bool Canonicalize(PatternParts* parts);
225 233
226 // Returns true when the pattern |parts| represent a valid pattern. 234 // Returns true when the pattern |parts| represent a valid pattern.
227 static bool Validate(const PatternParts& parts); 235 static bool Validate(const PatternParts& parts);
228 236
229 static bool LegacyValidate(const PatternParts& parts); 237 static bool LegacyValidate(const PatternParts& parts);
(...skipping 29 matching lines...) Expand all
259 }; 267 };
260 268
261 // Stream operator so ContentSettingsPattern can be used in assertion 269 // Stream operator so ContentSettingsPattern can be used in assertion
262 // statements. 270 // statements.
263 inline std::ostream& operator<<( 271 inline std::ostream& operator<<(
264 std::ostream& out, const ContentSettingsPattern& pattern) { 272 std::ostream& out, const ContentSettingsPattern& pattern) {
265 return out << pattern.ToString(); 273 return out << pattern.ToString();
266 } 274 }
267 275
268 #endif // CHROME_COMMON_CONTENT_SETTINGS_PATTERN_H_ 276 #endif // CHROME_COMMON_CONTENT_SETTINGS_PATTERN_H_
OLDNEW
« no previous file with comments | « AUTHORS ('k') | chrome/common/content_settings_pattern.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698