| 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 // Some Google related utility functions. | 5 // Some Google related utility functions. |
| 6 | 6 |
| 7 #ifndef CHROME_BROWSER_GOOGLE_GOOGLE_UTIL_H__ | 7 #ifndef CHROME_BROWSER_GOOGLE_GOOGLE_UTIL_H__ |
| 8 #define CHROME_BROWSER_GOOGLE_GOOGLE_UTIL_H__ | 8 #define CHROME_BROWSER_GOOGLE_GOOGLE_UTIL_H__ |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| 11 | 11 |
| 12 #include "base/basictypes.h" | 12 #include "base/basictypes.h" |
| 13 #include "base/string16.h" | |
| 14 | 13 |
| 15 class GURL; | 14 class GURL; |
| 16 class Profile; | 15 class Profile; |
| 17 | 16 |
| 18 // This namespace provides various helpers around handling Google-related URLs | 17 // This namespace provides various helpers around handling Google-related URLs |
| 19 // and state relating to Google Chrome distributions (such as RLZ). | 18 // and state relating to Google Chrome distributions (such as RLZ). |
| 20 namespace google_util { | 19 namespace google_util { |
| 21 | 20 |
| 22 // The query key that identifies a Google Extended API request for Instant. | 21 // The query key that identifies a Google Extended API request for Instant. |
| 23 const char kInstantExtendedAPIParam[] = "espv"; | 22 const char kInstantExtendedAPIParam[] = "espv"; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 38 | 37 |
| 39 // Returns in |brand| the brand code or distribution tag that has been | 38 // Returns in |brand| the brand code or distribution tag that has been |
| 40 // assigned to a partner. Returns false if the information is not available. | 39 // assigned to a partner. Returns false if the information is not available. |
| 41 bool GetBrand(std::string* brand); | 40 bool GetBrand(std::string* brand); |
| 42 | 41 |
| 43 // Returns in |brand| the reactivation brand code or distribution tag | 42 // Returns in |brand| the reactivation brand code or distribution tag |
| 44 // that has been assigned to a partner for reactivating a dormant chrome | 43 // that has been assigned to a partner for reactivating a dormant chrome |
| 45 // install. Returns false if the information is not available. | 44 // install. Returns false if the information is not available. |
| 46 bool GetReactivationBrand(std::string* brand); | 45 bool GetReactivationBrand(std::string* brand); |
| 47 | 46 |
| 48 // Returns in the search terms used to create the Google search URL |url|. | |
| 49 string16 GetSearchTermsFromGoogleSearchURL(const std::string& url); | |
| 50 | |
| 51 // WARNING: The following IsGoogleXXX() functions use heuristics to rule out | 47 // WARNING: The following IsGoogleXXX() functions use heuristics to rule out |
| 52 // "obviously false" answers. They do NOT guarantee that the string in question | 48 // "obviously false" answers. They do NOT guarantee that the string in question |
| 53 // is actually on a Google-owned domain, just that it looks plausible. If you | 49 // is actually on a Google-owned domain, just that it looks plausible. If you |
| 54 // need to restrict some behavior to only happen on Google's officially-owned | 50 // need to restrict some behavior to only happen on Google's officially-owned |
| 55 // domains, use TransportSecurityState::IsGooglePinnedProperty() instead. | 51 // domains, use TransportSecurityState::IsGooglePinnedProperty() instead. |
| 56 | 52 |
| 57 // Designate whether or not a URL checking function also checks for specific | 53 // Designate whether or not a URL checking function also checks for specific |
| 58 // subdomains, or only "www" and empty subdomains. | 54 // subdomains, or only "www" and empty subdomains. |
| 59 enum SubdomainPermission { | 55 enum SubdomainPermission { |
| 60 ALLOW_SUBDOMAIN, | 56 ALLOW_SUBDOMAIN, |
| (...skipping 18 matching lines...) Expand all Loading... |
| 79 // |subdomain_permission| is ALLOW_SUBDOMAIN, we check against host | 75 // |subdomain_permission| is ALLOW_SUBDOMAIN, we check against host |
| 80 // "*.google.<TLD>" instead. | 76 // "*.google.<TLD>" instead. |
| 81 bool IsGoogleHostname(const std::string& host, | 77 bool IsGoogleHostname(const std::string& host, |
| 82 SubdomainPermission subdomain_permission); | 78 SubdomainPermission subdomain_permission); |
| 83 // True if |url| represents a valid Google home page URL. | 79 // True if |url| represents a valid Google home page URL. |
| 84 bool IsGoogleHomePageUrl(const std::string& url); | 80 bool IsGoogleHomePageUrl(const std::string& url); |
| 85 // True if |url| represents a valid Google search URL. | 81 // True if |url| represents a valid Google search URL. |
| 86 bool IsGoogleSearchUrl(const std::string& url); | 82 bool IsGoogleSearchUrl(const std::string& url); |
| 87 // True if |url| represents a valid Google search URL used by the Instant | 83 // True if |url| represents a valid Google search URL used by the Instant |
| 88 // Extended API. | 84 // Extended API. |
| 85 // TODO(beaudoin): Replace with the new mechanism based on the user's default |
| 86 // search engine. See TemplateURL. |
| 89 bool IsInstantExtendedAPIGoogleSearchUrl(const std::string& url); | 87 bool IsInstantExtendedAPIGoogleSearchUrl(const std::string& url); |
| 90 | 88 |
| 91 // True if a build is strictly organic, according to its brand code. | 89 // True if a build is strictly organic, according to its brand code. |
| 92 bool IsOrganic(const std::string& brand); | 90 bool IsOrganic(const std::string& brand); |
| 93 | 91 |
| 94 // True if a build should run as organic during first run. This uses | 92 // True if a build should run as organic during first run. This uses |
| 95 // a slightly different set of brand codes from the standard IsOrganic | 93 // a slightly different set of brand codes from the standard IsOrganic |
| 96 // method. | 94 // method. |
| 97 bool IsOrganicFirstRun(const std::string& brand); | 95 bool IsOrganicFirstRun(const std::string& brand); |
| 98 | 96 |
| 99 // True if |brand| is an internet cafe brand code. | 97 // True if |brand| is an internet cafe brand code. |
| 100 bool IsInternetCafeBrandCode(const std::string& brand); | 98 bool IsInternetCafeBrandCode(const std::string& brand); |
| 101 | 99 |
| 102 // This class is meant to be used only from test code, and sets the brand | 100 // This class is meant to be used only from test code, and sets the brand |
| 103 // code returned by the function GetBrand() above while the object exists. | 101 // code returned by the function GetBrand() above while the object exists. |
| 104 class BrandForTesting { | 102 class BrandForTesting { |
| 105 public: | 103 public: |
| 106 explicit BrandForTesting(const std::string& brand); | 104 explicit BrandForTesting(const std::string& brand); |
| 107 ~BrandForTesting(); | 105 ~BrandForTesting(); |
| 108 | 106 |
| 109 private: | 107 private: |
| 110 std::string brand_; | 108 std::string brand_; |
| 111 DISALLOW_COPY_AND_ASSIGN(BrandForTesting); | 109 DISALLOW_COPY_AND_ASSIGN(BrandForTesting); |
| 112 }; | 110 }; |
| 113 | 111 |
| 114 } // namespace google_util | 112 } // namespace google_util |
| 115 | 113 |
| 116 #endif // CHROME_BROWSER_GOOGLE_GOOGLE_UTIL_H__ | 114 #endif // CHROME_BROWSER_GOOGLE_GOOGLE_UTIL_H__ |
| OLD | NEW |