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

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 27 matching lines...) Expand all
44 const char kOutputEncodingParameter[] = "outputEncoding"; 45 const char kOutputEncodingParameter[] = "outputEncoding";
45 46
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 // Host/Domain Google searches are relative to. 49 // Host/Domain Google searches are relative to.
49 const char kGoogleBaseURLParameter[] = "google:baseURL"; 50 const char kGoogleBaseURLParameter[] = "google:baseURL";
50 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}"; 51 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}";
51 // Like google:baseURL, but for the Search Suggest capability. 52 // Like google:baseURL, but for the Search Suggest capability.
52 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL"; 53 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL";
53 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}"; 54 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}";
55 const char kGoogleCursorPositionParameter[] = "google:cursorPosition";
54 const char kGoogleInstantEnabledParameter[] = "google:instantEnabledParameter"; 56 const char kGoogleInstantEnabledParameter[] = "google:instantEnabledParameter";
55 const char kGoogleOriginalQueryForSuggestionParameter[] = 57 const char kGoogleOriginalQueryForSuggestionParameter[] =
56 "google:originalQueryForSuggestion"; 58 "google:originalQueryForSuggestion";
57 const char kGoogleRLZParameter[] = "google:RLZ"; 59 const char kGoogleRLZParameter[] = "google:RLZ";
58 // Same as kSearchTermsParameter, with no escaping. 60 // Same as kSearchTermsParameter, with no escaping.
59 const char kGoogleSearchFieldtrialParameter[] = 61 const char kGoogleSearchFieldtrialParameter[] =
60 "google:searchFieldtrialParameter"; 62 "google:searchFieldtrialParameter";
61 const char kGoogleSuggestAPIKeyParameter[] = "google:suggestAPIKeyParameter"; 63 const char kGoogleSuggestAPIKeyParameter[] = "google:suggestAPIKeyParameter";
62 const char kGoogleUnescapedSearchTermsParameter[] = 64 const char kGoogleUnescapedSearchTermsParameter[] =
63 "google:unescapedSearchTerms"; 65 "google:unescapedSearchTerms";
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 return std::string(); 131 return std::string();
130 } 132 }
131 133
132 } // namespace 134 } // namespace
133 135
134 136
135 // TemplateURLRef::SearchTermsArgs -------------------------------------------- 137 // TemplateURLRef::SearchTermsArgs --------------------------------------------
136 138
137 TemplateURLRef::SearchTermsArgs::SearchTermsArgs(const string16& search_terms) 139 TemplateURLRef::SearchTermsArgs::SearchTermsArgs(const string16& search_terms)
138 : search_terms(search_terms), 140 : search_terms(search_terms),
139 accepted_suggestion(NO_SUGGESTIONS_AVAILABLE) { 141 accepted_suggestion(NO_SUGGESTIONS_AVAILABLE),
142 cursor_position(string16::npos) {
140 } 143 }
141 144
142 145
143 // TemplateURLRef ------------------------------------------------------------- 146 // TemplateURLRef -------------------------------------------------------------
144 147
145 TemplateURLRef::TemplateURLRef(TemplateURL* owner, Type type) 148 TemplateURLRef::TemplateURLRef(TemplateURL* owner, Type type)
146 : owner_(owner), 149 : owner_(owner),
147 type_(type), 150 type_(type),
148 index_in_owner_(-1), 151 index_in_owner_(-1),
149 parsed_(false), 152 parsed_(false),
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 break; 287 break;
285 288
286 case GOOGLE_BASE_URL: 289 case GOOGLE_BASE_URL:
287 url.insert(i->index, search_terms_data.GoogleBaseURLValue()); 290 url.insert(i->index, search_terms_data.GoogleBaseURLValue());
288 break; 291 break;
289 292
290 case GOOGLE_BASE_SUGGEST_URL: 293 case GOOGLE_BASE_SUGGEST_URL:
291 url.insert(i->index, search_terms_data.GoogleBaseSuggestURLValue()); 294 url.insert(i->index, search_terms_data.GoogleBaseSuggestURLValue());
292 break; 295 break;
293 296
297 case GOOGLE_CURSOR_POSITION:
298 if (search_terms_args.cursor_position != string16::npos)
299 url.insert(i->index,
300 base::StringPrintf("cp=%" PRIuS "&",
301 search_terms_args.cursor_position));
302 break;
303
294 case GOOGLE_INSTANT_ENABLED: 304 case GOOGLE_INSTANT_ENABLED:
295 url.insert(i->index, search_terms_data.InstantEnabledParam()); 305 url.insert(i->index, search_terms_data.InstantEnabledParam());
296 break; 306 break;
297 307
298 case GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION: 308 case GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION:
299 if (search_terms_args.accepted_suggestion >= 0 || 309 if (search_terms_args.accepted_suggestion >= 0 ||
300 !search_terms_args.assisted_query_stats.empty()) { 310 !search_terms_args.assisted_query_stats.empty()) {
301 url.insert(i->index, "oq=" + UTF16ToUTF8(encoded_original_query) + 311 url.insert(i->index, "oq=" + UTF16ToUTF8(encoded_original_query) +
302 "&"); 312 "&");
303 } 313 }
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 if (!optional) 544 if (!optional)
535 url->insert(start, kOutputEncodingType); 545 url->insert(start, kOutputEncodingType);
536 } else if (parameter == kGoogleAcceptedSuggestionParameter) { 546 } else if (parameter == kGoogleAcceptedSuggestionParameter) {
537 replacements->push_back(Replacement(GOOGLE_ACCEPTED_SUGGESTION, start)); 547 replacements->push_back(Replacement(GOOGLE_ACCEPTED_SUGGESTION, start));
538 } else if (parameter == kGoogleAssistedQueryStatsParameter) { 548 } else if (parameter == kGoogleAssistedQueryStatsParameter) {
539 replacements->push_back(Replacement(GOOGLE_ASSISTED_QUERY_STATS, start)); 549 replacements->push_back(Replacement(GOOGLE_ASSISTED_QUERY_STATS, start));
540 } else if (parameter == kGoogleBaseURLParameter) { 550 } else if (parameter == kGoogleBaseURLParameter) {
541 replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); 551 replacements->push_back(Replacement(GOOGLE_BASE_URL, start));
542 } else if (parameter == kGoogleBaseSuggestURLParameter) { 552 } else if (parameter == kGoogleBaseSuggestURLParameter) {
543 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); 553 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start));
554 } else if (parameter == kGoogleCursorPositionParameter) {
555 replacements->push_back(Replacement(GOOGLE_CURSOR_POSITION, start));
544 } else if (parameter == kGoogleInstantEnabledParameter) { 556 } else if (parameter == kGoogleInstantEnabledParameter) {
545 replacements->push_back(Replacement(GOOGLE_INSTANT_ENABLED, start)); 557 replacements->push_back(Replacement(GOOGLE_INSTANT_ENABLED, start));
546 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) { 558 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) {
547 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, 559 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION,
548 start)); 560 start));
549 } else if (parameter == kGoogleRLZParameter) { 561 } else if (parameter == kGoogleRLZParameter) {
550 replacements->push_back(Replacement(GOOGLE_RLZ, start)); 562 replacements->push_back(Replacement(GOOGLE_RLZ, start));
551 } else if (parameter == kGoogleSearchFieldtrialParameter) { 563 } else if (parameter == kGoogleSearchFieldtrialParameter) {
552 replacements->push_back(Replacement(GOOGLE_SEARCH_FIELDTRIAL_GROUP, start)); 564 replacements->push_back(Replacement(GOOGLE_SEARCH_FIELDTRIAL_GROUP, start));
553 } else if (parameter == kGoogleSuggestAPIKeyParameter) { 565 } else if (parameter == kGoogleSuggestAPIKeyParameter) {
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 } 842 }
831 843
832 void TemplateURL::ResetKeywordIfNecessary(bool force) { 844 void TemplateURL::ResetKeywordIfNecessary(bool force) {
833 if (IsGoogleSearchURLWithReplaceableKeyword() || force) { 845 if (IsGoogleSearchURLWithReplaceableKeyword() || force) {
834 DCHECK(!IsExtensionKeyword()); 846 DCHECK(!IsExtensionKeyword());
835 GURL url(TemplateURLService::GenerateSearchURL(this)); 847 GURL url(TemplateURLService::GenerateSearchURL(this));
836 if (url.is_valid()) 848 if (url.is_valid())
837 data_.SetKeyword(TemplateURLService::GenerateKeyword(url)); 849 data_.SetKeyword(TemplateURLService::GenerateKeyword(url));
838 } 850 }
839 } 851 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698