Commit 8ab8c6d9 authored by donnd's avatar donnd Committed by Commit bot

Add a template url accessor for contextual search that doesn't prefetch.

BUG=416225

Review URL: https://codereview.chromium.org/601003002

Cr-Commit-Position: refs/heads/master@{#296629}
parent b79e7fad
...@@ -223,27 +223,35 @@ public class TemplateUrlService { ...@@ -223,27 +223,35 @@ public class TemplateUrlService {
return nativeReplaceSearchTermsInUrl(mNativeTemplateUrlServiceAndroid, query, url); return nativeReplaceSearchTermsInUrl(mNativeTemplateUrlServiceAndroid, query, url);
} }
// TODO(jeremycho): Delete once Clank no longer references it. // TODO(donnd): Delete once the client no longer references it.
/** /**
* Finds the default search engine for the default provider and returns the url query * Finds the default search engine for the default provider and returns the url query
* {@link String} for {@code query} with the contextual search version param set. * {@link String} for {@code query} with the contextual search version param set.
* @param query The search term to use as the main query in the returned search url.
* @param alternateTerm The alternate search term to use as an alternate suggestion.
* @return A {@link String} that contains the url of the default search engine with * @return A {@link String} that contains the url of the default search engine with
* {@code query} inserted as the search parameter and contextual search param set. * {@code query} and {@code alternateTerm} inserted as parameters and contextual
* search and prefetch parameters set.
*/ */
public String getUrlForContextualSearchQuery(String query) { public String getUrlForContextualSearchQuery(String query, String alternateTerm) {
return nativeGetUrlForContextualSearchQuery(mNativeTemplateUrlServiceAndroid, query, null); return nativeGetUrlForContextualSearchQuery(
mNativeTemplateUrlServiceAndroid, query, alternateTerm, true);
} }
/** /**
* Finds the default search engine for the default provider and returns the url query * Finds the default search engine for the default provider and returns the url query
* {@link String} for {@code query} with the contextual search version param set. * {@link String} for {@code query} with the contextual search version param set.
* @param query The search term to use as the main query in the returned search url.
* @param alternateTerm The alternate search term to use as an alternate suggestion.
* @param shouldPrefetch Whether the returned url should include a prefetch parameter.
* @return A {@link String} that contains the url of the default search engine with * @return A {@link String} that contains the url of the default search engine with
* {@code query} and {@code alternateTerm} inserted as parameters and contextual * {@code query} and {@code alternateTerm} inserted as parameters and contextual
* search param set. * search and prefetch parameters conditionally set.
*/ */
public String getUrlForContextualSearchQuery(String query, String alternateTerm) { public String getUrlForContextualSearchQuery(String query, String alternateTerm,
boolean shouldPrefetch) {
return nativeGetUrlForContextualSearchQuery( return nativeGetUrlForContextualSearchQuery(
mNativeTemplateUrlServiceAndroid, query, alternateTerm); mNativeTemplateUrlServiceAndroid, query, alternateTerm, shouldPrefetch);
} }
private native long nativeInit(); private native long nativeInit();
...@@ -265,5 +273,5 @@ public class TemplateUrlService { ...@@ -265,5 +273,5 @@ public class TemplateUrlService {
private native String nativeReplaceSearchTermsInUrl(long nativeTemplateUrlServiceAndroid, private native String nativeReplaceSearchTermsInUrl(long nativeTemplateUrlServiceAndroid,
String query, String currentUrl); String query, String currentUrl);
private native String nativeGetUrlForContextualSearchQuery(long nativeTemplateUrlServiceAndroid, private native String nativeGetUrlForContextualSearchQuery(long nativeTemplateUrlServiceAndroid,
String query, String alternateTerm); String query, String alternateTerm, boolean shouldPrefetch);
} }
...@@ -204,7 +204,8 @@ TemplateUrlServiceAndroid::GetUrlForContextualSearchQuery( ...@@ -204,7 +204,8 @@ TemplateUrlServiceAndroid::GetUrlForContextualSearchQuery(
JNIEnv* env, JNIEnv* env,
jobject obj, jobject obj,
jstring jquery, jstring jquery,
jstring jalternate_term) { jstring jalternate_term,
jboolean jshould_prefetch) {
base::string16 query(base::android::ConvertJavaStringToUTF16(env, jquery)); base::string16 query(base::android::ConvertJavaStringToUTF16(env, jquery));
std::string url; std::string url;
...@@ -212,8 +213,10 @@ TemplateUrlServiceAndroid::GetUrlForContextualSearchQuery( ...@@ -212,8 +213,10 @@ TemplateUrlServiceAndroid::GetUrlForContextualSearchQuery(
GURL gurl(GetDefaultSearchURLForSearchTerms(template_url_service_, query)); GURL gurl(GetDefaultSearchURLForSearchTerms(template_url_service_, query));
if (google_util::IsGoogleSearchUrl(gurl)) { if (google_util::IsGoogleSearchUrl(gurl)) {
gurl = net::AppendQueryParameter(gurl, "ctxs", "2"); gurl = net::AppendQueryParameter(gurl, "ctxs", "2");
// Indicate that the search page is being prefetched. if (jshould_prefetch) {
gurl = net::AppendQueryParameter(gurl, "pf", "c"); // Indicate that the search page is being prefetched.
gurl = net::AppendQueryParameter(gurl, "pf", "c");
}
if (jalternate_term) { if (jalternate_term) {
std::string alternate_term( std::string alternate_term(
......
...@@ -49,7 +49,8 @@ class TemplateUrlServiceAndroid { ...@@ -49,7 +49,8 @@ class TemplateUrlServiceAndroid {
JNIEnv* env, JNIEnv* env,
jobject obj, jobject obj,
jstring jquery, jstring jquery,
jstring jalternate_term); jstring jalternate_term,
jboolean jshould_prefetch);
static bool Register(JNIEnv* env); static bool Register(JNIEnv* env);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment