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 <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 const char kGoogleOriginalQueryForSuggestionParameter[] = | 80 const char kGoogleOriginalQueryForSuggestionParameter[] = |
81 "google:originalQueryForSuggestion"; | 81 "google:originalQueryForSuggestion"; |
82 const char kGooglePageClassificationParameter[] = "google:pageClassification"; | 82 const char kGooglePageClassificationParameter[] = "google:pageClassification"; |
83 const char kGoogleRLZParameter[] = "google:RLZ"; | 83 const char kGoogleRLZParameter[] = "google:RLZ"; |
84 const char kGoogleSearchClient[] = "google:searchClient"; | 84 const char kGoogleSearchClient[] = "google:searchClient"; |
85 const char kGoogleSearchFieldtrialParameter[] = | 85 const char kGoogleSearchFieldtrialParameter[] = |
86 "google:searchFieldtrialParameter"; | 86 "google:searchFieldtrialParameter"; |
87 #if defined (OS_ANDROID) | 87 #if defined (OS_ANDROID) |
88 const char kGoogleSearchVersion[] = "google:searchVersion"; | 88 const char kGoogleSearchVersion[] = "google:searchVersion"; |
89 #endif | 89 #endif |
| 90 const char kGoogleSessionToken[] = "google:sessionToken"; |
90 const char kGoogleSourceIdParameter[] = "google:sourceId"; | 91 const char kGoogleSourceIdParameter[] = "google:sourceId"; |
91 const char kGoogleSuggestAPIKeyParameter[] = "google:suggestAPIKeyParameter"; | 92 const char kGoogleSuggestAPIKeyParameter[] = "google:suggestAPIKeyParameter"; |
92 const char kGoogleSuggestClient[] = "google:suggestClient"; | 93 const char kGoogleSuggestClient[] = "google:suggestClient"; |
93 const char kGoogleSuggestRequestId[] = "google:suggestRid"; | 94 const char kGoogleSuggestRequestId[] = "google:suggestRid"; |
94 | 95 |
95 // Same as kSearchTermsParameter, with no escaping. | 96 // Same as kSearchTermsParameter, with no escaping. |
96 const char kGoogleUnescapedSearchTermsParameter[] = | 97 const char kGoogleUnescapedSearchTermsParameter[] = |
97 "google:unescapedSearchTerms"; | 98 "google:unescapedSearchTerms"; |
98 const char kGoogleUnescapedSearchTermsParameterFull[] = | 99 const char kGoogleUnescapedSearchTermsParameterFull[] = |
99 "{google:unescapedSearchTerms}"; | 100 "{google:unescapedSearchTerms}"; |
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
604 replacements->push_back(Replacement(GOOGLE_SEARCH_CLIENT, start)); | 605 replacements->push_back(Replacement(GOOGLE_SEARCH_CLIENT, start)); |
605 } else if (parameter == kGoogleSearchFieldtrialParameter) { | 606 } else if (parameter == kGoogleSearchFieldtrialParameter) { |
606 replacements->push_back(Replacement(GOOGLE_SEARCH_FIELDTRIAL_GROUP, start)); | 607 replacements->push_back(Replacement(GOOGLE_SEARCH_FIELDTRIAL_GROUP, start)); |
607 #if defined(OS_ANDROID) | 608 #if defined(OS_ANDROID) |
608 } else if (parameter == kGoogleSearchVersion) { | 609 } else if (parameter == kGoogleSearchVersion) { |
609 if (CommandLine::ForCurrentProcess()->HasSwitch( | 610 if (CommandLine::ForCurrentProcess()->HasSwitch( |
610 switches::kEnableAnswersInSuggest)) { | 611 switches::kEnableAnswersInSuggest)) { |
611 url->insert(start, "gs_rn=42&"); | 612 url->insert(start, "gs_rn=42&"); |
612 } | 613 } |
613 #endif | 614 #endif |
| 615 } else if (parameter == kGoogleSessionToken) { |
| 616 replacements->push_back(Replacement(GOOGLE_SESSION_TOKEN, start)); |
614 } else if (parameter == kGoogleSourceIdParameter) { | 617 } else if (parameter == kGoogleSourceIdParameter) { |
615 #if defined(OS_ANDROID) | 618 #if defined(OS_ANDROID) |
616 url->insert(start, "sourceid=chrome-mobile&"); | 619 url->insert(start, "sourceid=chrome-mobile&"); |
617 #else | 620 #else |
618 url->insert(start, "sourceid=chrome&"); | 621 url->insert(start, "sourceid=chrome&"); |
619 #endif | 622 #endif |
620 } else if (parameter == kGoogleSuggestAPIKeyParameter) { | 623 } else if (parameter == kGoogleSuggestAPIKeyParameter) { |
621 url->insert(start, | 624 url->insert(start, |
622 net::EscapeQueryParamValue(google_apis::GetAPIKey(), false)); | 625 net::EscapeQueryParamValue(google_apis::GetAPIKey(), false)); |
623 } else if (parameter == kGoogleSuggestClient) { | 626 } else if (parameter == kGoogleSuggestClient) { |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
969 HandleReplacement("client", client, *i, &url); | 972 HandleReplacement("client", client, *i, &url); |
970 break; | 973 break; |
971 } | 974 } |
972 | 975 |
973 case GOOGLE_SEARCH_FIELDTRIAL_GROUP: | 976 case GOOGLE_SEARCH_FIELDTRIAL_GROUP: |
974 // We are not currently running any fieldtrials that modulate the search | 977 // We are not currently running any fieldtrials that modulate the search |
975 // url. If we do, then we'd have some conditional insert such as: | 978 // url. If we do, then we'd have some conditional insert such as: |
976 // url.insert(i->index, used_www ? "gcx=w&" : "gcx=c&"); | 979 // url.insert(i->index, used_www ? "gcx=w&" : "gcx=c&"); |
977 break; | 980 break; |
978 | 981 |
| 982 case GOOGLE_SESSION_TOKEN: { |
| 983 std::string token = search_terms_args.session_token; |
| 984 if (!token.empty()) |
| 985 HandleReplacement("psi", token, *i, &url); |
| 986 break; |
| 987 } |
| 988 |
979 case GOOGLE_SUGGEST_CLIENT: | 989 case GOOGLE_SUGGEST_CLIENT: |
980 HandleReplacement( | 990 HandleReplacement( |
981 std::string(), search_terms_data.GetSuggestClient(), *i, &url); | 991 std::string(), search_terms_data.GetSuggestClient(), *i, &url); |
982 break; | 992 break; |
983 | 993 |
984 case GOOGLE_SUGGEST_REQUEST_ID: | 994 case GOOGLE_SUGGEST_REQUEST_ID: |
985 HandleReplacement( | 995 HandleReplacement( |
986 std::string(), search_terms_data.GetSuggestRequestIdentifier(), *i, | 996 std::string(), search_terms_data.GetSuggestRequestIdentifier(), *i, |
987 &url); | 997 &url); |
988 break; | 998 break; |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1375 // patterns. This means that given patterns | 1385 // patterns. This means that given patterns |
1376 // [ "http://foo/#q={searchTerms}", "http://foo/?q={searchTerms}" ], | 1386 // [ "http://foo/#q={searchTerms}", "http://foo/?q={searchTerms}" ], |
1377 // calling ExtractSearchTermsFromURL() on "http://foo/?q=bar#q=' would | 1387 // calling ExtractSearchTermsFromURL() on "http://foo/?q=bar#q=' would |
1378 // return false. This is important for at least Google, where such URLs | 1388 // return false. This is important for at least Google, where such URLs |
1379 // are invalid. | 1389 // are invalid. |
1380 return !search_terms->empty(); | 1390 return !search_terms->empty(); |
1381 } | 1391 } |
1382 } | 1392 } |
1383 return false; | 1393 return false; |
1384 } | 1394 } |
OLD | NEW |