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

Unified Diff: chrome/browser/search_engines/template_url_service_android.h

Issue 2367373003: [Android] Allow setting recently visited search engines as default search engine (Closed)
Patch Set: Update based on Peter and Dan's comments. Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/search_engines/template_url_service_android.h
diff --git a/chrome/browser/search_engines/template_url_service_android.h b/chrome/browser/search_engines/template_url_service_android.h
index af5f38c08a212727731e298448ae5df747711b74..f140e5930718d98d4862f2e2367e5b29452b6154 100644
--- a/chrome/browser/search_engines/template_url_service_android.h
+++ b/chrome/browser/search_engines/template_url_service_android.h
@@ -27,18 +27,22 @@ class TemplateUrlServiceAndroid : public TemplateURLServiceObserver {
void SetUserSelectedDefaultSearchProvider(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
- jint selected_index);
- jint GetDefaultSearchProvider(
+ const base::android::JavaParamRef<jstring>& jkeyword);
+
+ jint GetDefaultSearchProviderIndex(
JNIEnv* env,
- const base::android::JavaParamRef<jobject>& obj);
- jint GetTemplateUrlCount(JNIEnv* env,
- const base::android::JavaParamRef<jobject>& obj);
- jboolean IsLoaded(JNIEnv* env,
- const base::android::JavaParamRef<jobject>& obj);
+ const base::android::JavaParamRef<jobject>& obj) const;
+
+ jint GetTemplateUrlCount(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& obj) const;
+ jboolean IsLoaded(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& obj) const;
base::android::ScopedJavaLocalRef<jobject> GetTemplateUrlAt(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
- jint index);
+ jint index) const;
jboolean IsSearchProviderManaged(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
@@ -71,20 +75,23 @@ class TemplateUrlServiceAndroid : public TemplateURLServiceObserver {
base::android::ScopedJavaLocalRef<jstring> GetSearchEngineUrlFromTemplateUrl(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
- jint index);
+ const base::android::JavaParamRef<jstring>& jkeyword);
static bool Register(JNIEnv* env);
private:
~TemplateUrlServiceAndroid() override;
- bool IsPrepopulatedTemplate(TemplateURL* url);
-
void OnTemplateURLServiceLoaded();
// TemplateUrlServiceObserver:
void OnTemplateURLServiceChanged() override;
+ // Updates |template_urls_| to contain all TemplateURLs. It sorts this list
+ // with prepopulated engines first, then any default non-prepopulated engine,
+ // then other non-prepopulated engines.
+ void LoadTemplateURLs();
+
JavaObjectWeakGlobalRef weak_java_obj_;
// Pointer to the TemplateUrlService for the main profile.
@@ -92,6 +99,10 @@ class TemplateUrlServiceAndroid : public TemplateURLServiceObserver {
std::unique_ptr<TemplateURLService::Subscription> template_url_subscription_;
+ // Caches the up-to-date TemplateURL list so that calls from Android could
+ // directly get data from it.
+ std::vector<TemplateURL*> template_urls_;
+
DISALLOW_COPY_AND_ASSIGN(TemplateUrlServiceAndroid);
};

Powered by Google App Engine
This is Rietveld 408576698