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

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

Issue 11414303: Make Google Search autocomplete provider cursor aware. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 8 years 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) 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/search_engines/template_url.h" 5 #include "chrome/browser/search_engines/template_url.h"
6 6
7 #include "base/format_macros.h"
7 #include "base/guid.h" 8 #include "base/guid.h"
8 #include "base/i18n/case_conversion.h" 9 #include "base/i18n/case_conversion.h"
9 #include "base/i18n/icu_string_conversions.h" 10 #include "base/i18n/icu_string_conversions.h"
10 #include "base/i18n/rtl.h" 11 #include "base/i18n/rtl.h"
11 #include "base/logging.h" 12 #include "base/logging.h"
12 #include "base/metrics/field_trial.h" 13 #include "base/metrics/field_trial.h"
13 #include "base/string_number_conversions.h" 14 #include "base/string_number_conversions.h"
14 #include "base/string_util.h" 15 #include "base/string_util.h"
15 #include "base/stringprintf.h" 16 #include "base/stringprintf.h"
16 #include "base/utf_string_conversions.h" 17 #include "base/utf_string_conversions.h"
(...skipping 29 matching lines...) Expand all
46 const char kGoogleAcceptedSuggestionParameter[] = "google:acceptedSuggestion"; 47 const char kGoogleAcceptedSuggestionParameter[] = "google:acceptedSuggestion";
47 const char kGoogleAssistedQueryStatsParameter[] = "google:assistedQueryStats"; 48 const char kGoogleAssistedQueryStatsParameter[] = "google:assistedQueryStats";
48 49
49 // Host/Domain Google searches are relative to. 50 // Host/Domain Google searches are relative to.
50 const char kGoogleBaseURLParameter[] = "google:baseURL"; 51 const char kGoogleBaseURLParameter[] = "google:baseURL";
51 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}"; 52 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}";
52 53
53 // Like google:baseURL, but for the Search Suggest capability. 54 // Like google:baseURL, but for the Search Suggest capability.
54 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL"; 55 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL";
55 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}"; 56 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}";
56 57 const char kGoogleCursorPositionParameter[] = "google:cursorPosition";
57 const char kGoogleInstantEnabledParameter[] = "google:instantEnabledParameter"; 58 const char kGoogleInstantEnabledParameter[] = "google:instantEnabledParameter";
58 const char kGoogleInstantExtendedEnabledParameter[] = 59 const char kGoogleInstantExtendedEnabledParameter[] =
59 "google:instantExtendedEnabledParameter"; 60 "google:instantExtendedEnabledParameter";
60 const char kGoogleOriginalQueryForSuggestionParameter[] = 61 const char kGoogleOriginalQueryForSuggestionParameter[] =
61 "google:originalQueryForSuggestion"; 62 "google:originalQueryForSuggestion";
62 const char kGoogleRLZParameter[] = "google:RLZ"; 63 const char kGoogleRLZParameter[] = "google:RLZ";
63 const char kGoogleSearchClient[] = "google:searchClient"; 64 const char kGoogleSearchClient[] = "google:searchClient";
64 const char kGoogleSearchFieldtrialParameter[] = 65 const char kGoogleSearchFieldtrialParameter[] =
65 "google:searchFieldtrialParameter"; 66 "google:searchFieldtrialParameter";
66 const char kGoogleSourceIdParameter[] = "google:sourceId"; 67 const char kGoogleSourceIdParameter[] = "google:sourceId";
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 return std::string(); 138 return std::string();
138 } 139 }
139 140
140 } // namespace 141 } // namespace
141 142
142 143
143 // TemplateURLRef::SearchTermsArgs -------------------------------------------- 144 // TemplateURLRef::SearchTermsArgs --------------------------------------------
144 145
145 TemplateURLRef::SearchTermsArgs::SearchTermsArgs(const string16& search_terms) 146 TemplateURLRef::SearchTermsArgs::SearchTermsArgs(const string16& search_terms)
146 : search_terms(search_terms), 147 : search_terms(search_terms),
147 accepted_suggestion(NO_SUGGESTIONS_AVAILABLE) { 148 accepted_suggestion(NO_SUGGESTIONS_AVAILABLE),
149 cursor_position(string16::npos) {
148 } 150 }
149 151
150 152
151 // TemplateURLRef ------------------------------------------------------------- 153 // TemplateURLRef -------------------------------------------------------------
152 154
153 TemplateURLRef::TemplateURLRef(TemplateURL* owner, Type type) 155 TemplateURLRef::TemplateURLRef(TemplateURL* owner, Type type)
154 : owner_(owner), 156 : owner_(owner),
155 type_(type), 157 type_(type),
156 index_in_owner_(-1), 158 index_in_owner_(-1),
157 parsed_(false), 159 parsed_(false),
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 } 291 }
290 292
291 case GOOGLE_BASE_URL: 293 case GOOGLE_BASE_URL:
292 url.insert(i->index, search_terms_data.GoogleBaseURLValue()); 294 url.insert(i->index, search_terms_data.GoogleBaseURLValue());
293 break; 295 break;
294 296
295 case GOOGLE_BASE_SUGGEST_URL: 297 case GOOGLE_BASE_SUGGEST_URL:
296 url.insert(i->index, search_terms_data.GoogleBaseSuggestURLValue()); 298 url.insert(i->index, search_terms_data.GoogleBaseSuggestURLValue());
297 break; 299 break;
298 300
301 case GOOGLE_CURSOR_POSITION:
302 if (search_terms_args.cursor_position != string16::npos)
303 url.insert(i->index,
304 base::StringPrintf("cp=%" PRIuS "&",
305 search_terms_args.cursor_position));
306 break;
307
299 case GOOGLE_INSTANT_ENABLED: 308 case GOOGLE_INSTANT_ENABLED:
300 url.insert(i->index, search_terms_data.InstantEnabledParam()); 309 url.insert(i->index, search_terms_data.InstantEnabledParam());
301 break; 310 break;
302 311
303 case GOOGLE_INSTANT_EXTENDED_ENABLED: 312 case GOOGLE_INSTANT_EXTENDED_ENABLED:
304 url.insert(i->index, search_terms_data.InstantExtendedEnabledParam()); 313 url.insert(i->index, search_terms_data.InstantExtendedEnabledParam());
305 break; 314 break;
306 315
307 case GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION: 316 case GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION:
308 if (search_terms_args.accepted_suggestion >= 0 || 317 if (search_terms_args.accepted_suggestion >= 0 ||
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 if (!optional) 557 if (!optional)
549 url->insert(start, kOutputEncodingType); 558 url->insert(start, kOutputEncodingType);
550 } else if (parameter == kGoogleAcceptedSuggestionParameter) { 559 } else if (parameter == kGoogleAcceptedSuggestionParameter) {
551 replacements->push_back(Replacement(GOOGLE_ACCEPTED_SUGGESTION, start)); 560 replacements->push_back(Replacement(GOOGLE_ACCEPTED_SUGGESTION, start));
552 } else if (parameter == kGoogleAssistedQueryStatsParameter) { 561 } else if (parameter == kGoogleAssistedQueryStatsParameter) {
553 replacements->push_back(Replacement(GOOGLE_ASSISTED_QUERY_STATS, start)); 562 replacements->push_back(Replacement(GOOGLE_ASSISTED_QUERY_STATS, start));
554 } else if (parameter == kGoogleBaseURLParameter) { 563 } else if (parameter == kGoogleBaseURLParameter) {
555 replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); 564 replacements->push_back(Replacement(GOOGLE_BASE_URL, start));
556 } else if (parameter == kGoogleBaseSuggestURLParameter) { 565 } else if (parameter == kGoogleBaseSuggestURLParameter) {
557 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); 566 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start));
567 } else if (parameter == kGoogleCursorPositionParameter) {
568 replacements->push_back(Replacement(GOOGLE_CURSOR_POSITION, start));
558 } else if (parameter == kGoogleInstantEnabledParameter) { 569 } else if (parameter == kGoogleInstantEnabledParameter) {
559 replacements->push_back(Replacement(GOOGLE_INSTANT_ENABLED, start)); 570 replacements->push_back(Replacement(GOOGLE_INSTANT_ENABLED, start));
560 } else if (parameter == kGoogleInstantExtendedEnabledParameter) { 571 } else if (parameter == kGoogleInstantExtendedEnabledParameter) {
561 replacements->push_back(Replacement(GOOGLE_INSTANT_EXTENDED_ENABLED, 572 replacements->push_back(Replacement(GOOGLE_INSTANT_EXTENDED_ENABLED,
562 start)); 573 start));
563 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) { 574 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) {
564 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, 575 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION,
565 start)); 576 start));
566 } else if (parameter == kGoogleRLZParameter) { 577 } else if (parameter == kGoogleRLZParameter) {
567 replacements->push_back(Replacement(GOOGLE_RLZ, start)); 578 replacements->push_back(Replacement(GOOGLE_RLZ, start));
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
855 } 866 }
856 867
857 void TemplateURL::ResetKeywordIfNecessary(bool force) { 868 void TemplateURL::ResetKeywordIfNecessary(bool force) {
858 if (IsGoogleSearchURLWithReplaceableKeyword() || force) { 869 if (IsGoogleSearchURLWithReplaceableKeyword() || force) {
859 DCHECK(!IsExtensionKeyword()); 870 DCHECK(!IsExtensionKeyword());
860 GURL url(TemplateURLService::GenerateSearchURL(this)); 871 GURL url(TemplateURLService::GenerateSearchURL(this));
861 if (url.is_valid()) 872 if (url.is_valid())
862 data_.SetKeyword(TemplateURLService::GenerateKeyword(url)); 873 data_.SetKeyword(TemplateURLService::GenerateKeyword(url));
863 } 874 }
864 } 875 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698