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

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

Issue 2816383002: Remove non-const version of GetDefaultSearchProvider() and make all callers call the const version (Closed)
Patch Set: Fix unit test (the model was already loaded) Created 3 years, 8 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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 base::string16 keyword( 63 base::string16 keyword(
64 base::android::ConvertJavaStringToUTF16(env, jkeyword)); 64 base::android::ConvertJavaStringToUTF16(env, jkeyword));
65 TemplateURL* template_url = 65 TemplateURL* template_url =
66 template_url_service_->GetTemplateURLForKeyword(keyword); 66 template_url_service_->GetTemplateURLForKeyword(keyword);
67 template_url_service_->SetUserSelectedDefaultSearchProvider(template_url); 67 template_url_service_->SetUserSelectedDefaultSearchProvider(template_url);
68 } 68 }
69 69
70 jint TemplateUrlServiceAndroid::GetDefaultSearchProviderIndex( 70 jint TemplateUrlServiceAndroid::GetDefaultSearchProviderIndex(
71 JNIEnv* env, 71 JNIEnv* env,
72 const base::android::JavaParamRef<jobject>& obj) const { 72 const base::android::JavaParamRef<jobject>& obj) const {
73 TemplateURL* default_search_provider = 73 const TemplateURL* default_search_provider =
74 template_url_service_->GetDefaultSearchProvider(); 74 template_url_service_->GetDefaultSearchProvider();
75 auto it = std::find(template_urls_.begin(), template_urls_.end(), 75 auto it = std::find(template_urls_.begin(), template_urls_.end(),
76 default_search_provider); 76 default_search_provider);
77 size_t default_search_provider_index_ = 77 size_t default_search_provider_index_ =
78 (it == template_urls_.end()) ? -1 : (it - template_urls_.begin()); 78 (it == template_urls_.end()) ? -1 : (it - template_urls_.begin());
79 return default_search_provider_index_; 79 return default_search_provider_index_;
80 } 80 }
81 81
82 jboolean TemplateUrlServiceAndroid::IsLoaded( 82 jboolean TemplateUrlServiceAndroid::IsLoaded(
83 JNIEnv* env, 83 JNIEnv* env,
(...skipping 20 matching lines...) Expand all
104 template_url_service_->GetDefaultSearchProvider(); 104 template_url_service_->GetDefaultSearchProvider();
105 return default_search_provider && 105 return default_search_provider &&
106 !default_search_provider->image_url().empty() && 106 !default_search_provider->image_url().empty() &&
107 default_search_provider->image_url_ref().IsValid( 107 default_search_provider->image_url_ref().IsValid(
108 template_url_service_->search_terms_data()); 108 template_url_service_->search_terms_data());
109 } 109 }
110 110
111 jboolean TemplateUrlServiceAndroid::IsDefaultSearchEngineGoogle( 111 jboolean TemplateUrlServiceAndroid::IsDefaultSearchEngineGoogle(
112 JNIEnv* env, 112 JNIEnv* env,
113 const JavaParamRef<jobject>& obj) { 113 const JavaParamRef<jobject>& obj) {
114 TemplateURL* default_search_provider = 114 const TemplateURL* default_search_provider =
115 template_url_service_->GetDefaultSearchProvider(); 115 template_url_service_->GetDefaultSearchProvider();
116 return default_search_provider && 116 return default_search_provider &&
117 default_search_provider->url_ref().HasGoogleBaseURLs( 117 default_search_provider->url_ref().HasGoogleBaseURLs(
118 template_url_service_->search_terms_data()); 118 template_url_service_->search_terms_data());
119 } 119 }
120 120
121 base::android::ScopedJavaLocalRef<jobject> 121 base::android::ScopedJavaLocalRef<jobject>
122 TemplateUrlServiceAndroid::GetTemplateUrlAt(JNIEnv* env, 122 TemplateUrlServiceAndroid::GetTemplateUrlAt(JNIEnv* env,
123 const JavaParamRef<jobject>& obj, 123 const JavaParamRef<jobject>& obj,
124 jint index) const { 124 jint index) const {
(...skipping 26 matching lines...) Expand all
151 template_urls_.begin(), template_urls_.end(), 151 template_urls_.begin(), template_urls_.end(),
152 [template_url_service](const TemplateURL* t_url) { 152 [template_url_service](const TemplateURL* t_url) {
153 return template_url_service->IsPrepopulatedOrCreatedByPolicy(t_url); 153 return template_url_service->IsPrepopulatedOrCreatedByPolicy(t_url);
154 }); 154 });
155 std::sort(template_urls_.begin(), it, 155 std::sort(template_urls_.begin(), it,
156 [](const TemplateURL* lhs, const TemplateURL* rhs) { 156 [](const TemplateURL* lhs, const TemplateURL* rhs) {
157 return lhs->prepopulate_id() < rhs->prepopulate_id(); 157 return lhs->prepopulate_id() < rhs->prepopulate_id();
158 }); 158 });
159 159
160 // Place any user-selected default engine next. 160 // Place any user-selected default engine next.
161 TemplateURL* dsp = template_url_service_->GetDefaultSearchProvider(); 161 const TemplateURL* dsp = template_url_service_->GetDefaultSearchProvider();
162 it = std::partition(it, template_urls_.end(), 162 it = std::partition(it, template_urls_.end(),
163 [dsp](const TemplateURL* t_url) { return t_url == dsp; }); 163 [dsp](const TemplateURL* t_url) { return t_url == dsp; });
164 164
165 // Sort the remaining engines to place the three most recently-visited first. 165 // Sort the remaining engines to place the three most recently-visited first.
166 constexpr size_t kMaxRecentUrls = 3; 166 constexpr size_t kMaxRecentUrls = 3;
167 const size_t recent_url_num = template_urls_.end() - it; 167 const size_t recent_url_num = template_urls_.end() - it;
168 auto end = it + std::min(recent_url_num, kMaxRecentUrls); 168 auto end = it + std::min(recent_url_num, kMaxRecentUrls);
169 std::partial_sort(it, end, template_urls_.end(), 169 std::partial_sort(it, end, template_urls_.end(),
170 [](const TemplateURL* lhs, const TemplateURL* rhs) { 170 [](const TemplateURL* lhs, const TemplateURL* rhs) {
171 return lhs->last_visited() > rhs->last_visited(); 171 return lhs->last_visited() > rhs->last_visited();
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 231
232 return base::android::ConvertUTF8ToJavaString(env, url); 232 return base::android::ConvertUTF8ToJavaString(env, url);
233 } 233 }
234 234
235 base::android::ScopedJavaLocalRef<jstring> 235 base::android::ScopedJavaLocalRef<jstring>
236 TemplateUrlServiceAndroid::ReplaceSearchTermsInUrl( 236 TemplateUrlServiceAndroid::ReplaceSearchTermsInUrl(
237 JNIEnv* env, 237 JNIEnv* env,
238 const JavaParamRef<jobject>& obj, 238 const JavaParamRef<jobject>& obj,
239 const JavaParamRef<jstring>& jquery, 239 const JavaParamRef<jstring>& jquery,
240 const JavaParamRef<jstring>& jcurrent_url) { 240 const JavaParamRef<jstring>& jcurrent_url) {
241 TemplateURL* default_provider = 241 const TemplateURL* default_provider =
242 template_url_service_->GetDefaultSearchProvider(); 242 template_url_service_->GetDefaultSearchProvider();
243 243
244 base::string16 query(base::android::ConvertJavaStringToUTF16(env, jquery)); 244 base::string16 query(base::android::ConvertJavaStringToUTF16(env, jquery));
245 GURL current_url(base::android::ConvertJavaStringToUTF16(env, jcurrent_url)); 245 GURL current_url(base::android::ConvertJavaStringToUTF16(env, jcurrent_url));
246 GURL destination_url(current_url); 246 GURL destination_url(current_url);
247 if (default_provider && !query.empty()) { 247 if (default_provider && !query.empty()) {
248 bool refined_query = default_provider->ReplaceSearchTermsInURL( 248 bool refined_query = default_provider->ReplaceSearchTermsInURL(
249 current_url, TemplateURLRef::SearchTermsArgs(query), 249 current_url, TemplateURLRef::SearchTermsArgs(query),
250 template_url_service_->search_terms_data(), &destination_url); 250 template_url_service_->search_terms_data(), &destination_url);
251 if (refined_query) 251 if (refined_query)
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { 351 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) {
352 TemplateUrlServiceAndroid* template_url_service_android = 352 TemplateUrlServiceAndroid* template_url_service_android =
353 new TemplateUrlServiceAndroid(env, obj); 353 new TemplateUrlServiceAndroid(env, obj);
354 return reinterpret_cast<intptr_t>(template_url_service_android); 354 return reinterpret_cast<intptr_t>(template_url_service_android);
355 } 355 }
356 356
357 // static 357 // static
358 bool TemplateUrlServiceAndroid::Register(JNIEnv* env) { 358 bool TemplateUrlServiceAndroid::Register(JNIEnv* env) {
359 return RegisterNativesImpl(env); 359 return RegisterNativesImpl(env);
360 } 360 }
OLDNEW
« no previous file with comments | « chrome/browser/search/search.cc ('k') | chrome/browser/search_engines/template_url_service_sync_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698