summaryrefslogtreecommitdiff
path: root/chromium/components/search_engines
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-01-23 17:21:03 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-01-23 16:25:15 +0000
commitc551f43206405019121bd2b2c93714319a0a3300 (patch)
tree1f48c30631c421fd4bbb3c36da20183c8a2ed7d7 /chromium/components/search_engines
parent7961cea6d1041e3e454dae6a1da660b453efd238 (diff)
downloadqtwebengine-chromium-c551f43206405019121bd2b2c93714319a0a3300.tar.gz
BASELINE: Update Chromium to 79.0.3945.139
Change-Id: I336b7182fab9bca80b709682489c07db112eaca5 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/search_engines')
-rw-r--r--chromium/components/search_engines/android/BUILD.gn2
-rw-r--r--chromium/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java28
-rw-r--r--chromium/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrlService.java128
-rw-r--r--chromium/components/search_engines/default_search_policy_handler_unittest.cc18
-rw-r--r--chromium/components/search_engines/keyword_web_data_service.cc7
-rw-r--r--chromium/components/search_engines/keyword_web_data_service.h3
-rw-r--r--chromium/components/search_engines/prepopulated_engines.json144
-rw-r--r--chromium/components/search_engines/search_engine_type.h6
-rw-r--r--chromium/components/search_engines/template_url_prepopulate_data.cc98
9 files changed, 258 insertions, 176 deletions
diff --git a/chromium/components/search_engines/android/BUILD.gn b/chromium/components/search_engines/android/BUILD.gn
index d6b37fc60a5..0247b737534 100644
--- a/chromium/components/search_engines/android/BUILD.gn
+++ b/chromium/components/search_engines/android/BUILD.gn
@@ -7,8 +7,10 @@ import("//build/config/android/rules.gni")
android_library("java") {
deps = [
"//base:base_java",
+ "//base:jni_java",
"//content/public/android:content_java",
]
+ annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
java_files = [
"java/src/org/chromium/components/search_engines/TemplateUrl.java",
diff --git a/chromium/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java b/chromium/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
index 093eedd0567..6e40f28d8f6 100644
--- a/chromium/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
+++ b/chromium/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
@@ -4,6 +4,7 @@
package org.chromium.components.search_engines;
import org.chromium.base.annotations.CalledByNative;
+import org.chromium.base.annotations.NativeMethods;
import java.util.Locale;
@@ -28,7 +29,7 @@ public class TemplateUrl {
* @return The name of the search engine.
*/
public String getShortName() {
- return nativeGetShortName(mTemplateUrlPtr);
+ return TemplateUrlJni.get().getShortName(mTemplateUrlPtr);
}
/**
@@ -36,21 +37,21 @@ public class TemplateUrl {
* non-zero, for custom search engines, it will return 0.
*/
public int getPrepopulatedId() {
- return nativeGetPrepopulatedId(mTemplateUrlPtr);
+ return TemplateUrlJni.get().getPrepopulatedId(mTemplateUrlPtr);
}
/**
* @return Whether a search engine is prepopulated or created by policy.
*/
public boolean getIsPrepopulated() {
- return nativeIsPrepopulatedOrCreatedByPolicy(mTemplateUrlPtr);
+ return TemplateUrlJni.get().isPrepopulatedOrCreatedByPolicy(mTemplateUrlPtr);
}
/**
* @return The keyword of the search engine.
*/
public String getKeyword() {
- return nativeGetKeyword(mTemplateUrlPtr);
+ return TemplateUrlJni.get().getKeyword(mTemplateUrlPtr);
}
/**
@@ -58,7 +59,7 @@ public class TemplateUrl {
* return 0.
*/
public long getLastVisitedTime() {
- return nativeGetLastVisitedTime(mTemplateUrlPtr);
+ return TemplateUrlJni.get().getLastVisitedTime(mTemplateUrlPtr);
}
/**
@@ -66,7 +67,7 @@ public class TemplateUrl {
* prepopulated_engines.json.
*/
public String getURL() {
- return nativeGetURL(mTemplateUrlPtr);
+ return TemplateUrlJni.get().getURL(mTemplateUrlPtr);
}
@Override
@@ -84,10 +85,13 @@ public class TemplateUrl {
getKeyword(), getShortName(), getIsPrepopulated());
}
- private static native String nativeGetShortName(long templateUrlPtr);
- private static native String nativeGetKeyword(long templateUrlPtr);
- private static native boolean nativeIsPrepopulatedOrCreatedByPolicy(long templateUrlPtr);
- private static native long nativeGetLastVisitedTime(long templateUrlPtr);
- private static native int nativeGetPrepopulatedId(long templateUrlPtr);
- private static native String nativeGetURL(long templateUrlPtr);
+ @NativeMethods
+ interface Natives {
+ String getShortName(long templateUrlPtr);
+ String getKeyword(long templateUrlPtr);
+ boolean isPrepopulatedOrCreatedByPolicy(long templateUrlPtr);
+ long getLastVisitedTime(long templateUrlPtr);
+ int getPrepopulatedId(long templateUrlPtr);
+ String getURL(long templateUrlPtr);
+ }
}
diff --git a/chromium/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrlService.java b/chromium/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrlService.java
index b00162b85c5..7184c90a907 100644
--- a/chromium/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrlService.java
+++ b/chromium/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrlService.java
@@ -4,12 +4,13 @@
package org.chromium.components.search_engines;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
import org.chromium.base.ObserverList;
import org.chromium.base.ThreadUtils;
import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.CalledByNative;
+import org.chromium.base.annotations.NativeMethods;
import org.chromium.base.task.PostTask;
import org.chromium.content_public.browser.UiThreadTaskTraits;
@@ -63,12 +64,13 @@ public class TemplateUrlService {
public boolean isLoaded() {
ThreadUtils.assertOnUiThread();
- return nativeIsLoaded(mNativeTemplateUrlServiceAndroid);
+ return TemplateUrlServiceJni.get().isLoaded(
+ mNativeTemplateUrlServiceAndroid, TemplateUrlService.this);
}
public void load() {
ThreadUtils.assertOnUiThread();
- nativeLoad(mNativeTemplateUrlServiceAndroid);
+ TemplateUrlServiceJni.get().load(mNativeTemplateUrlServiceAndroid, TemplateUrlService.this);
}
/**
@@ -102,7 +104,8 @@ public class TemplateUrlService {
public List<TemplateUrl> getTemplateUrls() {
ThreadUtils.assertOnUiThread();
List<TemplateUrl> templateUrls = new ArrayList<>();
- nativeGetTemplateUrls(mNativeTemplateUrlServiceAndroid, templateUrls);
+ TemplateUrlServiceJni.get().getTemplateUrls(
+ mNativeTemplateUrlServiceAndroid, TemplateUrlService.this, templateUrls);
return templateUrls;
}
@@ -141,13 +144,14 @@ public class TemplateUrlService {
*/
public @Nullable TemplateUrl getDefaultSearchEngineTemplateUrl() {
if (!isLoaded()) return null;
- return nativeGetDefaultSearchEngine(mNativeTemplateUrlServiceAndroid);
+ return TemplateUrlServiceJni.get().getDefaultSearchEngine(
+ mNativeTemplateUrlServiceAndroid, TemplateUrlService.this);
}
public void setSearchEngine(String selectedKeyword) {
ThreadUtils.assertOnUiThread();
- nativeSetUserSelectedDefaultSearchProvider(
- mNativeTemplateUrlServiceAndroid, selectedKeyword);
+ TemplateUrlServiceJni.get().setUserSelectedDefaultSearchProvider(
+ mNativeTemplateUrlServiceAndroid, TemplateUrlService.this, selectedKeyword);
}
/**
@@ -155,7 +159,8 @@ public class TemplateUrlService {
* DSE can not be modified by the user.
*/
public boolean isDefaultSearchManaged() {
- return nativeIsDefaultSearchManaged(mNativeTemplateUrlServiceAndroid);
+ return TemplateUrlServiceJni.get().isDefaultSearchManaged(
+ mNativeTemplateUrlServiceAndroid, TemplateUrlService.this);
}
/**
@@ -163,14 +168,16 @@ public class TemplateUrlService {
*/
public boolean isSearchByImageAvailable() {
ThreadUtils.assertOnUiThread();
- return nativeIsSearchByImageAvailable(mNativeTemplateUrlServiceAndroid);
+ return TemplateUrlServiceJni.get().isSearchByImageAvailable(
+ mNativeTemplateUrlServiceAndroid, TemplateUrlService.this);
}
/**
* @return Whether the default configured search engine is for a Google property.
*/
public boolean isDefaultSearchEngineGoogle() {
- return nativeIsDefaultSearchEngineGoogle(mNativeTemplateUrlServiceAndroid);
+ return TemplateUrlServiceJni.get().isDefaultSearchEngineGoogle(
+ mNativeTemplateUrlServiceAndroid, TemplateUrlService.this);
}
/**
@@ -180,8 +187,8 @@ public class TemplateUrlService {
*/
public boolean isSearchResultsPageFromDefaultSearchProvider(String url) {
ThreadUtils.assertOnUiThread();
- return nativeIsSearchResultsPageFromDefaultSearchProvider(
- mNativeTemplateUrlServiceAndroid, url);
+ return TemplateUrlServiceJni.get().isSearchResultsPageFromDefaultSearchProvider(
+ mNativeTemplateUrlServiceAndroid, TemplateUrlService.this, url);
}
/**
@@ -239,7 +246,8 @@ public class TemplateUrlService {
* {@code query} inserted as the search parameter.
*/
public String getUrlForSearchQuery(String query) {
- return nativeGetUrlForSearchQuery(mNativeTemplateUrlServiceAndroid, query);
+ return TemplateUrlServiceJni.get().getUrlForSearchQuery(
+ mNativeTemplateUrlServiceAndroid, TemplateUrlService.this, query);
}
/**
@@ -251,7 +259,8 @@ public class TemplateUrlService {
* {@code query} inserted as the search parameter and voice input source param set.
*/
public String getUrlForVoiceSearchQuery(String query) {
- return nativeGetUrlForVoiceSearchQuery(mNativeTemplateUrlServiceAndroid, query);
+ return TemplateUrlServiceJni.get().getUrlForVoiceSearchQuery(
+ mNativeTemplateUrlServiceAndroid, TemplateUrlService.this, query);
}
/**
@@ -267,8 +276,9 @@ public class TemplateUrlService {
*/
public String getUrlForContextualSearchQuery(
String query, String alternateTerm, boolean shouldPrefetch, String protocolVersion) {
- return nativeGetUrlForContextualSearchQuery(mNativeTemplateUrlServiceAndroid, query,
- alternateTerm, shouldPrefetch, protocolVersion);
+ return TemplateUrlServiceJni.get().getUrlForContextualSearchQuery(
+ mNativeTemplateUrlServiceAndroid, TemplateUrlService.this, query, alternateTerm,
+ shouldPrefetch, protocolVersion);
}
/**
@@ -277,7 +287,8 @@ public class TemplateUrlService {
* @return A {@link String} that contains the url of the specified search engine.
*/
public String getSearchEngineUrlFromTemplateUrl(String keyword) {
- return nativeGetSearchEngineUrlFromTemplateUrl(mNativeTemplateUrlServiceAndroid, keyword);
+ return TemplateUrlServiceJni.get().getSearchEngineUrlFromTemplateUrl(
+ mNativeTemplateUrlServiceAndroid, TemplateUrlService.this, keyword);
}
/**
@@ -286,7 +297,8 @@ public class TemplateUrlService {
* @return The search engine type of the specified search engine that contains the keyword.
*/
public int getSearchEngineTypeFromTemplateUrl(String keyword) {
- return nativeGetSearchEngineTypeFromTemplateUrl(mNativeTemplateUrlServiceAndroid, keyword);
+ return TemplateUrlServiceJni.get().getSearchEngineTypeFromTemplateUrl(
+ mNativeTemplateUrlServiceAndroid, TemplateUrlService.this, keyword);
}
/**
@@ -301,54 +313,64 @@ public class TemplateUrlService {
*/
public boolean setPlayAPISearchEngine(
String name, String keyword, String searchUrl, String suggestUrl, String faviconUrl) {
- return nativeSetPlayAPISearchEngine(
- mNativeTemplateUrlServiceAndroid, name, keyword, searchUrl, suggestUrl, faviconUrl);
+ return TemplateUrlServiceJni.get().setPlayAPISearchEngine(mNativeTemplateUrlServiceAndroid,
+ TemplateUrlService.this, name, keyword, searchUrl, suggestUrl, faviconUrl);
}
// TODO(crbug/1002271): This API is called from clank repo. Helper function below will be
// removed once clank repo is updated.
public boolean setPlayAPISearchEngine(
String name, String keyword, String searchUrl, String faviconUrl) {
- return nativeSetPlayAPISearchEngine(
- mNativeTemplateUrlServiceAndroid, name, keyword, searchUrl, null, faviconUrl);
+ return TemplateUrlServiceJni.get().setPlayAPISearchEngine(mNativeTemplateUrlServiceAndroid,
+ TemplateUrlService.this, name, keyword, searchUrl, null, faviconUrl);
}
@VisibleForTesting
public String addSearchEngineForTesting(String keyword, int ageInDays) {
- return nativeAddSearchEngineForTesting(
- mNativeTemplateUrlServiceAndroid, keyword, ageInDays);
+ return TemplateUrlServiceJni.get().addSearchEngineForTesting(
+ mNativeTemplateUrlServiceAndroid, TemplateUrlService.this, keyword, ageInDays);
}
@VisibleForTesting
public String updateLastVisitedForTesting(String keyword) {
- return nativeUpdateLastVisitedForTesting(mNativeTemplateUrlServiceAndroid, keyword);
+ return TemplateUrlServiceJni.get().updateLastVisitedForTesting(
+ mNativeTemplateUrlServiceAndroid, TemplateUrlService.this, keyword);
}
- private native void nativeLoad(long nativeTemplateUrlServiceAndroid);
- private native boolean nativeIsLoaded(long nativeTemplateUrlServiceAndroid);
- private native void nativeSetUserSelectedDefaultSearchProvider(
- long nativeTemplateUrlServiceAndroid, String selectedKeyword);
- private native boolean nativeIsDefaultSearchManaged(long nativeTemplateUrlServiceAndroid);
- private native boolean nativeIsSearchResultsPageFromDefaultSearchProvider(
- long nativeTemplateUrlServiceAndroid, String url);
- private native boolean nativeIsSearchByImageAvailable(long nativeTemplateUrlServiceAndroid);
- private native boolean nativeIsDefaultSearchEngineGoogle(long nativeTemplateUrlServiceAndroid);
- private native String nativeGetUrlForSearchQuery(
- long nativeTemplateUrlServiceAndroid, String query);
- private native String nativeGetUrlForVoiceSearchQuery(
- long nativeTemplateUrlServiceAndroid, String query);
- private native String nativeGetUrlForContextualSearchQuery(long nativeTemplateUrlServiceAndroid,
- String query, String alternateTerm, boolean shouldPrefetch, String protocolVersion);
- private native String nativeGetSearchEngineUrlFromTemplateUrl(
- long nativeTemplateUrlServiceAndroid, String keyword);
- private native int nativeGetSearchEngineTypeFromTemplateUrl(
- long nativeTemplateUrlServiceAndroid, String keyword);
- private native String nativeAddSearchEngineForTesting(
- long nativeTemplateUrlServiceAndroid, String keyword, int offset);
- private native boolean nativeSetPlayAPISearchEngine(long nativeTemplateUrlServiceAndroid,
- String name, String keyword, String searchUrl, String suggestUrl, String faviconUrl);
- private native String nativeUpdateLastVisitedForTesting(
- long nativeTemplateUrlServiceAndroid, String keyword);
- private native void nativeGetTemplateUrls(
- long nativeTemplateUrlServiceAndroid, List<TemplateUrl> templateUrls);
- private native TemplateUrl nativeGetDefaultSearchEngine(long nativeTemplateUrlServiceAndroid);
+ @NativeMethods
+ interface Natives {
+ void load(long nativeTemplateUrlServiceAndroid, TemplateUrlService caller);
+ boolean isLoaded(long nativeTemplateUrlServiceAndroid, TemplateUrlService caller);
+ void setUserSelectedDefaultSearchProvider(long nativeTemplateUrlServiceAndroid,
+ TemplateUrlService caller, String selectedKeyword);
+ boolean isDefaultSearchManaged(
+ long nativeTemplateUrlServiceAndroid, TemplateUrlService caller);
+ boolean isSearchResultsPageFromDefaultSearchProvider(
+ long nativeTemplateUrlServiceAndroid, TemplateUrlService caller, String url);
+ boolean isSearchByImageAvailable(
+ long nativeTemplateUrlServiceAndroid, TemplateUrlService caller);
+ boolean isDefaultSearchEngineGoogle(
+ long nativeTemplateUrlServiceAndroid, TemplateUrlService caller);
+ String getUrlForSearchQuery(
+ long nativeTemplateUrlServiceAndroid, TemplateUrlService caller, String query);
+ String getUrlForVoiceSearchQuery(
+ long nativeTemplateUrlServiceAndroid, TemplateUrlService caller, String query);
+ String getUrlForContextualSearchQuery(long nativeTemplateUrlServiceAndroid,
+ TemplateUrlService caller, String query, String alternateTerm,
+ boolean shouldPrefetch, String protocolVersion);
+ String getSearchEngineUrlFromTemplateUrl(
+ long nativeTemplateUrlServiceAndroid, TemplateUrlService caller, String keyword);
+ int getSearchEngineTypeFromTemplateUrl(
+ long nativeTemplateUrlServiceAndroid, TemplateUrlService caller, String keyword);
+ String addSearchEngineForTesting(long nativeTemplateUrlServiceAndroid,
+ TemplateUrlService caller, String keyword, int offset);
+ boolean setPlayAPISearchEngine(long nativeTemplateUrlServiceAndroid,
+ TemplateUrlService caller, String name, String keyword, String searchUrl,
+ String suggestUrl, String faviconUrl);
+ String updateLastVisitedForTesting(
+ long nativeTemplateUrlServiceAndroid, TemplateUrlService caller, String keyword);
+ void getTemplateUrls(long nativeTemplateUrlServiceAndroid, TemplateUrlService caller,
+ List<TemplateUrl> templateUrls);
+ TemplateUrl getDefaultSearchEngine(
+ long nativeTemplateUrlServiceAndroid, TemplateUrlService caller);
+ }
}
diff --git a/chromium/components/search_engines/default_search_policy_handler_unittest.cc b/chromium/components/search_engines/default_search_policy_handler_unittest.cc
index a5610ff682f..f02f8bada2e 100644
--- a/chromium/components/search_engines/default_search_policy_handler_unittest.cc
+++ b/chromium/components/search_engines/default_search_policy_handler_unittest.cc
@@ -133,7 +133,7 @@ TEST_F(DefaultSearchPolicyHandlerTest, Invalid) {
const char bad_search_url[] = "http://test.com/noSearchTerms";
policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY,
POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
- base::WrapUnique(new base::Value(bad_search_url)), nullptr);
+ std::make_unique<base::Value>(bad_search_url), nullptr);
UpdateProviderPolicy(policy);
const base::Value* temp = nullptr;
@@ -249,11 +249,10 @@ TEST_F(DefaultSearchPolicyHandlerTest, DisabledByPolicy) {
PolicyMap policy;
policy.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY,
POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
- base::WrapUnique(new base::Value(false)), nullptr);
+ std::make_unique<base::Value>(false), nullptr);
policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY,
POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
- base::WrapUnique(new base::Value("http://a/?{searchTerms}")),
- nullptr);
+ std::make_unique<base::Value>("http://a/?{searchTerms}"), nullptr);
UpdateProviderPolicy(policy);
const base::Value* temp = nullptr;
// Ignore any other search provider related policy in this case.
@@ -275,8 +274,7 @@ TEST_F(DefaultSearchPolicyHandlerTest, DisabledByPolicyNotSet) {
PolicyMap policy;
policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY,
POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
- base::WrapUnique(new base::Value("http://a/?{searchTerms}")),
- nullptr);
+ std::make_unique<base::Value>("http://a/?{searchTerms}"), nullptr);
UpdateProviderPolicy(policy);
const base::Value* temp = nullptr;
EXPECT_FALSE(store_->GetValue(
@@ -290,10 +288,10 @@ TEST_F(DefaultSearchPolicyHandlerTest, MinimallyDefined) {
PolicyMap policy;
policy.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY,
POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
- base::WrapUnique(new base::Value(true)), nullptr);
+ std::make_unique<base::Value>(true), nullptr);
policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY,
POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
- base::WrapUnique(new base::Value(kSearchURL)), nullptr);
+ std::make_unique<base::Value>(kSearchURL), nullptr);
UpdateProviderPolicy(policy);
const base::Value* temp = nullptr;
@@ -343,10 +341,10 @@ TEST_F(DefaultSearchPolicyHandlerTest, FileURL) {
PolicyMap policy;
policy.Set(key::kDefaultSearchProviderEnabled, POLICY_LEVEL_MANDATORY,
POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
- base::WrapUnique(new base::Value(true)), nullptr);
+ std::make_unique<base::Value>(true), nullptr);
policy.Set(key::kDefaultSearchProviderSearchURL, POLICY_LEVEL_MANDATORY,
POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
- base::WrapUnique(new base::Value(kFileSearchURL)), nullptr);
+ std::make_unique<base::Value>(kFileSearchURL), nullptr);
UpdateProviderPolicy(policy);
const base::Value* temp = nullptr;
diff --git a/chromium/components/search_engines/keyword_web_data_service.cc b/chromium/components/search_engines/keyword_web_data_service.cc
index 0a5e8035833..fd0df7464a4 100644
--- a/chromium/components/search_engines/keyword_web_data_service.cc
+++ b/chromium/components/search_engines/keyword_web_data_service.cc
@@ -136,9 +136,14 @@ void KeywordWebDataService::SetBuiltinKeywordVersion(int version) {
base::Bind(&SetBuiltinKeywordVersionImpl, version));
}
+void KeywordWebDataService::ShutdownOnUISequence() {
+ CommitQueuedOperations();
+ WebDataServiceBase::ShutdownOnUISequence();
+}
+
KeywordWebDataService::~KeywordWebDataService() {
DCHECK(!batch_mode_level_);
- CommitQueuedOperations();
+ DCHECK(queued_keyword_operations_.empty());
}
void KeywordWebDataService::AdjustBatchModeLevel(bool entering_batch_mode) {
diff --git a/chromium/components/search_engines/keyword_web_data_service.h b/chromium/components/search_engines/keyword_web_data_service.h
index 2b4a16cfdbe..f3e23ca9e52 100644
--- a/chromium/components/search_engines/keyword_web_data_service.h
+++ b/chromium/components/search_engines/keyword_web_data_service.h
@@ -88,6 +88,9 @@ class KeywordWebDataService : public WebDataServiceBase {
// Sets the version of the builtin keywords.
void SetBuiltinKeywordVersion(int version);
+ // WebDataServiceBase:
+ void ShutdownOnUISequence() override;
+
protected:
~KeywordWebDataService() override;
diff --git a/chromium/components/search_engines/prepopulated_engines.json b/chromium/components/search_engines/prepopulated_engines.json
index b0474152926..d4679b35bdc 100644
--- a/chromium/components/search_engines/prepopulated_engines.json
+++ b/chromium/components/search_engines/prepopulated_engines.json
@@ -23,12 +23,12 @@
// When adding new engines, increment this number and use it as the new
// max ID. This is used by UMA stats and must be updated to include the full
// range or else not all engines will be counted in stats.
- "kMaxPrepopulatedEngineID": 94,
+ "kMaxPrepopulatedEngineID": 100,
// Increment this if you change the data in ways that mean users with
// existing data should get a new version. Otherwise, existing data may
// continue to be used and updates made here will not always appear.
- "kCurrentDataVersion": 116
+ "kCurrentDataVersion": 117
},
// The following engines are included in country lists and are added to the
@@ -130,7 +130,7 @@
"alternate_urls": [
"https://go.mail.ru/msearch?q={searchTerms}&{mailru:referralID}"
],
- "encoding": "windows-1251",
+ "new_tab_url": "https://go.mail.ru/chrome/newtab/",
"suggest_url": "https://suggests.go.mail.ru/chrome?q={searchTerms}",
"type": "SEARCH_ENGINE_MAILRU",
"id": 83
@@ -156,12 +156,22 @@
"id": 94
},
- "seznam": {
+ "seznam_cz": {
"name": "Seznam",
"keyword": "seznam.cz",
- "favicon_url": "https://search.seznam.cz/r/img/favicon.ico",
+ "favicon_url": "https://search.seznam.cz/favicon.ico",
"search_url": "https://search.seznam.cz/?q={searchTerms}",
- "suggest_url": "https://suggest.fulltext.seznam.cz/fulltext_ff?phrase={searchTerms}",
+ "suggest_url": "https://suggest.seznam.cz/fulltext_ff?phrase={searchTerms}",
+ "type": "SEARCH_ENGINE_SEZNAM",
+ "id": 25
+ },
+
+ "seznam_sk": {
+ "name": "Seznam",
+ "keyword": "seznam.sk",
+ "favicon_url": "https://search.seznam.sk/favicon.ico",
+ "search_url": "https://search.seznam.sk/?q={searchTerms}",
+ "suggest_url": "https://suggest.seznam.sk/fulltext_ff?phrase={searchTerms}",
"type": "SEARCH_ENGINE_SEZNAM",
"id": 25
},
@@ -635,6 +645,7 @@
"alternate_urls": [
"http://hladaj.atlas.sk/fulltext/?phrase={searchTerms}"
],
+ "type": "SEARCH_ENGINE_ATLAS",
"id": 27
},
@@ -731,6 +742,76 @@
"id": 60
},
+ "givero": {
+ "name": "Givero",
+ "keyword": "givero.com",
+ "favicon_url": "https://www.givero.com/favicon.ico",
+ "search_url": "https://www.givero.com/search?q={searchTerms}",
+ "suggest_url": "https://www.givero.com/suggest?q={searchTerms}",
+ "type": "SEARCH_ENGINE_GIVERO",
+ "id": 95
+ },
+
+ "gmx": {
+ "name": "GMX Search",
+ "keyword": "search.gmx.com",
+ "favicon_url": "https://dl.gmx.com/apps/favicon.ico",
+ "search_url": "https://search.gmx.com/web/result?q={searchTerms}&sp=b",
+ "suggest_url": "https://suggestplugin.gmx.com/s?q={searchTerms}&brand=gmxcom&enc={inputEncoding}&sp=b",
+ "type": "SEARCH_ENGINE_GMX",
+ "id": 96
+ },
+
+ "gmx_at": {
+ "name": "GMX Suche",
+ "keyword": "suche.gmx.at",
+ "favicon_url": "https://dl.gmx.com/apps/favicon.ico",
+ "search_url": "https://suche.gmx.at/web/result?q={searchTerms}&sp=b",
+ "suggest_url": "https://suggestplugin.gmx.at/s?q={searchTerms}&brand=gmxat&enc={inputEncoding}&sp=b",
+ "type": "SEARCH_ENGINE_GMX",
+ "id": 96
+ },
+
+ "gmx_de": {
+ "name": "GMX Suche",
+ "keyword": "suche.gmx.net",
+ "favicon_url": "https://dl.gmx.com/apps/favicon.ico",
+ "search_url": "https://suche.gmx.net/web/result?q={searchTerms}&sp=b",
+ "suggest_url": "https://suggestplugin.gmx.net/s?q={searchTerms}&brand=gmx&enc={inputEncoding}&sp=b",
+ "type": "SEARCH_ENGINE_GMX",
+ "id": 96
+ },
+
+ "gmx_es": {
+ "name": "GMX Search",
+ "keyword": "search.gmx.es",
+ "favicon_url": "https://dl.gmx.com/apps/favicon.ico",
+ "search_url": "https://search.gmx.es/web/result?q={searchTerms}&sp=b",
+ "suggest_url": "https://suggestplugin.gmx.es/s?q={searchTerms}&brand=gmxes&enc={inputEncoding}&sp=b",
+ "type": "SEARCH_ENGINE_GMX",
+ "id": 96
+ },
+
+ "gmx_fr": {
+ "name": "GMX Search",
+ "keyword": "search.gmx.fr",
+ "favicon_url": "https://dl.gmx.com/apps/favicon.ico",
+ "search_url": "https://search.gmx.fr/web/result?q={searchTerms}&sp=b",
+ "suggest_url": "https://suggestplugin.gmx.fr/s?q={searchTerms}&brand=gmxfr&enc={inputEncoding}&sp=b",
+ "type": "SEARCH_ENGINE_GMX",
+ "id": 96
+ },
+
+ "gmx_gb": {
+ "name": "GMX Search",
+ "keyword": "search.gmx.co.uk",
+ "favicon_url": "https://dl.gmx.com/apps/favicon.ico",
+ "search_url": "https://search.gmx.co.uk/web/result?q={searchTerms}&sp=b",
+ "suggest_url": "https://suggestplugin.gmx.co.uk/s?q={searchTerms}&brand=gmxcouk&enc={inputEncoding}&sp=b",
+ "type": "SEARCH_ENGINE_GMX",
+ "id": 96
+ },
+
"goo": {
"name": "goo",
"keyword": "search.goo.ne.jp",
@@ -792,6 +873,15 @@
"id": 74
},
+ "info_com": {
+ "name": "Info.com",
+ "keyword": "info.com",
+ "favicon_url": "https://www.info.com/static/www.info.com/favicon.ico",
+ "search_url": "https://www.info.com/serp?q={searchTerms}&segment=info.0472",
+ "type": "SEARCH_ENGINE_INFO_COM",
+ "id": 97
+ },
+
"libero": {
"name": "Libero",
"keyword": "libero.it",
@@ -802,6 +892,24 @@
"id": 63
},
+ "metager_de": {
+ "name": "MetaGer",
+ "keyword": "metager.de",
+ "favicon_url": "https://metager.de/favicon.ico",
+ "search_url": "https://metager.de/meta/meta.ger3?eingabe={searchTerms}",
+ "type": "SEARCH_ENGINE_METAGER",
+ "id": 98
+ },
+
+ "metager_gb": {
+ "name": "MetaGer",
+ "keyword": "metager.org",
+ "favicon_url": "https://metager.de/favicon.ico",
+ "search_url": "https://metager.org/meta/meta.ger3?eingabe={searchTerms}",
+ "type": "SEARCH_ENGINE_METAGER",
+ "id": 98
+ },
+
"neti": {
"name": "NETI",
"keyword": "neti.ee",
@@ -827,6 +935,16 @@
"id": 43
},
+ "oceanhero":{
+ "name": "OceanHero",
+ "keyword": "oceanhero.today",
+ "favicon_url": "https://oceanhero.today/favicon.ico",
+ "search_url": "https://oceanhero.today/web?q={searchTerms}",
+ "suggest_url": "https://api.oceanhero.today/suggestions?q={searchTerms}",
+ "type": "SEARCH_ENGINE_OCEANHERO",
+ "id": 99
+ },
+
"ok": {
"name": "OK.hu",
"keyword": "ok.hu",
@@ -837,6 +955,16 @@
"id": 6
},
+ "privacywall": {
+ "name": "PrivacyWall",
+ "keyword": "privacywall.org",
+ "favicon_url": "https://www.privacywall.org/images/favicon32.ico",
+ "search_url": "https://www.privacywall.org/search/secure/?q={searchTerms}",
+ "suggest_url": "https://www.privacywall.org/search/suggest.php?q={searchTerms}",
+ "type": "SEARCH_ENGINE_PRIVACYWALL",
+ "id": 100
+ },
+
"rambler": {
"name": "\u0420\u0430\u043c\u0431\u043b\u0435\u0440",
"keyword": "rambler.ru",
@@ -1009,5 +1137,9 @@
"type": "SEARCH_ENGINE_ZOZNAM",
"id": 85
}
+ },
+
+ "generate_array": {
+ "array_name": "kAllEngines"
}
}
diff --git a/chromium/components/search_engines/search_engine_type.h b/chromium/components/search_engines/search_engine_type.h
index 50b5cb89680..ff303b8f304 100644
--- a/chromium/components/search_engines/search_engine_type.h
+++ b/chromium/components/search_engines/search_engine_type.h
@@ -67,6 +67,12 @@ enum SearchEngineType {
SEARCH_ENGINE_DUCKDUCKGO,
SEARCH_ENGINE_PARSIJOO,
SEARCH_ENGINE_QWANT,
+ SEARCH_ENGINE_GIVERO,
+ SEARCH_ENGINE_GMX,
+ SEARCH_ENGINE_INFO_COM,
+ SEARCH_ENGINE_METAGER,
+ SEARCH_ENGINE_OCEANHERO,
+ SEARCH_ENGINE_PRIVACYWALL,
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
};
diff --git a/chromium/components/search_engines/template_url_prepopulate_data.cc b/chromium/components/search_engines/template_url_prepopulate_data.cc
index 5fd11a9daa8..afd8d81a177 100644
--- a/chromium/components/search_engines/template_url_prepopulate_data.cc
+++ b/chromium/components/search_engines/template_url_prepopulate_data.cc
@@ -204,7 +204,7 @@ const PrepopulatedEngine* const engines_CR[] = {
// Czech Republic
const PrepopulatedEngine* const engines_CZ[] = {
&google,
- &seznam,
+ &seznam_cz,
&bing,
&yahoo,
};
@@ -889,96 +889,6 @@ const PrepopulatedEngine* const engines_ZW[] = {
};
// ----------------------------------------------------------------------------
-// A list of all the engines that we know about.
-const PrepopulatedEngine* const kAllEngines[] = {
- // Prepopulated engines:
- &ask,
- &baidu,
- &bing,
- &coccoc,
- &daum,
- &duckduckgo,
- &google,
- &mail_ru,
- &naver,
- &qwant,
- &seznam,
- &sogou,
- &yahoo,
- &yahoo_ar,
- &yahoo_at,
- &yahoo_au,
- &yahoo_br,
- &yahoo_ca,
- &yahoo_ch,
- &yahoo_cl,
- &yahoo_co,
- &yahoo_de,
- &yahoo_dk,
- &yahoo_es,
- &yahoo_fi,
- &yahoo_fr,
- &yahoo_hk,
- &yahoo_id,
- &yahoo_in,
- &yahoo_jp,
- &yahoo_mx,
- &yahoo_my,
- &yahoo_nl,
- &yahoo_nz,
- &yahoo_pe,
- &yahoo_ph,
- &yahoo_qc,
- &yahoo_se,
- &yahoo_sg,
- &yahoo_th,
- &yahoo_tr,
- &yahoo_tw,
- &yahoo_uk,
- &yahoo_ve,
- &yahoo_vn,
- &yandex_by,
- &yandex_com,
- &yandex_kz,
- &yandex_ru,
- &yandex_tr,
- &yandex_ua,
-
- // UMA-only engines:
- &atlas_cz,
- &atlas_sk,
- &avg,
- &babylon,
- &conduit,
- &delfi_lt,
- &delfi_lv,
- &delta,
- &funmoods,
- &goo,
- &imesh,
- &iminent,
- &in,
- &incredibar,
- &libero,
- &neti,
- &nigma,
- &ok,
- &rambler,
- &sapo,
- &search_results,
- &searchnu,
- &snapdo,
- &softonic,
- &sweetim,
- &sweetpacks,
- &terra_ar,
- &terra_es,
- &tut,
- &walla,
- &wp,
- &zoznam,
-};
-
std::vector<std::unique_ptr<TemplateURLData>> GetPrepopulationSetFromCountryID(
int country_id) {
const PrepopulatedEngine* const* engines;
@@ -1404,8 +1314,8 @@ std::vector<std::unique_ptr<TemplateURLData>> GetLocalPrepopulatedEngines(
#endif
std::vector<const PrepopulatedEngine*> GetAllPrepopulatedEngines() {
- return std::vector<const PrepopulatedEngine*>(std::begin(kAllEngines),
- std::end(kAllEngines));
+ return std::vector<const PrepopulatedEngine*>(
+ &kAllEngines[0], &kAllEngines[0] + kAllEnginesLength);
}
void ClearPrepopulatedEnginesInPrefs(PrefService* prefs) {
@@ -1442,7 +1352,7 @@ SearchEngineType GetEngineType(const GURL& url) {
return google.type;
// Now check the rest of the prepopulate data.
- for (size_t i = 0; i < base::size(kAllEngines); ++i) {
+ for (size_t i = 0; i < kAllEnginesLength; ++i) {
// First check the main search URL.
if (SameDomain(url, GURL(kAllEngines[i]->search_url)))
return kAllEngines[i]->type;