| Index: chrome/browser/search_engines/template_url_service_android.cc
|
| diff --git a/chrome/browser/search_engines/template_url_service_android.cc b/chrome/browser/search_engines/template_url_service_android.cc
|
| index a759cf3d4d4f66b7909bda4e0a19d1f2d11fd974..b2bd0c36530de0da59912ee339943dec3690a377 100644
|
| --- a/chrome/browser/search_engines/template_url_service_android.cc
|
| +++ b/chrome/browser/search_engines/template_url_service_android.cc
|
| @@ -19,10 +19,6 @@
|
| #include "jni/TemplateUrlService_jni.h"
|
| #include "net/base/url_util.h"
|
|
|
| -using base::android::ConvertJavaStringToUTF16;
|
| -using base::android::ConvertUTF16ToJavaString;
|
| -using base::android::ConvertUTF8ToJavaString;
|
| -
|
| namespace {
|
|
|
| Profile* GetOriginalProfile() {
|
| @@ -122,8 +118,10 @@ TemplateUrlServiceAndroid::GetPrepopulatedTemplateUrlAt(JNIEnv* env,
|
| return Java_TemplateUrl_create(
|
| env,
|
| index,
|
| - ConvertUTF16ToJavaString(env, template_url->short_name()).obj(),
|
| - ConvertUTF16ToJavaString(env, template_url->keyword()).obj());
|
| + base::android::ConvertUTF16ToJavaString(
|
| + env, template_url->short_name()).obj(),
|
| + base::android::ConvertUTF16ToJavaString(
|
| + env, template_url->keyword()).obj());
|
| }
|
|
|
| bool TemplateUrlServiceAndroid::IsPrepopulatedTemplate(TemplateURL* url) {
|
| @@ -147,7 +145,7 @@ TemplateUrlServiceAndroid::GetUrlForSearchQuery(JNIEnv* env,
|
| const TemplateURL* default_provider =
|
| template_url_service_->GetDefaultSearchProvider();
|
|
|
| - base::string16 query(ConvertJavaStringToUTF16(env, jquery));
|
| + base::string16 query(base::android::ConvertJavaStringToUTF16(env, jquery));
|
|
|
| std::string url;
|
| if (default_provider &&
|
| @@ -159,14 +157,14 @@ TemplateUrlServiceAndroid::GetUrlForSearchQuery(JNIEnv* env,
|
| template_url_service_->search_terms_data());
|
| }
|
|
|
| - return ConvertUTF8ToJavaString(env, url);
|
| + return base::android::ConvertUTF8ToJavaString(env, url);
|
| }
|
|
|
| base::android::ScopedJavaLocalRef<jstring>
|
| TemplateUrlServiceAndroid::GetUrlForVoiceSearchQuery(JNIEnv* env,
|
| jobject obj,
|
| jstring jquery) {
|
| - base::string16 query(ConvertJavaStringToUTF16(env, jquery));
|
| + base::string16 query(base::android::ConvertJavaStringToUTF16(env, jquery));
|
| std::string url;
|
|
|
| if (!query.empty()) {
|
| @@ -176,7 +174,7 @@ TemplateUrlServiceAndroid::GetUrlForVoiceSearchQuery(JNIEnv* env,
|
| url = gurl.spec();
|
| }
|
|
|
| - return ConvertUTF8ToJavaString(env, url);
|
| + return base::android::ConvertUTF8ToJavaString(env, url);
|
| }
|
|
|
| base::android::ScopedJavaLocalRef<jstring>
|
| @@ -187,37 +185,49 @@ TemplateUrlServiceAndroid::ReplaceSearchTermsInUrl(JNIEnv* env,
|
| TemplateURL* default_provider =
|
| template_url_service_->GetDefaultSearchProvider();
|
|
|
| - base::string16 query(ConvertJavaStringToUTF16(env, jquery));
|
| - GURL current_url(ConvertJavaStringToUTF16(env, jcurrent_url));
|
| + base::string16 query(base::android::ConvertJavaStringToUTF16(env, jquery));
|
| + GURL current_url(base::android::ConvertJavaStringToUTF16(env, jcurrent_url));
|
| GURL destination_url(current_url);
|
| if (default_provider && !query.empty()) {
|
| bool refined_query = default_provider->ReplaceSearchTermsInURL(
|
| current_url, TemplateURLRef::SearchTermsArgs(query),
|
| template_url_service_->search_terms_data(), &destination_url);
|
| if (refined_query)
|
| - return ConvertUTF8ToJavaString(env, destination_url.spec());
|
| + return base::android::ConvertUTF8ToJavaString(
|
| + env, destination_url.spec());
|
| }
|
| return base::android::ScopedJavaLocalRef<jstring>(env, NULL);
|
| }
|
|
|
| base::android::ScopedJavaLocalRef<jstring>
|
| -TemplateUrlServiceAndroid::GetUrlForContextualSearchQuery(JNIEnv* env,
|
| - jobject obj,
|
| - jstring jquery) {
|
| - base::string16 query(ConvertJavaStringToUTF16(env, jquery));
|
| +TemplateUrlServiceAndroid::GetUrlForContextualSearchQuery(
|
| + JNIEnv* env,
|
| + jobject obj,
|
| + jstring jquery,
|
| + jstring jalternate_term) {
|
| + base::string16 query(base::android::ConvertJavaStringToUTF16(env, jquery));
|
| std::string url;
|
|
|
| if (!query.empty()) {
|
| GURL gurl(GetDefaultSearchURLForSearchTerms(template_url_service_, query));
|
| if (google_util::IsGoogleSearchUrl(gurl)) {
|
| - gurl = net::AppendQueryParameter(gurl, "ctxs", "1");
|
| + gurl = net::AppendQueryParameter(gurl, "ctxs", "2");
|
| // Indicate that the search page is being prefetched.
|
| gurl = net::AppendQueryParameter(gurl, "pf", "c");
|
| +
|
| + if (jalternate_term) {
|
| + std::string alternate_term(
|
| + base::android::ConvertJavaStringToUTF8(env, jalternate_term));
|
| + if (!alternate_term.empty()) {
|
| + gurl = net::AppendQueryParameter(
|
| + gurl, "ctxsl_alternate_term", alternate_term);
|
| + }
|
| + }
|
| }
|
| url = gurl.spec();
|
| }
|
|
|
| - return ConvertUTF8ToJavaString(env, url);
|
| + return base::android::ConvertUTF8ToJavaString(env, url);
|
| }
|
|
|
| static jlong Init(JNIEnv* env, jobject obj) {
|
|
|