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

Unified Diff: chrome/common/content_settings_pattern.h

Issue 518803009: Move content_settings_pattern and content_settings_pattern_parser to the content_settings component. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 3 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 | « chrome/common/content_settings.h ('k') | chrome/common/content_settings_pattern.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/content_settings_pattern.h
diff --git a/chrome/common/content_settings_pattern.h b/chrome/common/content_settings_pattern.h
deleted file mode 100644
index 067301454a3c0940c5bc54f5921c55a80f0fee0e..0000000000000000000000000000000000000000
--- a/chrome/common/content_settings_pattern.h
+++ /dev/null
@@ -1,214 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Patterns used in content setting rules.
-
-#ifndef CHROME_COMMON_CONTENT_SETTINGS_PATTERN_H_
-#define CHROME_COMMON_CONTENT_SETTINGS_PATTERN_H_
-
-#include <string>
-
-#include "base/gtest_prod_util.h"
-
-class GURL;
-
-namespace content_settings {
-class PatternParser;
-}
-
-// A pattern used in content setting rules. See |IsValid| for a description of
-// possible patterns.
-class ContentSettingsPattern {
- public:
- // Each content settings pattern describes a set of origins. Patterns, and the
- // sets they describe, have specific relations. |Relation| describes the
- // relation of two patterns A and B. When pattern A is compared with pattern B
- // (A compare B) interesting relations are:
- // - IDENTITY:
- // Pattern A and B are identical. The patterns are equal.
- //
- // - DISJOINT_ORDER_PRE:
- // Pattern A and B have no intersection. A and B never match the origin of
- // a URL at the same time. But pattern A has a higher precedence than
- // pattern B when patterns are sorted.
- //
- // - DISJOINT_ORDER_POST:
- // Pattern A and B have no intersection. A and B never match the origin of
- // a URL at the same time. But pattern A has a lower precedence than
- // pattern B when patterns are sorted.
- //
- // - SUCCESSOR:
- // Pattern A and B have an intersection. But pattern B has a higher
- // precedence than pattern A for URLs that are matched by both pattern.
- //
- // - PREDECESSOR:
- // Pattern A and B have an intersection. But pattern A has a higher
- // precedence than pattern B for URLs that are matched by both pattern.
- enum Relation {
- DISJOINT_ORDER_POST = -2,
- SUCCESSOR = -1,
- IDENTITY = 0,
- PREDECESSOR = 1,
- DISJOINT_ORDER_PRE = 2,
- };
-
- struct PatternParts {
- PatternParts();
- ~PatternParts();
-
- // Lowercase string of the URL scheme to match. This string is empty if the
- // |is_scheme_wildcard| flag is set.
- std::string scheme;
-
- // True if the scheme wildcard is set.
- bool is_scheme_wildcard;
-
- // Normalized string that is either of the following:
- // - IPv4 or IPv6
- // - hostname
- // - domain
- // - empty string if the |is_host_wildcard flag is set.
- std::string host;
-
- // True if the domain wildcard is set.
- bool has_domain_wildcard;
-
- // String with the port to match. This string is empty if the
- // |is_port_wildcard| flag is set.
- std::string port;
-
- // True if the port wildcard is set.
- bool is_port_wildcard;
-
- // TODO(markusheintz): Needed for legacy reasons. Remove. Path
- // specification. Only used for content settings pattern with a "file"
- // scheme part.
- std::string path;
-
- // True if the path wildcard is set.
- bool is_path_wildcard;
- };
-
- class BuilderInterface {
- public:
- virtual ~BuilderInterface() {}
-
- virtual BuilderInterface* WithPort(const std::string& port) = 0;
-
- virtual BuilderInterface* WithPortWildcard() = 0;
-
- virtual BuilderInterface* WithHost(const std::string& host) = 0;
-
- virtual BuilderInterface* WithDomainWildcard() = 0;
-
- virtual BuilderInterface* WithScheme(const std::string& scheme) = 0;
-
- virtual BuilderInterface* WithSchemeWildcard() = 0;
-
- virtual BuilderInterface* WithPath(const std::string& path) = 0;
-
- virtual BuilderInterface* WithPathWildcard() = 0;
-
- virtual BuilderInterface* Invalid() = 0;
-
- // Returns a content settings pattern according to the current configuration
- // of the builder.
- virtual ContentSettingsPattern Build() = 0;
- };
-
- static BuilderInterface* CreateBuilder(bool use_legacy_validate);
-
- // The version of the pattern format implemented.
- static const int kContentSettingsPatternVersion;
-
- // Returns a wildcard content settings pattern that matches all possible valid
- // origins.
- static ContentSettingsPattern Wildcard();
-
- // Returns a pattern that matches the scheme and host of this URL, as well as
- // all subdomains and ports.
- static ContentSettingsPattern FromURL(const GURL& url);
-
- // Returns a pattern that matches exactly this URL.
- static ContentSettingsPattern FromURLNoWildcard(const GURL& url);
-
- // Returns a pattern that matches the given pattern specification.
- // Valid patterns specifications are:
- // - [*.]domain.tld (matches domain.tld and all sub-domains)
- // - host (matches an exact hostname)
- // - scheme://host:port (supported schemes: http,https)
- // - scheme://[*.]domain.tld:port (supported schemes: http,https)
- // - file://path (The path has to be an absolute path and start with a '/')
- // - a.b.c.d (matches an exact IPv4 ip)
- // - [a:b:c:d:e:f:g:h] (matches an exact IPv6 ip)
- static ContentSettingsPattern FromString(const std::string& pattern_spec);
-
- // Sets the scheme that doesn't support domain wildcard and port.
- // Needs to be called by the embedder before using ContentSettingsPattern.
- // |scheme| can't be NULL, and the pointed string must remain alive until the
- // app terminates.
- static void SetNonWildcardDomainNonPortScheme(const char* scheme);
-
- // Compares |scheme| against the scheme set by the embedder.
- static bool IsNonWildcardDomainNonPortScheme(const std::string& scheme);
-
- // Constructs an empty pattern. Empty patterns are invalid patterns. Invalid
- // patterns match nothing.
- ContentSettingsPattern();
-
- // True if this is a valid pattern.
- bool IsValid() const { return is_valid_; }
-
- // True if |url| matches this pattern.
- bool Matches(const GURL& url) const;
-
- // True if this pattern matches all hosts (i.e. it has a host wildcard).
- bool MatchesAllHosts() const;
-
- // Returns a std::string representation of this pattern.
- std::string ToString() const;
-
- // Compares the pattern with a given |other| pattern and returns the
- // |Relation| of the two patterns.
- Relation Compare(const ContentSettingsPattern& other) const;
-
- // Returns true if the pattern and the |other| pattern are identical.
- bool operator==(const ContentSettingsPattern& other) const;
-
- // Returns true if the pattern and the |other| pattern are not identical.
- bool operator!=(const ContentSettingsPattern& other) const;
-
- // Returns true if the pattern has a lower priority than the |other| pattern.
- bool operator<(const ContentSettingsPattern& other) const;
-
- // Returns true if the pattern has a higher priority than the |other| pattern.
- bool operator>(const ContentSettingsPattern& other) const;
-
- private:
- friend class content_settings::PatternParser;
- friend class ContentSettingsPatternSerializer;
- FRIEND_TEST_ALL_PREFIXES(ContentSettingsPatternParserTest, SerializePatterns);
-
- class Builder;
-
- static Relation CompareScheme(
- const ContentSettingsPattern::PatternParts& parts,
- const ContentSettingsPattern::PatternParts& other_parts);
-
- static Relation CompareHost(
- const ContentSettingsPattern::PatternParts& parts,
- const ContentSettingsPattern::PatternParts& other_parts);
-
- static Relation ComparePort(
- const ContentSettingsPattern::PatternParts& parts,
- const ContentSettingsPattern::PatternParts& other_parts);
-
- ContentSettingsPattern(const PatternParts& parts, bool valid);
-
- PatternParts parts_;
-
- bool is_valid_;
-};
-
-#endif // CHROME_COMMON_CONTENT_SETTINGS_PATTERN_H_
« no previous file with comments | « chrome/common/content_settings.h ('k') | chrome/common/content_settings_pattern.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698