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

Side by Side Diff: chrome/browser/search_engines/template_url.cc

Issue 7558014: Add a URL param to indicate group selection in Instant field trial. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed @pkasting's comments Created 9 years, 4 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/search_engines/template_url.h" 5 #include "chrome/browser/search_engines/template_url.h"
6 6
7 #include "base/i18n/case_conversion.h" 7 #include "base/i18n/case_conversion.h"
8 #include "base/i18n/icu_string_conversions.h" 8 #include "base/i18n/icu_string_conversions.h"
9 #include "base/i18n/rtl.h" 9 #include "base/i18n/rtl.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 static const char kGoogleAcceptedSuggestionParameter[] = 45 static const char kGoogleAcceptedSuggestionParameter[] =
46 "google:acceptedSuggestion"; 46 "google:acceptedSuggestion";
47 // Host/Domain Google searches are relative to. 47 // Host/Domain Google searches are relative to.
48 static const char kGoogleBaseURLParameter[] = "google:baseURL"; 48 static const char kGoogleBaseURLParameter[] = "google:baseURL";
49 static const char kGoogleBaseURLParameterFull[] = "{google:baseURL}"; 49 static const char kGoogleBaseURLParameterFull[] = "{google:baseURL}";
50 // Like google:baseURL, but for the Search Suggest capability. 50 // Like google:baseURL, but for the Search Suggest capability.
51 static const char kGoogleBaseSuggestURLParameter[] = 51 static const char kGoogleBaseSuggestURLParameter[] =
52 "google:baseSuggestURL"; 52 "google:baseSuggestURL";
53 static const char kGoogleBaseSuggestURLParameterFull[] = 53 static const char kGoogleBaseSuggestURLParameterFull[] =
54 "{google:baseSuggestURL}"; 54 "{google:baseSuggestURL}";
55 static const char kGoogleInstantFieldTrialGroupParameter[] =
56 "google:instantFieldTrialGroupParameter";
55 static const char kGoogleOriginalQueryForSuggestionParameter[] = 57 static const char kGoogleOriginalQueryForSuggestionParameter[] =
56 "google:originalQueryForSuggestion"; 58 "google:originalQueryForSuggestion";
57 static const char kGoogleRLZParameter[] = "google:RLZ"; 59 static const char kGoogleRLZParameter[] = "google:RLZ";
58 // Same as kSearchTermsParameter, with no escaping. 60 // Same as kSearchTermsParameter, with no escaping.
59 static const char kGoogleSearchFieldtrialParameter[] = 61 static const char kGoogleSearchFieldtrialParameter[] =
60 "google:searchFieldtrialParameter"; 62 "google:searchFieldtrialParameter";
61 static const char kGoogleUnescapedSearchTermsParameter[] = 63 static const char kGoogleUnescapedSearchTermsParameter[] =
62 "google:unescapedSearchTerms"; 64 "google:unescapedSearchTerms";
63 static const char kGoogleUnescapedSearchTermsParameterFull[] = 65 static const char kGoogleUnescapedSearchTermsParameterFull[] =
64 "{google:unescapedSearchTerms}"; 66 "{google:unescapedSearchTerms}";
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 replacements->push_back(Replacement(ENCODING, start)); 141 replacements->push_back(Replacement(ENCODING, start));
140 } else if (parameter == kOutputEncodingParameter) { 142 } else if (parameter == kOutputEncodingParameter) {
141 if (!optional) 143 if (!optional)
142 url->insert(start, kOutputEncodingType); 144 url->insert(start, kOutputEncodingType);
143 } else if (parameter == kGoogleAcceptedSuggestionParameter) { 145 } else if (parameter == kGoogleAcceptedSuggestionParameter) {
144 replacements->push_back(Replacement(GOOGLE_ACCEPTED_SUGGESTION, start)); 146 replacements->push_back(Replacement(GOOGLE_ACCEPTED_SUGGESTION, start));
145 } else if (parameter == kGoogleBaseURLParameter) { 147 } else if (parameter == kGoogleBaseURLParameter) {
146 replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); 148 replacements->push_back(Replacement(GOOGLE_BASE_URL, start));
147 } else if (parameter == kGoogleBaseSuggestURLParameter) { 149 } else if (parameter == kGoogleBaseSuggestURLParameter) {
148 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); 150 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start));
151 } else if (parameter == kGoogleInstantFieldTrialGroupParameter) {
152 replacements->push_back(Replacement(GOOGLE_INSTANT_FIELD_TRIAL_GROUP,
153 start));
149 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) { 154 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) {
150 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, 155 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION,
151 start)); 156 start));
152 } else if (parameter == kGoogleRLZParameter) { 157 } else if (parameter == kGoogleRLZParameter) {
153 replacements->push_back(Replacement(GOOGLE_RLZ, start)); 158 replacements->push_back(Replacement(GOOGLE_RLZ, start));
154 } else if (parameter == kGoogleSearchFieldtrialParameter) { 159 } else if (parameter == kGoogleSearchFieldtrialParameter) {
155 replacements->push_back(Replacement(GOOGLE_SEARCH_FIELDTRIAL_GROUP, start)); 160 replacements->push_back(Replacement(GOOGLE_SEARCH_FIELDTRIAL_GROUP, start));
156 } else if (parameter == kGoogleUnescapedSearchTermsParameter) { 161 } else if (parameter == kGoogleUnescapedSearchTermsParameter) {
157 replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start)); 162 replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start));
158 } else { 163 } else {
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 // static 278 // static
274 void TemplateURLRef::SetGoogleBaseURL(std::string* google_base_url) { 279 void TemplateURLRef::SetGoogleBaseURL(std::string* google_base_url) {
275 UIThreadSearchTermsData::SetGoogleBaseURL(google_base_url); 280 UIThreadSearchTermsData::SetGoogleBaseURL(google_base_url);
276 } 281 }
277 282
278 std::string TemplateURLRef::ReplaceSearchTerms( 283 std::string TemplateURLRef::ReplaceSearchTerms(
279 const TemplateURL& host, 284 const TemplateURL& host,
280 const string16& terms, 285 const string16& terms,
281 int accepted_suggestion, 286 int accepted_suggestion,
282 const string16& original_query_for_suggestion) const { 287 const string16& original_query_for_suggestion) const {
288 return ReplaceSearchTermsUsingProfile(NULL,
289 host,
290 terms,
291 accepted_suggestion,
292 original_query_for_suggestion);
293 }
294
295 std::string TemplateURLRef::ReplaceSearchTermsUsingProfile(
296 Profile* profile,
297 const TemplateURL& host,
298 const string16& terms,
299 int accepted_suggestion,
300 const string16& original_query_for_suggestion) const {
283 UIThreadSearchTermsData search_terms_data; 301 UIThreadSearchTermsData search_terms_data;
302 search_terms_data.set_profile(profile);
284 return ReplaceSearchTermsUsingTermsData(host, 303 return ReplaceSearchTermsUsingTermsData(host,
285 terms, 304 terms,
286 accepted_suggestion, 305 accepted_suggestion,
287 original_query_for_suggestion, 306 original_query_for_suggestion,
288 search_terms_data); 307 search_terms_data);
289 } 308 }
290 309
291 std::string TemplateURLRef::ReplaceSearchTermsUsingTermsData( 310 std::string TemplateURLRef::ReplaceSearchTermsUsingTermsData(
292 const TemplateURL& host, 311 const TemplateURL& host,
293 const string16& terms, 312 const string16& terms,
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 break; 387 break;
369 388
370 case GOOGLE_BASE_URL: 389 case GOOGLE_BASE_URL:
371 url.insert(i->index, search_terms_data.GoogleBaseURLValue()); 390 url.insert(i->index, search_terms_data.GoogleBaseURLValue());
372 break; 391 break;
373 392
374 case GOOGLE_BASE_SUGGEST_URL: 393 case GOOGLE_BASE_SUGGEST_URL:
375 url.insert(i->index, search_terms_data.GoogleBaseSuggestURLValue()); 394 url.insert(i->index, search_terms_data.GoogleBaseSuggestURLValue());
376 break; 395 break;
377 396
397 case GOOGLE_INSTANT_FIELD_TRIAL_GROUP:
398 url.insert(i->index, search_terms_data.InstantFieldTrialUrlParam());
399 break;
400
378 case GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION: 401 case GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION:
379 if (accepted_suggestion >= 0) 402 if (accepted_suggestion >= 0)
380 url.insert(i->index, "oq=" + UTF16ToUTF8(encoded_original_query) + 403 url.insert(i->index, "oq=" + UTF16ToUTF8(encoded_original_query) +
381 "&"); 404 "&");
382 break; 405 break;
383 406
384 case GOOGLE_RLZ: { 407 case GOOGLE_RLZ: {
385 // On platforms that don't have RLZ, we still want this branch 408 // On platforms that don't have RLZ, we still want this branch
386 // to happen so that we replace the RLZ template with the 409 // to happen so that we replace the RLZ template with the
387 // empty string. (If we don't handle this case, we hit a 410 // empty string. (If we don't handle this case, we hit a
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 } 752 }
730 753
731 std::string TemplateURL::GetExtensionId() const { 754 std::string TemplateURL::GetExtensionId() const {
732 DCHECK(IsExtensionKeyword()); 755 DCHECK(IsExtensionKeyword());
733 return GURL(url_.url()).host(); 756 return GURL(url_.url()).host();
734 } 757 }
735 758
736 bool TemplateURL::IsExtensionKeyword() const { 759 bool TemplateURL::IsExtensionKeyword() const {
737 return GURL(url_.url()).SchemeIs(chrome::kExtensionScheme); 760 return GURL(url_.url()).SchemeIs(chrome::kExtensionScheme);
738 } 761 }
OLDNEW
« no previous file with comments | « chrome/browser/search_engines/template_url.h ('k') | chrome/browser/search_engines/template_url_prepopulate_data.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698