Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(444)

Side by Side Diff: chrome/browser/search_engines/template_url_service_android.cc

Issue 2349473002: Implement native functions to query custom search engines for Android (Closed)
Patch Set: run "git cl format" to format the commit Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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_service_android.h" 5 #include "chrome/browser/search_engines/template_url_service_android.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 JNIEnv* env, 58 JNIEnv* env,
59 const JavaParamRef<jobject>& obj, 59 const JavaParamRef<jobject>& obj,
60 jint selected_index) { 60 jint selected_index) {
61 std::vector<TemplateURL*> template_urls = 61 std::vector<TemplateURL*> template_urls =
62 template_url_service_->GetTemplateURLs(); 62 template_url_service_->GetTemplateURLs();
63 size_t selected_index_size_t = static_cast<size_t>(selected_index); 63 size_t selected_index_size_t = static_cast<size_t>(selected_index);
64 DCHECK_LT(selected_index_size_t, template_urls.size()) << 64 DCHECK_LT(selected_index_size_t, template_urls.size()) <<
65 "Wrong index for search engine"; 65 "Wrong index for search engine";
66 66
67 TemplateURL* template_url = template_urls[selected_index_size_t]; 67 TemplateURL* template_url = template_urls[selected_index_size_t];
68 DCHECK_GT(template_url->prepopulate_id(), 0) <<
69 "Tried to select non-prepopulated search engine";
70 template_url_service_->SetUserSelectedDefaultSearchProvider(template_url); 68 template_url_service_->SetUserSelectedDefaultSearchProvider(template_url);
71 } 69 }
72 70
73 jint TemplateUrlServiceAndroid::GetDefaultSearchProvider( 71 jint TemplateUrlServiceAndroid::GetDefaultSearchProvider(
74 JNIEnv* env, 72 JNIEnv* env,
75 const JavaParamRef<jobject>& obj) { 73 const JavaParamRef<jobject>& obj) {
76 std::vector<TemplateURL*> template_urls = 74 std::vector<TemplateURL*> template_urls =
77 template_url_service_->GetTemplateURLs(); 75 template_url_service_->GetTemplateURLs();
78 TemplateURL* default_search_provider = 76 TemplateURL* default_search_provider =
79 template_url_service_->GetDefaultSearchProvider(); 77 template_url_service_->GetDefaultSearchProvider();
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 JNIEnv* env, 114 JNIEnv* env,
117 const JavaParamRef<jobject>& obj) { 115 const JavaParamRef<jobject>& obj) {
118 TemplateURL* default_search_provider = 116 TemplateURL* default_search_provider =
119 template_url_service_->GetDefaultSearchProvider(); 117 template_url_service_->GetDefaultSearchProvider();
120 return default_search_provider && 118 return default_search_provider &&
121 default_search_provider->url_ref().HasGoogleBaseURLs( 119 default_search_provider->url_ref().HasGoogleBaseURLs(
122 template_url_service_->search_terms_data()); 120 template_url_service_->search_terms_data());
123 } 121 }
124 122
125 base::android::ScopedJavaLocalRef<jobject> 123 base::android::ScopedJavaLocalRef<jobject>
126 TemplateUrlServiceAndroid::GetPrepopulatedTemplateUrlAt( 124 TemplateUrlServiceAndroid::GetTemplateUrlAt(JNIEnv* env,
127 JNIEnv* env, 125 const JavaParamRef<jobject>& obj,
128 const JavaParamRef<jobject>& obj, 126 jint index) {
129 jint index) {
130 TemplateURL* template_url = template_url_service_->GetTemplateURLs()[index]; 127 TemplateURL* template_url = template_url_service_->GetTemplateURLs()[index];
131 if (!IsPrepopulatedTemplate(template_url) &&
132 !template_url->created_by_policy())
133 return ScopedJavaLocalRef<jobject>();
134
135 return Java_TemplateUrl_create( 128 return Java_TemplateUrl_create(
136 env, index, 129 env, index,
137 base::android::ConvertUTF16ToJavaString(env, template_url->short_name())); 130 base::android::ConvertUTF16ToJavaString(env, template_url->short_name()),
131 IsPrepopulatedTemplate(template_url) ||
132 template_url->created_by_policy());
138 } 133 }
139 134
140 bool TemplateUrlServiceAndroid::IsPrepopulatedTemplate(TemplateURL* url) { 135 bool TemplateUrlServiceAndroid::IsPrepopulatedTemplate(TemplateURL* url) {
141 return url->prepopulate_id() > 0; 136 return url->prepopulate_id() > 0;
142 } 137 }
143 138
144 void TemplateUrlServiceAndroid::OnTemplateURLServiceLoaded() { 139 void TemplateUrlServiceAndroid::OnTemplateURLServiceLoaded() {
145 template_url_subscription_.reset(); 140 template_url_subscription_.reset();
146 JNIEnv* env = base::android::AttachCurrentThread(); 141 JNIEnv* env = base::android::AttachCurrentThread();
147 if (weak_java_obj_.get(env).is_null()) 142 if (weak_java_obj_.get(env).is_null())
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { 271 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) {
277 TemplateUrlServiceAndroid* template_url_service_android = 272 TemplateUrlServiceAndroid* template_url_service_android =
278 new TemplateUrlServiceAndroid(env, obj); 273 new TemplateUrlServiceAndroid(env, obj);
279 return reinterpret_cast<intptr_t>(template_url_service_android); 274 return reinterpret_cast<intptr_t>(template_url_service_android);
280 } 275 }
281 276
282 // static 277 // static
283 bool TemplateUrlServiceAndroid::Register(JNIEnv* env) { 278 bool TemplateUrlServiceAndroid::Register(JNIEnv* env) {
284 return RegisterNativesImpl(env); 279 return RegisterNativesImpl(env);
285 } 280 }
OLDNEW
« no previous file with comments | « chrome/browser/search_engines/template_url_service_android.h ('k') | chrome/browser/ui/tab_helpers.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698