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 306cd44c2130303ba5a742eaabe1db46d58d08b0..bd669952364b2e8cd27f9e58c87f0b2f8088d95c 100644 |
--- a/chrome/browser/search_engines/template_url_service_android.cc |
+++ b/chrome/browser/search_engines/template_url_service_android.cc |
@@ -152,10 +152,27 @@ void TemplateUrlServiceAndroid::LoadTemplateURLs() { |
if (template_url_service_->IsPrepopulatedOrCreatedByPolicy(lhs)) { |
return !rhs_prepopulated || |
(lhs->prepopulate_id() < rhs->prepopulate_id()); |
+ } else if (lhs == default_search_provider) { |
+ return !rhs_prepopulated; |
} |
- return (lhs == default_search_provider && !rhs_prepopulated); |
+ return rhs != default_search_provider && !rhs_prepopulated && |
+ lhs->last_visited().ToTimeT() > rhs->last_visited().ToTimeT(); |
}; |
std::sort(template_urls_.begin(), template_urls_.end(), comp); |
Peter Kasting
2016/12/06 06:24:55
The sort comparator is getting complicated.
I won
ltian
2016/12/07 00:56:43
Done.
|
+ int num_remove = CountRemovedSearchEngineNum(); |
+ template_urls_.erase(template_urls_.end()-num_remove, |
+ template_urls_.end()); |
Peter Kasting
2016/12/06 06:24:55
Nit: Use resize()
ltian
2016/12/07 00:56:43
Done.
|
+ |
+} |
+ |
+int TemplateUrlServiceAndroid::CountRemovedSearchEngineNum() { |
+ int num_custom_engine = 0; |
+ for (std::vector<TemplateURL*>::const_iterator i = template_urls_.begin(); |
+ i != template_urls_.end(); i++) { |
+ template_url_service_->ShowInDefaultList(*i) ? num_custom_engine : |
+ num_custom_engine++; |
+ } |
Peter Kasting
2016/12/06 06:24:55
Nit: Use std::count_if
ltian
2016/12/07 00:56:43
Done.
|
+ return num_custom_engine > 5 ? num_custom_engine - 5 : 0; |
Peter Kasting
2016/12/06 06:24:55
Nit: Use std::max
ltian
2016/12/07 00:56:43
Done.
|
} |
void TemplateUrlServiceAndroid::OnTemplateURLServiceChanged() { |