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

Unified Diff: extensions/common/url_pattern.h

Issue 2833843004: Reland: Communicate ExtensionSettings policy to renderers (Closed)
Patch Set: Removed unused URLPatternSet parameters in ExtensionMsg_PermissionSetStruct which was causing MSAN … Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « extensions/common/permissions/permissions_data.cc ('k') | extensions/common/url_pattern.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/common/url_pattern.h
diff --git a/extensions/common/url_pattern.h b/extensions/common/url_pattern.h
index 23f0687845ccb6c895bc2b9a0b4a7f401171f205..efb93faf36e74babae8bce40cff22ac67444cb7a 100644
--- a/extensions/common/url_pattern.h
+++ b/extensions/common/url_pattern.h
@@ -81,6 +81,12 @@ class URLPattern {
NUM_PARSE_RESULTS
};
+ // Types of URLPattern that Parse() considers valid.
+ enum ParseOptions {
+ DENY_WILDCARD_FOR_EFFECTIVE_TLD,
+ ALLOW_WILDCARD_FOR_EFFECTIVE_TLD,
+ };
+
// The <all_urls> string pattern.
static const char kAllUrlsPattern[];
@@ -107,8 +113,10 @@ class URLPattern {
// Initializes this instance by parsing the provided string. Returns
// URLPattern::PARSE_SUCCESS on success, or an error code otherwise. On
// failure, this instance will have some intermediate values and is in an
- // invalid state.
+ // invalid state. If you want to allow the match pattern to specify a wildcard
+ // for the effective TLD, specify in |parse_options|.
ParseResult Parse(base::StringPiece pattern_str);
+ ParseResult Parse(base::StringPiece pattern_str, ParseOptions parse_options);
// Gets the bitmask of valid schemes.
int valid_schemes() const { return valid_schemes_; }
@@ -123,6 +131,15 @@ class URLPattern {
bool match_subdomains() const { return match_subdomains_; }
void SetMatchSubdomains(bool val);
+ // Gets whether host() contains an effective TLD. If false, during
+ // a match, the URL you're comparing must have its TLD removed
+ // prior to comparison.
+ // e.g. For the match pattern https://google.com/*
+ // If this is true: host() would be google.com
+ // If this is false: host() would be google
+ bool match_effective_tld() const { return match_effective_tld_; }
+ void SetMatchEffectiveTld(bool val);
+
// Gets the path the pattern matches with the leading slash. This can have
// embedded asterisks which are interpreted using glob rules.
const std::string& path() const { return path_; }
@@ -247,6 +264,12 @@ class URLPattern {
// component of the pattern's host was "*".
bool match_subdomains_;
+ // Whether we should match the effective TLD of the host. This is true by
+ // default and only false if ParseOptions is ALLOW_WILDCARD_FOR_EFFECTIVE_TLD
+ // and is only applicable when the the pattern's host ends with ".*"
+ // (e.g. https://example.*/*).
+ bool match_effective_tld_;
+
// The port.
std::string port_;
« no previous file with comments | « extensions/common/permissions/permissions_data.cc ('k') | extensions/common/url_pattern.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698