| OLD | NEW |
| 1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 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 #ifndef CHROME_COMMON_EXTENSIONS_URL_PATTERN_H_ | 4 #ifndef CHROME_COMMON_EXTENSIONS_URL_PATTERN_H_ |
| 5 #define CHROME_COMMON_EXTENSIONS_URL_PATTERN_H_ | 5 #define CHROME_COMMON_EXTENSIONS_URL_PATTERN_H_ |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "googleurl/src/gurl.h" | 9 #include "googleurl/src/gurl.h" |
| 10 | 10 |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 // subdomain matching. We can pick up at least another 10% by supporting | 66 // subdomain matching. We can pick up at least another 10% by supporting |
| 67 // subdomain matching. It is probably possible to coerce more of the existing | 67 // subdomain matching. It is probably possible to coerce more of the existing |
| 68 // patterns to URLPattern, but the resulting pattern will be more restrictive | 68 // patterns to URLPattern, but the resulting pattern will be more restrictive |
| 69 // than the original glob, which is probably better than nothing. | 69 // than the original glob, which is probably better than nothing. |
| 70 class URLPattern { | 70 class URLPattern { |
| 71 public: | 71 public: |
| 72 // Returns true if the specified scheme can be used in URL patterns, and false | 72 // Returns true if the specified scheme can be used in URL patterns, and false |
| 73 // otherwise. | 73 // otherwise. |
| 74 static bool IsValidScheme(const std::string& scheme); | 74 static bool IsValidScheme(const std::string& scheme); |
| 75 | 75 |
| 76 // Convenience to create a pattern from a string. | 76 URLPattern(); |
| 77 static URLPattern* CreateFromString(const std::string& pattern); | |
| 78 | 77 |
| 79 URLPattern() : match_subdomains_(false) {} | 78 // Convenience to construct a URLPattern from a string. The string is expected |
| 79 // to be a valid pattern. If the string is not known ahead of time, use |
| 80 // Parse() instead, which returns success or failure. |
| 81 explicit URLPattern(const std::string& pattern); |
| 80 | 82 |
| 81 // Initializes this instance by parsing the provided string. On failure, the | 83 // Initializes this instance by parsing the provided string. On failure, the |
| 82 // instance will have some intermediate values and is in an invalid state. | 84 // instance will have some intermediate values and is in an invalid state. |
| 83 bool Parse(const std::string& pattern_str); | 85 bool Parse(const std::string& pattern_str); |
| 84 | 86 |
| 85 // Returns true if this instance matches the specified URL. | 87 // Returns true if this instance matches the specified URL. |
| 86 bool MatchesUrl(const GURL& url) const; | 88 bool MatchesUrl(const GURL& url) const; |
| 87 | 89 |
| 88 // Returns true if |test| matches our host. | 90 // Returns true if |test| matches our host. |
| 89 bool MatchesHost(const std::string& host) const; | 91 bool MatchesHost(const std::string& host) const; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 // everything after the scheme in the case of file:// URLs. | 133 // everything after the scheme in the case of file:// URLs. |
| 132 std::string path_; | 134 std::string path_; |
| 133 | 135 |
| 134 // The path with "?" and "\" characters escaped for use with the | 136 // The path with "?" and "\" characters escaped for use with the |
| 135 // MatchPatternASCII() function. This is populated lazily, the first time it | 137 // MatchPatternASCII() function. This is populated lazily, the first time it |
| 136 // is needed. | 138 // is needed. |
| 137 mutable std::string path_escaped_; | 139 mutable std::string path_escaped_; |
| 138 }; | 140 }; |
| 139 | 141 |
| 140 #endif // CHROME_COMMON_EXTENSIONS_URL_PATTERN_H_ | 142 #endif // CHROME_COMMON_EXTENSIONS_URL_PATTERN_H_ |
| OLD | NEW |