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

Side by Side Diff: chrome/browser/google/google_util.cc

Issue 238783003: Merge 262846 "Revert 255617, due to it not tracking use of the link doctor page." (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1916/src/
Patch Set: Created 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/google/google_util.h ('k') | chrome/browser/net/dns_probe_browsertest.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) 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 #include "chrome/browser/google/google_util.h" 5 #include "chrome/browser/google/google_util.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 10 matching lines...) Expand all
21 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" 21 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
22 #include "net/base/url_util.h" 22 #include "net/base/url_util.h"
23 #include "url/gurl.h" 23 #include "url/gurl.h"
24 24
25 #if defined(OS_MACOSX) 25 #if defined(OS_MACOSX)
26 #include "chrome/browser/mac/keystone_glue.h" 26 #include "chrome/browser/mac/keystone_glue.h"
27 #elif defined(OS_CHROMEOS) 27 #elif defined(OS_CHROMEOS)
28 #include "chrome/browser/google/google_util_chromeos.h" 28 #include "chrome/browser/google/google_util_chromeos.h"
29 #endif 29 #endif
30 30
31 // Only use Link Doctor on official builds. It uses an API key, too, but
32 // seems best to just disable it, for more responsive error pages and to reduce
33 // server load.
34 #if defined(GOOGLE_CHROME_BUILD) 31 #if defined(GOOGLE_CHROME_BUILD)
35 #define LINKDOCTOR_SERVER_REQUEST_URL "https://www.googleapis.com/rpc" 32 #include "chrome/browser/google/linkdoctor_internal/linkdoctor_internal.h"
36 #else 33 #endif
37 #define LINKDOCTOR_SERVER_REQUEST_URL "" 34
35 #ifndef LINKDOCTOR_SERVER_REQUEST_URL
36 #define LINKDOCTOR_SERVER_REQUEST_URL std::string()
38 #endif 37 #endif
39 38
40 39
41 // Helpers -------------------------------------------------------------------- 40 // Helpers --------------------------------------------------------------------
42 41
43 namespace { 42 namespace {
44 43
45 const char* brand_for_testing = NULL; 44 const char* brand_for_testing = NULL;
46 bool gUseMockLinkDoctorBaseURLForTesting = false; 45 bool gUseMockLinkDoctorBaseURLForTesting = false;
47 46
(...skipping 21 matching lines...) Expand all
69 GURL LinkDoctorBaseURL() { 68 GURL LinkDoctorBaseURL() {
70 if (gUseMockLinkDoctorBaseURLForTesting) 69 if (gUseMockLinkDoctorBaseURLForTesting)
71 return GURL("http://mock.linkdoctor.url/for?testing"); 70 return GURL("http://mock.linkdoctor.url/for?testing");
72 return GURL(LINKDOCTOR_SERVER_REQUEST_URL); 71 return GURL(LINKDOCTOR_SERVER_REQUEST_URL);
73 } 72 }
74 73
75 void SetMockLinkDoctorBaseURLForTesting() { 74 void SetMockLinkDoctorBaseURLForTesting() {
76 gUseMockLinkDoctorBaseURLForTesting = true; 75 gUseMockLinkDoctorBaseURLForTesting = true;
77 } 76 }
78 77
79 std::string GetGoogleLocale() { 78 GURL AppendGoogleLocaleParam(const GURL& url) {
80 std::string locale = g_browser_process->GetApplicationLocale();
81 // Google does not yet recognize 'nb' for Norwegian Bokmal, but it uses 79 // Google does not yet recognize 'nb' for Norwegian Bokmal, but it uses
82 // 'no' for that. 80 // 'no' for that.
81 std::string locale = g_browser_process->GetApplicationLocale();
83 if (locale == "nb") 82 if (locale == "nb")
84 return "no"; 83 locale = "no";
85 return locale; 84 return net::AppendQueryParameter(url, "hl", locale);
86 }
87
88 GURL AppendGoogleLocaleParam(const GURL& url) {
89 return net::AppendQueryParameter(url, "hl", GetGoogleLocale());
90 } 85 }
91 86
92 std::string StringAppendGoogleLocaleParam(const std::string& url) { 87 std::string StringAppendGoogleLocaleParam(const std::string& url) {
93 GURL original_url(url); 88 GURL original_url(url);
94 DCHECK(original_url.is_valid()); 89 DCHECK(original_url.is_valid());
95 GURL localized_url = AppendGoogleLocaleParam(original_url); 90 GURL localized_url = AppendGoogleLocaleParam(original_url);
96 return localized_url.spec(); 91 return localized_url.spec();
97 } 92 }
98 93
99 std::string GetGoogleCountryCode(Profile* profile) { 94 GURL AppendGoogleTLDParam(Profile* profile, const GURL& url) {
100 const std::string google_hostname = 95 const std::string google_domain(
101 GoogleURLTracker::GoogleURL(profile).host(); 96 net::registry_controlled_domains::GetDomainAndRegistry(
102 const size_t last_dot = google_hostname.find_last_of('.'); 97 GoogleURLTracker::GoogleURL(profile),
103 if (last_dot == std::string::npos) { 98 net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES));
99 const size_t first_dot = google_domain.find('.');
100 if (first_dot == std::string::npos) {
104 NOTREACHED(); 101 NOTREACHED();
102 return url;
105 } 103 }
106 std::string country_code = google_hostname.substr(last_dot + 1); 104 return net::AppendQueryParameter(url, "sd",
107 // Assume the com TLD implies the US. 105 google_domain.substr(first_dot + 1));
108 if (country_code == "com")
109 return "us";
110 // Google uses the Unicode Common Locale Data Repository (CLDR), and the CLDR
111 // code for the UK is "gb".
112 if (country_code == "uk")
113 return "gb";
114 // Catalonia does not have a CLDR country code, since it's a region in Spain,
115 // so use Spain instead.
116 if (country_code == "cat")
117 return "es";
118 return country_code;
119 }
120
121 GURL GetGoogleSearchURL(Profile* profile) {
122 // The url returned by the tracker does not include the "/search" or the
123 // "q=" query string.
124 std::string search_path = "search";
125 std::string query_string = "q=";
126 GURL::Replacements replacements;
127 replacements.SetPathStr(search_path);
128 replacements.SetQueryStr(query_string);
129 return GoogleURLTracker::GoogleURL(profile).ReplaceComponents(replacements);
130 } 106 }
131 107
132 #if defined(OS_WIN) 108 #if defined(OS_WIN)
133 109
134 bool GetBrand(std::string* brand) { 110 bool GetBrand(std::string* brand) {
135 if (brand_for_testing) { 111 if (brand_for_testing) {
136 brand->assign(brand_for_testing); 112 brand->assign(brand_for_testing);
137 return true; 113 return true;
138 } 114 }
139 115
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 DCHECK(brand_for_testing == NULL); 291 DCHECK(brand_for_testing == NULL);
316 brand_for_testing = brand_.c_str(); 292 brand_for_testing = brand_.c_str();
317 } 293 }
318 294
319 BrandForTesting::~BrandForTesting() { 295 BrandForTesting::~BrandForTesting() {
320 brand_for_testing = NULL; 296 brand_for_testing = NULL;
321 } 297 }
322 298
323 299
324 } // namespace google_util 300 } // namespace google_util
OLDNEW
« no previous file with comments | « chrome/browser/google/google_util.h ('k') | chrome/browser/net/dns_probe_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698