Chromium Code Reviews| 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 9ffe4b821634d996e7878c5066ed4d72249d2902..9b9d546497432dfd4611aef63a4ed7cbf20494ff 100644 |
| --- a/chrome/browser/search_engines/template_url_service_android.cc |
| +++ b/chrome/browser/search_engines/template_url_service_android.cc |
| @@ -19,7 +19,9 @@ |
| #include "content/public/browser/notification_source.h" |
| #include "jni/TemplateUrlService_jni.h" |
| +using base::android::ConvertJavaStringToUTF16; |
| using base::android::ConvertUTF16ToJavaString; |
| +using base::android::ConvertUTF8ToJavaString; |
| namespace { |
| @@ -138,6 +140,47 @@ bool TemplateUrlServiceAndroid::IsPrepopulatedTemplate(TemplateURL* url) { |
| return url->prepopulate_id() > 0; |
| } |
| +static jstring GetUrlForSearchQuery(JNIEnv* env, jclass, jstring jquery) { |
|
Ted C
2013/09/10 16:05:06
here and below, I thought chrome was against name
David Trainor- moved to gerrit
2013/09/10 22:35:46
Done.
|
| + Profile* profile = g_browser_process->profile_manager()->GetDefaultProfile(); |
| + const TemplateURL* default_provider = |
| + TemplateURLServiceFactory::GetForProfile(profile)-> |
|
Yaron
2013/09/10 16:31:46
You already have a template_url_service_ member. M
David Trainor- moved to gerrit
2013/09/10 22:35:46
Done.
|
| + GetDefaultSearchProvider(); |
| + |
| + string16 query(ConvertJavaStringToUTF16(env, jquery)); |
| + |
| + std::string url; |
| + if (default_provider && |
| + default_provider->url_ref().SupportsReplacement() && !query.empty()) { |
| + url = default_provider->url_ref().ReplaceSearchTerms( |
| + TemplateURLRef::SearchTermsArgs(query)); |
| + } |
| + |
| + // OK to release, JNI binding. |
| + return ConvertUTF8ToJavaString(env, url).Release(); |
| +} |
| + |
| +static jstring ReplaceSearchTermsInUrl(JNIEnv* env, |
| + jclass, |
|
Ted C
2013/09/10 16:05:06
alignment is off
David Trainor- moved to gerrit
2013/09/10 22:35:46
Done.
|
| + jstring jquery, |
| + jstring jcurrent_url) { |
| + Profile* profile = g_browser_process->profile_manager()->GetDefaultProfile(); |
|
Yaron
2013/09/10 16:31:46
same here
David Trainor- moved to gerrit
2013/09/10 22:35:46
Done.
|
| + TemplateURL* default_provider = |
| + TemplateURLServiceFactory::GetForProfile(profile)-> |
| + GetDefaultSearchProvider(); |
| + |
| + string16 query(ConvertJavaStringToUTF16(env, jquery)); |
| + GURL current_url(ConvertJavaStringToUTF16(env, jcurrent_url)); |
| + GURL destination_url(current_url); |
| + if (default_provider && !query.empty()) { |
| + bool refinedQuery = default_provider->ReplaceSearchTermsInURL(current_url, |
|
Yaron
2013/09/10 16:31:46
refined_query
David Trainor- moved to gerrit
2013/09/10 22:35:46
Moving methods wholesale ftl :(. Sorry.
|
| + TemplateURLRef::SearchTermsArgs(query), &destination_url); |
| + if (refinedQuery) { |
|
Ted C
2013/09/10 16:05:06
no braces needed
David Trainor- moved to gerrit
2013/09/10 22:35:46
Done.
|
| + return ConvertUTF8ToJavaString(env, destination_url.spec()).Release(); |
| + } |
| + } |
| + return NULL; |
| +} |
| + |
| static jint Init(JNIEnv* env, jobject obj) { |
| TemplateUrlServiceAndroid* template_url_service_android = |
| new TemplateUrlServiceAndroid(env, obj); |