From 87a4a1ad7c32138dd2d87066417bddc63cbf7619 Mon Sep 17 00:00:00 2001 From: Mikhail Novosyolov Date: Sun, 29 May 2022 22:31:21 +0300 Subject: [PATCH] Yandex as default search engine Unfortunately, Google has commercially gone away from Russia, where most users of ROSA Linux are located. Quality of google.ru search results seems to be degradating a bit. I understand that Google develops Chromium, and so it would be fair if they got some money from adverstisment, but, firstly, they have themselves stopped all ads in Russia, secondly, influnce of Google is a bad thing because they have to take part in the information war. The patch "Functional new tab page with non-Google search engines" makes chrome://new-tab-page work. Yandex's URL which is patched here does not allow to add new items in to the quick access list and shows advertisment of the proprietary Yandex browser. I do not want users to install it. A simpler solution would be changing chromium-default-config.json like http://git.osmesh.ru/MOS/mos-panel-desktop/src/commit/0f02deea4f7da5ee186433cc71a7ba0193a8f52d/kometa-std-desktop-1.1/chromium.json but it would make Yandex.ru be the default even for not Russian users. --- .../search_engines/prepopulated_engines.json | 9 ++++--- .../template_url_prepopulate_data.cc | 25 ++++++++++++++----- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json index 13572d4355..cc449a1ccb 100644 --- a/components/search_engines/prepopulated_engines.json +++ b/components/search_engines/prepopulated_engines.json @@ -553,7 +553,7 @@ "suggest_url": "https://suggest.yandex.by/suggest-ff.cgi?part={searchTerms}&{google:cursorPosition}", "image_url": "https://yandex.by/images/search/?rpt=imageview", "image_url_post_params": "upfile={google:imageThumbnail},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight},prg=1", - "new_tab_url": "https://www.yandex.by/chrome/newtab", + "new_tab_url": "chrome://new-tab-page", "type": "SEARCH_ENGINE_YANDEX", "id": 15 }, @@ -566,6 +566,7 @@ "suggest_url": "https://suggest.yandex.com/suggest-ff.cgi?part={searchTerms}&{google:cursorPosition}&uil=en&v=3&sn=5", "image_url": "https://yandex.com/images/search?rpt=imageview", "image_url_post_params": "upfile={google:imageThumbnail},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight},prg=1", + "new_tab_url": "chrome://new-tab-page", "type": "SEARCH_ENGINE_YANDEX", "id": 15 }, @@ -579,7 +580,7 @@ "suggest_url": "https://suggest.yandex.kz/suggest-ff.cgi?part={searchTerms}&{google:cursorPosition}", "image_url": "https://yandex.kz/images/search/?rpt=imageview", "image_url_post_params": "upfile={google:imageThumbnail},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight},prg=1", - "new_tab_url": "https://www.yandex.kz/chrome/newtab", + "new_tab_url": "chrome://new-tab-page", "type": "SEARCH_ENGINE_YANDEX", "id": 15 }, @@ -593,7 +594,7 @@ "suggest_url": "https://suggest.yandex.ru/suggest-ff.cgi?part={searchTerms}&{google:cursorPosition}", "image_url": "https://yandex.ru/images/search/?rpt=imageview", "image_url_post_params": "upfile={google:imageThumbnail},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight},prg=1", - "new_tab_url": "https://www.yandex.ru/chrome/newtab", + "new_tab_url": "chrome://new-tab-page", "type": "SEARCH_ENGINE_YANDEX", "id": 15 }, @@ -606,7 +607,7 @@ "suggest_url": "https://suggest.yandex.com.tr/suggest-ff.cgi?part={searchTerms}&{google:cursorPosition}", "image_url": "https://yandex.com.tr/gorsel/search?rpt=imageview", "image_url_post_params": "upfile={google:imageThumbnail},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight},prg=1", - "new_tab_url": "https://www.yandex.com.tr/chrome/newtab", + "new_tab_url": "chrome://new-tab-page", "type": "SEARCH_ENGINE_YANDEX", "id": 15 }, diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc index e38343c221..9a421c6313 100644 --- a/components/search_engines/template_url_prepopulate_data.cc +++ b/components/search_engines/template_url_prepopulate_data.cc @@ -28,6 +28,7 @@ namespace { // Default (for countries with no better engine set) const PrepopulatedEngine* const engines_default[] = { + &yandex_com, &google, &bing, &yahoo, @@ -155,8 +156,8 @@ const PrepopulatedEngine* const engines_BR[] = { // Belarus const PrepopulatedEngine* const engines_BY[] = { - &google, &yandex_by, + &google, &mail_ru, &bing, &duckduckgo, @@ -434,10 +435,10 @@ const PrepopulatedEngine* const engines_IN[] = { // Iraq const PrepopulatedEngine* const engines_IQ[] = { + &yandex_tr, &google, &bing, &yahoo, - &yandex_tr, &duckduckgo, }; @@ -524,8 +525,8 @@ const PrepopulatedEngine* const engines_KW[] = { // Kazakhstan const PrepopulatedEngine* const engines_KZ[] = { - &google, &yandex_kz, + &google, &mail_ru, &bing, &duckduckgo, @@ -794,8 +795,8 @@ const PrepopulatedEngine* const engines_RS[] = { // Russia const PrepopulatedEngine* const engines_RU[] = { - &google, &yandex_ru, + &google, &mail_ru, &bing, &duckduckgo, @@ -893,8 +894,8 @@ const PrepopulatedEngine* const engines_TN[] = { // Turkey const PrepopulatedEngine* const engines_TR[] = { - &google, &yandex_tr, + &google, &yahoo_tr, &bing, &duckduckgo, @@ -1381,7 +1382,19 @@ std::vector> GetPrepopulatedEngines( t_urls = GetPrepopulationSetFromCountryID( country_codes::GetCountryIDFromPrefs(prefs)); } - if (default_search_provider_index) { + /* Making yandex_ru be the first in "const PrepopulatedEngine* const engines_RU[]" + * makes it be the first item in chrome://settings/search, + * but Google is still chosen by default. + * I did not understand this code really well, probably it calculates the distance + * between 0 and Google's position. So, as a hack, assume that yandex_ru + * is the first in that list (this patch made it be the first) to force the first element + * of engine_RU[] to become the real default search engine. + */ + int is_russian = strcmp(getenv("LANG"), "ru_RU.UTF-8"); + if (default_search_provider_index && (is_russian == 0)) { + *default_search_provider_index = 0; /* if LANG == ru_RU.UTF-8 */ + } + if (default_search_provider_index && (is_russian != 0)) { const auto itr = std::find_if( t_urls.begin(), t_urls.end(), [](const auto& t_url) { return t_url->prepopulate_id == google.id; }); -- 2.35.2