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); |