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 #include "chrome/browser/search_engines/template_url.h" | 5 #include "chrome/browser/search_engines/template_url.h" |
6 | 6 |
7 #include "base/guid.h" | 7 #include "base/guid.h" |
8 #include "base/i18n/case_conversion.h" | 8 #include "base/i18n/case_conversion.h" |
9 #include "base/i18n/icu_string_conversions.h" | 9 #include "base/i18n/icu_string_conversions.h" |
10 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
48 // Host/Domain Google searches are relative to. | 48 // Host/Domain Google searches are relative to. |
49 const char kGoogleBaseURLParameter[] = "google:baseURL"; | 49 const char kGoogleBaseURLParameter[] = "google:baseURL"; |
50 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}"; | 50 const char kGoogleBaseURLParameterFull[] = "{google:baseURL}"; |
51 // Like google:baseURL, but for the Search Suggest capability. | 51 // Like google:baseURL, but for the Search Suggest capability. |
52 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL"; | 52 const char kGoogleBaseSuggestURLParameter[] = "google:baseSuggestURL"; |
53 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}"; | 53 const char kGoogleBaseSuggestURLParameterFull[] = "{google:baseSuggestURL}"; |
54 const char kGoogleInstantEnabledParameter[] = "google:instantEnabledParameter"; | 54 const char kGoogleInstantEnabledParameter[] = "google:instantEnabledParameter"; |
55 const char kGoogleOriginalQueryForSuggestionParameter[] = | 55 const char kGoogleOriginalQueryForSuggestionParameter[] = |
56 "google:originalQueryForSuggestion"; | 56 "google:originalQueryForSuggestion"; |
57 const char kGoogleRLZParameter[] = "google:RLZ"; | 57 const char kGoogleRLZParameter[] = "google:RLZ"; |
58 const char kGoogleSearchClient[] = "google:searchClient"; | |
58 // Same as kSearchTermsParameter, with no escaping. | 59 // Same as kSearchTermsParameter, with no escaping. |
59 const char kGoogleSearchFieldtrialParameter[] = | 60 const char kGoogleSearchFieldtrialParameter[] = |
60 "google:searchFieldtrialParameter"; | 61 "google:searchFieldtrialParameter"; |
61 const char kGoogleSuggestAPIKeyParameter[] = "google:suggestAPIKeyParameter"; | 62 const char kGoogleSuggestAPIKeyParameter[] = "google:suggestAPIKeyParameter"; |
62 const char kGoogleUnescapedSearchTermsParameter[] = | 63 const char kGoogleUnescapedSearchTermsParameter[] = |
63 "google:unescapedSearchTerms"; | 64 "google:unescapedSearchTerms"; |
64 const char kGoogleUnescapedSearchTermsParameterFull[] = | 65 const char kGoogleUnescapedSearchTermsParameterFull[] = |
65 "{google:unescapedSearchTerms}"; | 66 "{google:unescapedSearchTerms}"; |
66 | 67 |
67 // Display value for kSearchTermsParameter. | 68 // Display value for kSearchTermsParameter. |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
310 // NOTREACHED below.) | 311 // NOTREACHED below.) |
311 #if defined(ENABLE_RLZ) | 312 #if defined(ENABLE_RLZ) |
312 string16 rlz_string = search_terms_data.GetRlzParameterValue(); | 313 string16 rlz_string = search_terms_data.GetRlzParameterValue(); |
313 if (!rlz_string.empty()) { | 314 if (!rlz_string.empty()) { |
314 url.insert(i->index, "rlz=" + UTF16ToUTF8(rlz_string) + "&"); | 315 url.insert(i->index, "rlz=" + UTF16ToUTF8(rlz_string) + "&"); |
315 } | 316 } |
316 #endif | 317 #endif |
317 break; | 318 break; |
318 } | 319 } |
319 | 320 |
321 case GOOGLE_SEARCH_CLIENT: { | |
322 std::string client = search_terms_data.GetSearchClient(); | |
323 if (!client.empty()) { | |
Peter Kasting
2012/12/05 21:28:47
Nit: No {}
gone
2012/12/06 01:43:58
Done.
| |
324 url.insert(i->index, "client=" + client + "&"); | |
Peter Kasting
2012/12/05 21:28:47
Make sure the search folks like the "client=<whate
gone
2012/12/06 01:43:58
We've apparently been using this combination on ou
| |
325 } | |
326 break; | |
327 } | |
328 | |
320 case GOOGLE_SEARCH_FIELDTRIAL_GROUP: | 329 case GOOGLE_SEARCH_FIELDTRIAL_GROUP: |
321 // We are not currently running any fieldtrials that modulate the search | 330 // We are not currently running any fieldtrials that modulate the search |
322 // url. If we do, then we'd have some conditional insert such as: | 331 // url. If we do, then we'd have some conditional insert such as: |
323 // url.insert(i->index, used_www ? "gcx=w&" : "gcx=c&"); | 332 // url.insert(i->index, used_www ? "gcx=w&" : "gcx=c&"); |
324 break; | 333 break; |
325 | 334 |
326 case GOOGLE_UNESCAPED_SEARCH_TERMS: { | 335 case GOOGLE_UNESCAPED_SEARCH_TERMS: { |
327 std::string unescaped_terms; | 336 std::string unescaped_terms; |
328 base::UTF16ToCodepage(search_terms_args.search_terms, | 337 base::UTF16ToCodepage(search_terms_args.search_terms, |
329 input_encoding.c_str(), | 338 input_encoding.c_str(), |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
541 replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); | 550 replacements->push_back(Replacement(GOOGLE_BASE_URL, start)); |
542 } else if (parameter == kGoogleBaseSuggestURLParameter) { | 551 } else if (parameter == kGoogleBaseSuggestURLParameter) { |
543 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); | 552 replacements->push_back(Replacement(GOOGLE_BASE_SUGGEST_URL, start)); |
544 } else if (parameter == kGoogleInstantEnabledParameter) { | 553 } else if (parameter == kGoogleInstantEnabledParameter) { |
545 replacements->push_back(Replacement(GOOGLE_INSTANT_ENABLED, start)); | 554 replacements->push_back(Replacement(GOOGLE_INSTANT_ENABLED, start)); |
546 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) { | 555 } else if (parameter == kGoogleOriginalQueryForSuggestionParameter) { |
547 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, | 556 replacements->push_back(Replacement(GOOGLE_ORIGINAL_QUERY_FOR_SUGGESTION, |
548 start)); | 557 start)); |
549 } else if (parameter == kGoogleRLZParameter) { | 558 } else if (parameter == kGoogleRLZParameter) { |
550 replacements->push_back(Replacement(GOOGLE_RLZ, start)); | 559 replacements->push_back(Replacement(GOOGLE_RLZ, start)); |
560 } else if (parameter == kGoogleSearchClient) { | |
561 replacements->push_back(Replacement(GOOGLE_SEARCH_CLIENT, start)); | |
551 } else if (parameter == kGoogleSearchFieldtrialParameter) { | 562 } else if (parameter == kGoogleSearchFieldtrialParameter) { |
552 replacements->push_back(Replacement(GOOGLE_SEARCH_FIELDTRIAL_GROUP, start)); | 563 replacements->push_back(Replacement(GOOGLE_SEARCH_FIELDTRIAL_GROUP, start)); |
553 } else if (parameter == kGoogleSuggestAPIKeyParameter) { | 564 } else if (parameter == kGoogleSuggestAPIKeyParameter) { |
554 url->insert(start, | 565 url->insert(start, |
555 net::EscapeQueryParamValue(google_apis::GetAPIKey(), false)); | 566 net::EscapeQueryParamValue(google_apis::GetAPIKey(), false)); |
556 } else if (parameter == kGoogleUnescapedSearchTermsParameter) { | 567 } else if (parameter == kGoogleUnescapedSearchTermsParameter) { |
557 replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start)); | 568 replacements->push_back(Replacement(GOOGLE_UNESCAPED_SEARCH_TERMS, start)); |
558 } else if (!prepopulated_) { | 569 } else if (!prepopulated_) { |
559 // If it's a prepopulated URL, we know that it's safe to remove unknown | 570 // If it's a prepopulated URL, we know that it's safe to remove unknown |
560 // parameters, so just ignore this and return true below. Otherwise it could | 571 // parameters, so just ignore this and return true below. Otherwise it could |
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
830 } | 841 } |
831 | 842 |
832 void TemplateURL::ResetKeywordIfNecessary(bool force) { | 843 void TemplateURL::ResetKeywordIfNecessary(bool force) { |
833 if (IsGoogleSearchURLWithReplaceableKeyword() || force) { | 844 if (IsGoogleSearchURLWithReplaceableKeyword() || force) { |
834 DCHECK(!IsExtensionKeyword()); | 845 DCHECK(!IsExtensionKeyword()); |
835 GURL url(TemplateURLService::GenerateSearchURL(this)); | 846 GURL url(TemplateURLService::GenerateSearchURL(this)); |
836 if (url.is_valid()) | 847 if (url.is_valid()) |
837 data_.SetKeyword(TemplateURLService::GenerateKeyword(url)); | 848 data_.SetKeyword(TemplateURLService::GenerateKeyword(url)); |
838 } | 849 } |
839 } | 850 } |
OLD | NEW |