Commit 717796fb authored by Basia Zimirska's avatar Basia Zimirska Committed by Chromium LUCI CQ

Move management of accept languages to language_prefs.

With this cl adding and removing languages to kAcceptLanguages will be handled by language_prefs.
The idea behind this refactoring work is to separate concepts of accept languages (saved in Chrome format, consumed by translate and non-translate clients) and blocked/fluent languages that are stored in translate format and are consumed by translate clients.
Next step is to move isFluent from language_prefs to translate_prefs.

Bug: 949251
Change-Id: I6971887bec72856c35ca61010c4ff6976f622164
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2565069Reviewed-by: default avatarMegan Jablonski <megjablon@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Reviewed-by: default avatarTrevor  Perrier <perrier@chromium.org>
Commit-Queue: Basia Zimirska <basiaz@google.com>
Cr-Commit-Position: refs/heads/master@{#834962}
parent 6386d933
...@@ -157,14 +157,8 @@ ChromeTranslateClient::per_frame_translate_driver() { ...@@ -157,14 +157,8 @@ ChromeTranslateClient::per_frame_translate_driver() {
// static // static
std::unique_ptr<translate::TranslatePrefs> std::unique_ptr<translate::TranslatePrefs>
ChromeTranslateClient::CreateTranslatePrefs(PrefService* prefs) { ChromeTranslateClient::CreateTranslatePrefs(PrefService* prefs) {
#if BUILDFLAG(IS_CHROMEOS_ASH)
const char* preferred_languages_prefs = language::prefs::kPreferredLanguages;
#else
const char* preferred_languages_prefs = NULL;
#endif
std::unique_ptr<translate::TranslatePrefs> translate_prefs( std::unique_ptr<translate::TranslatePrefs> translate_prefs(
new translate::TranslatePrefs(prefs, language::prefs::kAcceptLanguages, new translate::TranslatePrefs(prefs));
preferred_languages_prefs));
// We need to obtain the country here, since it comes from VariationsService. // We need to obtain the country here, since it comes from VariationsService.
// components/ does not have access to that. // components/ does not have access to that.
......
...@@ -26,6 +26,7 @@ static_library("browser") { ...@@ -26,6 +26,7 @@ static_library("browser") {
deps = [ deps = [
"//base", "//base",
"//build:chromeos_buildflags",
"//components/keyed_service/core", "//components/keyed_service/core",
"//components/language/core/common", "//components/language/core/common",
"//components/pref_registry", "//components/pref_registry",
...@@ -46,6 +47,7 @@ source_set("unit_tests") { ...@@ -46,6 +47,7 @@ source_set("unit_tests") {
] ]
deps = [ deps = [
":browser", ":browser",
":test_support",
"//base", "//base",
"//components/pref_registry:pref_registry", "//components/pref_registry:pref_registry",
"//components/prefs", "//components/prefs",
...@@ -57,3 +59,19 @@ source_set("unit_tests") { ...@@ -57,3 +59,19 @@ source_set("unit_tests") {
"//testing/gtest", "//testing/gtest",
] ]
} }
source_set("test_support") {
testonly = true
sources = [
"language_prefs_test_util.cc",
"language_prefs_test_util.h",
]
deps = [
":browser",
"//base",
"//build:chromeos_buildflags",
"//components/prefs",
"//testing/gmock",
"//testing/gtest",
]
}
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include "base/strings/string_split.h" #include "base/strings/string_split.h"
#include "base/strings/string_util.h" #include "base/strings/string_util.h"
#include "base/values.h" #include "base/values.h"
#include "build/chromeos_buildflags.h"
#include "components/language/core/browser/pref_names.h" #include "components/language/core/browser/pref_names.h"
#include "components/language/core/common/language_util.h" #include "components/language/core/common/language_util.h"
#include "components/language/core/common/locale_util.h" #include "components/language/core/common/locale_util.h"
...@@ -86,6 +87,30 @@ void LanguagePrefs::ResetEmptyFluentLanguagesToDefault() { ...@@ -86,6 +87,30 @@ void LanguagePrefs::ResetEmptyFluentLanguagesToDefault() {
ResetFluentLanguagesToDefaults(); ResetFluentLanguagesToDefaults();
} }
void LanguagePrefs::GetAcceptLanguagesList(
std::vector<std::string>* languages) const {
DCHECK(languages);
DCHECK(languages->empty());
#if BUILDFLAG(IS_CHROMEOS_ASH)
const std::string& key = language::prefs::kPreferredLanguages;
#else
const std::string& key = language::prefs::kAcceptLanguages;
#endif
*languages = base::SplitString(prefs_->GetString(key), ",",
base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
}
void LanguagePrefs::SetAcceptLanguagesList(
const std::vector<std::string>& languages) {
std::string languages_str = base::JoinString(languages, ",");
#if BUILDFLAG(IS_CHROMEOS_ASH)
prefs_->SetString(language::prefs::kPreferredLanguages, languages_str);
#endif
prefs_->SetString(language::prefs::kAcceptLanguages, languages_str);
}
// static // static
base::Value LanguagePrefs::GetDefaultFluentLanguages() { base::Value LanguagePrefs::GetDefaultFluentLanguages() {
typename base::Value::ListStorage languages; typename base::Value::ListStorage languages;
......
...@@ -44,6 +44,12 @@ class LanguagePrefs { ...@@ -44,6 +44,12 @@ class LanguagePrefs {
static base::Value GetDefaultFluentLanguages(); static base::Value GetDefaultFluentLanguages();
// If the list of fluent languages is empty, reset it to defaults. // If the list of fluent languages is empty, reset it to defaults.
void ResetEmptyFluentLanguagesToDefault(); void ResetEmptyFluentLanguagesToDefault();
// Gets the language list of the language settings. Language settings list
// have the Chrome internal format.
void GetAcceptLanguagesList(std::vector<std::string>* languages) const;
// Updates the language list of the language settings. Languages are expected
// to be in the Chrome internal format.
void SetAcceptLanguagesList(const std::vector<std::string>& languages);
private: private:
base::Value* GetFluentLanguages(); base::Value* GetFluentLanguages();
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/language/core/browser/language_prefs_test_util.h"
#include "base/strings/string_util.h"
#include "build/chromeos_buildflags.h"
#include "components/language/core/browser/pref_names.h"
#include "components/prefs/pref_service.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace language {
namespace test {
AcceptLanguagesTester::AcceptLanguagesTester(PrefService* user_prefs)
: prefs_(user_prefs) {}
void AcceptLanguagesTester::ExpectLanguagePrefs(
const std::string& expected_prefs,
const std::string& expected_prefs_chromeos) const {
if (expected_prefs.empty()) {
EXPECT_TRUE(prefs_->GetString(language::prefs::kAcceptLanguages).empty());
} else {
EXPECT_EQ(expected_prefs,
prefs_->GetString(language::prefs::kAcceptLanguages));
}
#if BUILDFLAG(IS_CHROMEOS_ASH)
if (expected_prefs_chromeos.empty()) {
EXPECT_TRUE(
prefs_->GetString(language::prefs::kPreferredLanguages).empty());
} else {
EXPECT_EQ(expected_prefs_chromeos,
prefs_->GetString(language::prefs::kPreferredLanguages));
}
#endif
}
// Similar to function above: this one expects both ChromeOS and other
// platforms to have the same value of language prefs.
void AcceptLanguagesTester::ExpectLanguagePrefs(
const std::string& expected_prefs) const {
ExpectLanguagePrefs(expected_prefs, expected_prefs);
}
void AcceptLanguagesTester::SetLanguagePrefs(
const std::vector<std::string>& languages) {
std::string languages_str = base::JoinString(languages, ",");
#if BUILDFLAG(IS_CHROMEOS_ASH)
prefs_->SetString(language::prefs::kPreferredLanguages, languages_str);
#endif
prefs_->SetString(language::prefs::kAcceptLanguages, languages_str);
}
} // namespace test
} // namespace language
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_LANGUAGE_CORE_BROWSER_LANGUAGE_PREFS_TEST_UTIL_H_
#define COMPONENTS_LANGUAGE_CORE_BROWSER_LANGUAGE_PREFS_TEST_UTIL_H_
#include <string>
#include "base/macros.h"
#include "base/strings/string_piece.h"
class PrefService;
namespace language {
namespace test {
// Helper class for testing Accept Languages.
class AcceptLanguagesTester {
public:
explicit AcceptLanguagesTester(PrefService* user_prefs);
// Checks that the provided strings are equivalent to the content language
// prefs. Chrome OS uses a different pref, so we need to handle it separately.
void ExpectLanguagePrefs(const std::string& expected_prefs,
const std::string& expected_prefs_chromeos) const;
// Similar to function above: this one expects both ChromeOS and other
// platforms to have the same value of language prefs.
void ExpectLanguagePrefs(const std::string& expected_prefs) const;
void SetLanguagePrefs(const std::vector<std::string>& languages);
private:
PrefService* prefs_;
};
} // namespace test
} // namespace language
#endif // COMPONENTS_LANGUAGE_CORE_BROWSER_LANGUAGE_PREFS_TEST_UTIL_H_
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include "base/test/test_timeouts.h" #include "base/test/test_timeouts.h"
#include "base/values.h" #include "base/values.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "components/language/core/browser/language_prefs_test_util.h"
#include "components/language/core/browser/pref_names.h" #include "components/language/core/browser/pref_names.h"
#include "components/prefs/scoped_user_pref_update.h" #include "components/prefs/scoped_user_pref_update.h"
#include "components/sync_preferences/testing_pref_service_syncable.h" #include "components/sync_preferences/testing_pref_service_syncable.h"
...@@ -41,6 +42,13 @@ class LanguagePrefsTest : public testing::Test { ...@@ -41,6 +42,13 @@ class LanguagePrefsTest : public testing::Test {
language_prefs_.reset(new language::LanguagePrefs(prefs_.get())); language_prefs_.reset(new language::LanguagePrefs(prefs_.get()));
} }
void SetUp() override {
prefs_->SetString(language::prefs::kAcceptLanguages, std::string());
#if BUILDFLAG(IS_CHROMEOS_ASH)
prefs_->SetString(language::prefs::kPreferredLanguages, std::string());
#endif
}
void ExpectFluentLanguageListContent( void ExpectFluentLanguageListContent(
const std::vector<std::string>& list) const { const std::vector<std::string>& list) const {
const base::Value* values = prefs_->Get(language::prefs::kFluentLanguages); const base::Value* values = prefs_->Get(language::prefs::kFluentLanguages);
...@@ -158,4 +166,33 @@ TEST_F(LanguagePrefsTest, GetFirstLanguageTest) { ...@@ -158,4 +166,33 @@ TEST_F(LanguagePrefsTest, GetFirstLanguageTest) {
EXPECT_EQ("", language::GetFirstLanguage("")); EXPECT_EQ("", language::GetFirstLanguage(""));
} }
TEST_F(LanguagePrefsTest, UpdateLanguageList) {
language::test::AcceptLanguagesTester content_languages_tester =
language::test::AcceptLanguagesTester(prefs_.get());
// Empty update.
std::vector<std::string> languages;
language_prefs_->SetAcceptLanguagesList(languages);
content_languages_tester.ExpectLanguagePrefs("");
// One language.
languages = {"en"};
language_prefs_->SetAcceptLanguagesList(languages);
content_languages_tester.ExpectLanguagePrefs("en");
// More than one language.
languages = {"en", "ja", "it"};
language_prefs_->SetAcceptLanguagesList(languages);
content_languages_tester.ExpectLanguagePrefs("en,ja,it");
// Locale-specific codes.
// The list is exanded by adding the base languagese.
languages = {"en-US", "ja", "en-CA", "fr-CA"};
language_prefs_->SetAcceptLanguagesList(languages);
content_languages_tester.ExpectLanguagePrefs("en-US,ja,en-CA,fr-CA");
// List already expanded.
languages = {"en-US", "en", "fr", "fr-CA"};
language_prefs_->SetAcceptLanguagesList(languages);
content_languages_tester.ExpectLanguagePrefs("en-US,en,fr,fr-CA");
}
} // namespace language } // namespace language
...@@ -120,6 +120,7 @@ source_set("unit_tests") { ...@@ -120,6 +120,7 @@ source_set("unit_tests") {
"//components/assist_ranker/proto", "//components/assist_ranker/proto",
"//components/infobars/core", "//components/infobars/core",
"//components/language/core/browser", "//components/language/core/browser",
"//components/language/core/browser:test_support",
"//components/language/core/common:common", "//components/language/core/common:common",
"//components/pref_registry:pref_registry", "//components/pref_registry:pref_registry",
"//components/prefs", "//components/prefs",
......
...@@ -34,8 +34,7 @@ PrefService* MockTranslateClient::GetPrefs() { ...@@ -34,8 +34,7 @@ PrefService* MockTranslateClient::GetPrefs() {
} }
std::unique_ptr<TranslatePrefs> MockTranslateClient::GetTranslatePrefs() { std::unique_ptr<TranslatePrefs> MockTranslateClient::GetTranslatePrefs() {
return std::make_unique<TranslatePrefs>(prefs_, accept_languages_prefs, return std::make_unique<TranslatePrefs>(prefs_);
preferred_languages_prefs);
} }
} // namespace testing } // namespace testing
......
...@@ -132,9 +132,7 @@ class TranslateManagerTest : public ::testing::Test { ...@@ -132,9 +132,7 @@ class TranslateManagerTest : public ::testing::Test {
protected: protected:
TranslateManagerTest() TranslateManagerTest()
: registration_(&prefs_), : registration_(&prefs_),
translate_prefs_(&prefs_, translate_prefs_(&prefs_),
accept_languages_prefs,
preferred_languages_prefs),
manager_(TranslateDownloadManager::GetInstance()), manager_(TranslateDownloadManager::GetInstance()),
mock_translate_client_(&driver_, &prefs_), mock_translate_client_(&driver_, &prefs_),
mock_language_model_({MockLanguageModel::LanguageDetails("en", 1.0)}) {} mock_language_model_({MockLanguageModel::LanguageDetails("en", 1.0)}) {}
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#include "base/util/values/values_util.h" #include "base/util/values/values_util.h"
#include "base/values.h" #include "base/values.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "components/language/core/browser/language_prefs.h" #include "components/language/core/browser/language_prefs.h"
#include "components/language/core/common/language_experiments.h" #include "components/language/core/common/language_experiments.h"
#include "components/language/core/common/language_util.h" #include "components/language/core/common/language_util.h"
...@@ -81,7 +80,7 @@ void PurgeUnsupportedLanguagesInLanguageFamily(base::StringPiece language, ...@@ -81,7 +80,7 @@ void PurgeUnsupportedLanguagesInLanguageFamily(base::StringPiece language,
} // namespace } // namespace
const char kForceTriggerTranslateCount[] = const char TranslatePrefs::kPrefForceTriggerTranslateCount[] =
"translate_force_trigger_on_english_count_for_backoff_1"; "translate_force_trigger_on_english_count_for_backoff_1";
const char TranslatePrefs::kPrefNeverPromptSitesDeprecated[] = const char TranslatePrefs::kPrefNeverPromptSitesDeprecated[] =
"translate_site_blacklist"; "translate_site_blacklist";
...@@ -190,17 +189,9 @@ TranslateLanguageInfo& TranslateLanguageInfo::operator=( ...@@ -190,17 +189,9 @@ TranslateLanguageInfo& TranslateLanguageInfo::operator=(
TranslateLanguageInfo& TranslateLanguageInfo::operator=( TranslateLanguageInfo& TranslateLanguageInfo::operator=(
TranslateLanguageInfo&&) noexcept = default; TranslateLanguageInfo&&) noexcept = default;
TranslatePrefs::TranslatePrefs(PrefService* user_prefs, TranslatePrefs::TranslatePrefs(PrefService* user_prefs)
const char* accept_languages_pref, : prefs_(user_prefs),
const char* preferred_languages_pref)
: accept_languages_pref_(accept_languages_pref),
prefs_(user_prefs),
language_prefs_(std::make_unique<language::LanguagePrefs>(user_prefs)) { language_prefs_(std::make_unique<language::LanguagePrefs>(user_prefs)) {
#if BUILDFLAG(IS_CHROMEOS_ASH)
preferred_languages_pref_ = preferred_languages_pref;
#else
DCHECK(!preferred_languages_pref);
#endif
MigrateNeverPromptSites(); MigrateNeverPromptSites();
ResetEmptyBlockedLanguagesToDefaults(); ResetEmptyBlockedLanguagesToDefaults();
} }
...@@ -278,7 +269,7 @@ void TranslatePrefs::AddToLanguageList(base::StringPiece input_language, ...@@ -278,7 +269,7 @@ void TranslatePrefs::AddToLanguageList(base::StringPiece input_language,
// Add the language to the list. // Add the language to the list.
if (!base::Contains(languages, chrome_language)) { if (!base::Contains(languages, chrome_language)) {
languages.push_back(chrome_language); languages.push_back(chrome_language);
UpdateLanguageList(languages); language_prefs_->SetAcceptLanguagesList(languages);
} }
} }
...@@ -303,7 +294,7 @@ void TranslatePrefs::RemoveFromLanguageList(base::StringPiece input_language) { ...@@ -303,7 +294,7 @@ void TranslatePrefs::RemoveFromLanguageList(base::StringPiece input_language) {
languages.erase(it); languages.erase(it);
PurgeUnsupportedLanguagesInLanguageFamily(chrome_language, &languages); PurgeUnsupportedLanguagesInLanguageFamily(chrome_language, &languages);
UpdateLanguageList(languages); language_prefs_->SetAcceptLanguagesList(languages);
// We should unblock the language if this was the last one from the same // We should unblock the language if this was the last one from the same
// language family. // language family.
...@@ -384,12 +375,12 @@ void TranslatePrefs::RearrangeLanguage( ...@@ -384,12 +375,12 @@ void TranslatePrefs::RearrangeLanguage(
return; return;
} }
UpdateLanguageList(languages); language_prefs_->SetAcceptLanguagesList(languages);
} }
void TranslatePrefs::SetLanguageOrder( void TranslatePrefs::SetLanguageOrder(
const std::vector<std::string>& new_order) { const std::vector<std::string>& new_order) {
UpdateLanguageList(new_order); language_prefs_->SetAcceptLanguagesList(new_order);
} }
// static // static
...@@ -735,28 +726,7 @@ void TranslatePrefs::ResetDenialState() { ...@@ -735,28 +726,7 @@ void TranslatePrefs::ResetDenialState() {
void TranslatePrefs::GetLanguageList( void TranslatePrefs::GetLanguageList(
std::vector<std::string>* const languages) const { std::vector<std::string>* const languages) const {
DCHECK(languages); language_prefs_->GetAcceptLanguagesList(languages);
DCHECK(languages->empty());
#if BUILDFLAG(IS_CHROMEOS_ASH)
const std::string& key = preferred_languages_pref_;
#else
const std::string& key = accept_languages_pref_;
#endif
*languages = base::SplitString(prefs_->GetString(key), ",",
base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
}
void TranslatePrefs::UpdateLanguageList(
const std::vector<std::string>& languages) {
std::string languages_str = base::JoinString(languages, ",");
#if BUILDFLAG(IS_CHROMEOS_ASH)
prefs_->SetString(preferred_languages_pref_, languages_str);
#endif
prefs_->SetString(accept_languages_pref_, languages_str);
} }
bool TranslatePrefs::CanTranslateLanguage( bool TranslatePrefs::CanTranslateLanguage(
...@@ -811,19 +781,19 @@ std::string TranslatePrefs::GetRecentTargetLanguage() const { ...@@ -811,19 +781,19 @@ std::string TranslatePrefs::GetRecentTargetLanguage() const {
} }
int TranslatePrefs::GetForceTriggerOnEnglishPagesCount() const { int TranslatePrefs::GetForceTriggerOnEnglishPagesCount() const {
return prefs_->GetInteger(kForceTriggerTranslateCount); return prefs_->GetInteger(kPrefForceTriggerTranslateCount);
} }
void TranslatePrefs::ReportForceTriggerOnEnglishPages() { void TranslatePrefs::ReportForceTriggerOnEnglishPages() {
int current_count = GetForceTriggerOnEnglishPagesCount(); int current_count = GetForceTriggerOnEnglishPagesCount();
if (current_count != -1 && current_count < std::numeric_limits<int>::max()) if (current_count != -1 && current_count < std::numeric_limits<int>::max())
prefs_->SetInteger(kForceTriggerTranslateCount, current_count + 1); prefs_->SetInteger(kPrefForceTriggerTranslateCount, current_count + 1);
} }
void TranslatePrefs::ReportAcceptedAfterForceTriggerOnEnglishPages() { void TranslatePrefs::ReportAcceptedAfterForceTriggerOnEnglishPages() {
int current_count = GetForceTriggerOnEnglishPagesCount(); int current_count = GetForceTriggerOnEnglishPagesCount();
if (current_count != -1) if (current_count != -1)
prefs_->SetInteger(kForceTriggerTranslateCount, -1); prefs_->SetInteger(kPrefForceTriggerTranslateCount, -1);
} }
// static // static
...@@ -853,7 +823,7 @@ void TranslatePrefs::RegisterProfilePrefs( ...@@ -853,7 +823,7 @@ void TranslatePrefs::RegisterProfilePrefs(
registry->RegisterStringPref(kPrefTranslateRecentTarget, "", registry->RegisterStringPref(kPrefTranslateRecentTarget, "",
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterIntegerPref( registry->RegisterIntegerPref(
kForceTriggerTranslateCount, 0, kPrefForceTriggerTranslateCount, 0,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
#if defined(OS_ANDROID) || defined(OS_IOS) #if defined(OS_ANDROID) || defined(OS_IOS)
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include "base/strings/string_piece.h" #include "base/strings/string_piece.h"
#include "base/time/time.h" #include "base/time/time.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "components/prefs/scoped_user_pref_update.h" #include "components/prefs/scoped_user_pref_update.h"
#include "url/gurl.h" #include "url/gurl.h"
...@@ -159,11 +158,7 @@ class TranslatePrefs { ...@@ -159,11 +158,7 @@ class TranslatePrefs {
kDown kDown
}; };
// |preferred_languages_pref| is only used on Chrome OS, other platforms must explicit TranslatePrefs(PrefService* user_prefs);
// pass NULL.
TranslatePrefs(PrefService* user_prefs,
const char* accept_languages_pref,
const char* preferred_languages_pref);
~TranslatePrefs(); ~TranslatePrefs();
...@@ -335,7 +330,6 @@ class TranslatePrefs { ...@@ -335,7 +330,6 @@ class TranslatePrefs {
static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
private: private:
FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, UpdateLanguageList);
FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest,
UpdateLanguageListFeatureEnabled); UpdateLanguageListFeatureEnabled);
FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, BlockLanguage); FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, BlockLanguage);
...@@ -353,9 +347,6 @@ class TranslatePrefs { ...@@ -353,9 +347,6 @@ class TranslatePrefs {
FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, MoveLanguageDown); FRIEND_TEST_ALL_PREFIXES(TranslatePrefsTest, MoveLanguageDown);
friend class TranslatePrefsTest; friend class TranslatePrefsTest;
// Updates the language list of the language settings.
void UpdateLanguageList(const std::vector<std::string>& languages);
void ResetBlockedLanguagesToDefault(); void ResetBlockedLanguagesToDefault();
void ClearNeverPromptSiteList(); void ClearNeverPromptSiteList();
void ClearAlwaysTranslateLanguagePairs(); void ClearAlwaysTranslateLanguagePairs();
...@@ -370,14 +361,6 @@ class TranslatePrefs { ...@@ -370,14 +361,6 @@ class TranslatePrefs {
bool IsDictionaryEmpty(const char* pref_id) const; bool IsDictionaryEmpty(const char* pref_id) const;
// Path to the preference storing the accept languages.
const std::string accept_languages_pref_;
#if BUILDFLAG(IS_CHROMEOS_ASH)
// Path to the preference storing the preferred languages.
// Only used on ChromeOS.
std::string preferred_languages_pref_;
#endif
// Retrieves the dictionary mapping the number of times translation has been // Retrieves the dictionary mapping the number of times translation has been
// denied for a language, creating it if necessary. // denied for a language, creating it if necessary.
base::DictionaryValue* GetTranslationDeniedCountDictionary(); base::DictionaryValue* GetTranslationDeniedCountDictionary();
......
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
#include "build/build_config.h" #include "build/build_config.h"
#include "build/chromeos_buildflags.h" #include "build/chromeos_buildflags.h"
#include "components/language/core/browser/language_prefs.h" #include "components/language/core/browser/language_prefs.h"
#include "components/language/core/browser/language_prefs_test_util.h"
#include "components/language/core/browser/pref_names.h"
#include "components/language/core/common/language_experiments.h" #include "components/language/core/common/language_experiments.h"
#include "components/prefs/scoped_user_pref_update.h" #include "components/prefs/scoped_user_pref_update.h"
#include "components/sync_preferences/testing_pref_service_syncable.h" #include "components/sync_preferences/testing_pref_service_syncable.h"
...@@ -37,18 +39,6 @@ using ::testing::UnorderedElementsAreArray; ...@@ -37,18 +39,6 @@ using ::testing::UnorderedElementsAreArray;
const char kTestLanguage[] = "en"; const char kTestLanguage[] = "en";
#if BUILDFLAG(IS_CHROMEOS_ASH)
const char kPreferredLanguagesPref[] = "settings.language.preferred_languages";
#else
const char* kPreferredLanguagesPref = nullptr;
#endif
const char kAcceptLanguagesPref[] = "intl.accept_languages";
const char kTranslateBlockedLanguagesPref[] = "translate_blocked_languages";
const char kForceTriggerTranslateCountPref[] =
"translate_force_trigger_on_english_count_for_backoff_1";
} // namespace } // namespace
namespace translate { namespace translate {
...@@ -70,16 +60,17 @@ class TranslatePrefsTest : public testing::Test { ...@@ -70,16 +60,17 @@ class TranslatePrefsTest : public testing::Test {
TranslatePrefsTest() { TranslatePrefsTest() {
language::LanguagePrefs::RegisterProfilePrefs(prefs_.registry()); language::LanguagePrefs::RegisterProfilePrefs(prefs_.registry());
TranslatePrefs::RegisterProfilePrefs(prefs_.registry()); TranslatePrefs::RegisterProfilePrefs(prefs_.registry());
translate_prefs_ = std::make_unique<translate::TranslatePrefs>( translate_prefs_ = std::make_unique<translate::TranslatePrefs>(&prefs_);
&prefs_, kAcceptLanguagesPref, kPreferredLanguagesPref); accept_languages_tester_ =
std::make_unique<language::test::AcceptLanguagesTester>(&prefs_);
now_ = base::Time::Now(); now_ = base::Time::Now();
two_days_ago_ = now_ - base::TimeDelta::FromDays(2); two_days_ago_ = now_ - base::TimeDelta::FromDays(2);
} }
void SetUp() override { void SetUp() override {
prefs_.SetString(kAcceptLanguagesPref, std::string()); prefs_.SetString(language::prefs::kAcceptLanguages, std::string());
#if BUILDFLAG(IS_CHROMEOS_ASH) #if BUILDFLAG(IS_CHROMEOS_ASH)
prefs_.SetString(kPreferredLanguagesPref, std::string()); prefs_.SetString(language::prefs::kPreferredLanguages, std::string());
#endif #endif
prefs_.registry()->RegisterBooleanPref( prefs_.registry()->RegisterBooleanPref(
prefs::kOfferTranslateEnabled, true, prefs::kOfferTranslateEnabled, true,
...@@ -96,34 +87,10 @@ class TranslatePrefsTest : public testing::Test { ...@@ -96,34 +87,10 @@ class TranslatePrefsTest : public testing::Test {
return update.GetOldestDenialTime(); return update.GetOldestDenialTime();
} }
// Checks that the provided strings are equivalent to the language prefs.
// Chrome OS uses a different pref, so we need to handle it separately.
void ExpectLanguagePrefs(const std::string& expected,
const std::string& expected_chromeos) const {
if (expected.empty()) {
EXPECT_TRUE(prefs_.GetString(kAcceptLanguagesPref).empty());
} else {
EXPECT_EQ(expected, prefs_.GetString(kAcceptLanguagesPref));
}
#if BUILDFLAG(IS_CHROMEOS_ASH)
if (expected_chromeos.empty()) {
EXPECT_TRUE(prefs_.GetString(kPreferredLanguagesPref).empty());
} else {
EXPECT_EQ(expected_chromeos, prefs_.GetString(kPreferredLanguagesPref));
}
#endif
}
// Similar to function above: this one expects both ChromeOS and other
// platforms to have the same value of language prefs.
void ExpectLanguagePrefs(const std::string& expected) const {
ExpectLanguagePrefs(expected, expected);
}
void ExpectBlockedLanguageListContent( void ExpectBlockedLanguageListContent(
const std::vector<std::string>& list) const { const std::vector<std::string>& list) const {
const base::ListValue* const never_prompt_list = const base::ListValue* const never_prompt_list =
prefs_.GetList(kTranslateBlockedLanguagesPref); prefs_.GetList(language::prefs::kFluentLanguages);
ExpectEqualLanguageLists(*never_prompt_list, list); ExpectEqualLanguageLists(*never_prompt_list, list);
} }
...@@ -166,6 +133,8 @@ class TranslatePrefsTest : public testing::Test { ...@@ -166,6 +133,8 @@ class TranslatePrefsTest : public testing::Test {
sync_preferences::TestingPrefServiceSyncable prefs_; sync_preferences::TestingPrefServiceSyncable prefs_;
std::unique_ptr<translate::TranslatePrefs> translate_prefs_; std::unique_ptr<translate::TranslatePrefs> translate_prefs_;
std::unique_ptr<language::test::AcceptLanguagesTester>
accept_languages_tester_;
// Shared time constants. // Shared time constants.
base::Time now_; base::Time now_;
...@@ -292,34 +261,6 @@ TEST_F(TranslatePrefsTest, DenialTimeUpdate_SlidingWindow) { ...@@ -292,34 +261,6 @@ TEST_F(TranslatePrefsTest, DenialTimeUpdate_SlidingWindow) {
now_ - base::TimeDelta::FromMinutes(2)); now_ - base::TimeDelta::FromMinutes(2));
} }
TEST_F(TranslatePrefsTest, UpdateLanguageList) {
// Empty update.
std::vector<std::string> languages;
translate_prefs_->UpdateLanguageList(languages);
ExpectLanguagePrefs("");
// One language.
languages = {"en"};
translate_prefs_->UpdateLanguageList(languages);
ExpectLanguagePrefs("en");
// More than one language.
languages = {"en", "ja", "it"};
translate_prefs_->UpdateLanguageList(languages);
ExpectLanguagePrefs("en,ja,it");
// Locale-specific codes.
// The list is exanded by adding the base languagese.
languages = {"en-US", "ja", "en-CA", "fr-CA"};
translate_prefs_->UpdateLanguageList(languages);
ExpectLanguagePrefs("en-US,ja,en-CA,fr-CA");
// List already expanded.
languages = {"en-US", "en", "fr", "fr-CA"};
translate_prefs_->UpdateLanguageList(languages);
ExpectLanguagePrefs("en-US,en,fr,fr-CA");
}
// Test that GetLanguageInfoList() returns the correct list of languages based // Test that GetLanguageInfoList() returns the correct list of languages based
// on the given locale. // on the given locale.
TEST_F(TranslatePrefsTest, GetLanguageInfoListCorrectLocale) { TEST_F(TranslatePrefsTest, GetLanguageInfoListCorrectLocale) {
...@@ -487,42 +428,41 @@ TEST_F(TranslatePrefsTest, AddToLanguageList) { ...@@ -487,42 +428,41 @@ TEST_F(TranslatePrefsTest, AddToLanguageList) {
// Force blocked false, language not already in list. // Force blocked false, language not already in list.
languages = {"en"}; languages = {"en"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->ResetBlockedLanguagesToDefault(); translate_prefs_->ResetBlockedLanguagesToDefault();
translate_prefs_->AddToLanguageList("it-IT", /*force_blocked=*/false); translate_prefs_->AddToLanguageList("it-IT", /*force_blocked=*/false);
ExpectLanguagePrefs("en,it-IT"); accept_languages_tester_->ExpectLanguagePrefs("en,it-IT");
ExpectBlockedLanguageListContent({"en", "it"}); ExpectBlockedLanguageListContent({"en", "it"});
// Force blocked false, language from same family already in list. // Force blocked false, language from same family already in list.
languages = {"en", "es-AR"}; languages = {"en", "es-AR"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->ResetBlockedLanguagesToDefault(); translate_prefs_->ResetBlockedLanguagesToDefault();
translate_prefs_->AddToLanguageList("es-ES", /*force_blocked=*/false); translate_prefs_->AddToLanguageList("es-ES", /*force_blocked=*/false);
ExpectLanguagePrefs("en,es-AR,es-ES"); accept_languages_tester_->ExpectLanguagePrefs("en,es-AR,es-ES");
ExpectBlockedLanguageListContent({"en"}); ExpectBlockedLanguageListContent({"en"});
} }
TEST_F(TranslatePrefsTest, RemoveFromLanguageList) { TEST_F(TranslatePrefsTest, RemoveFromLanguageList) {
std::vector<std::string> languages; std::vector<std::string> languages;
// Unblock last language of a family. // Unblock last language of a family.
languages = {"en-US", "es-AR"}; languages = {"en-US", "es-AR"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->ResetBlockedLanguagesToDefault(); translate_prefs_->ResetBlockedLanguagesToDefault();
translate_prefs_->BlockLanguage("en-US"); translate_prefs_->BlockLanguage("en-US");
translate_prefs_->BlockLanguage("es-AR"); translate_prefs_->BlockLanguage("es-AR");
translate_prefs_->RemoveFromLanguageList("es-AR"); translate_prefs_->RemoveFromLanguageList("es-AR");
ExpectLanguagePrefs("en-US"); accept_languages_tester_->ExpectLanguagePrefs("en-US");
ExpectBlockedLanguageListContent({"en"}); ExpectBlockedLanguageListContent({"en"});
// Do not unblock if not the last language of a family. // Do not unblock if not the last language of a family.
languages = {"en-US", "es-AR", "es-ES"}; languages = {"en-US", "es-AR", "es-ES"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->ResetBlockedLanguagesToDefault(); translate_prefs_->ResetBlockedLanguagesToDefault();
translate_prefs_->BlockLanguage("en-US"); translate_prefs_->BlockLanguage("en-US");
translate_prefs_->BlockLanguage("es-AR"); translate_prefs_->BlockLanguage("es-AR");
translate_prefs_->RemoveFromLanguageList("es-AR"); translate_prefs_->RemoveFromLanguageList("es-AR");
ExpectLanguagePrefs("en-US,es-ES"); accept_languages_tester_->ExpectLanguagePrefs("en-US,es-ES");
ExpectBlockedLanguageListContent({"en", "es"}); ExpectBlockedLanguageListContent({"en", "es"});
} }
...@@ -532,12 +472,12 @@ TEST_F(TranslatePrefsTest, RemoveFromLanguageListRemovesRemainingUnsupported) { ...@@ -532,12 +472,12 @@ TEST_F(TranslatePrefsTest, RemoveFromLanguageListRemovesRemainingUnsupported) {
TranslateDownloadManager::GetInstance()->set_application_locale("en"); TranslateDownloadManager::GetInstance()->set_application_locale("en");
std::vector<std::string> languages; std::vector<std::string> languages;
languages = {"en", "en-US", "en-FOO"}; languages = {"en", "en-US", "en-FOO"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
ExpectLanguagePrefs("en,en-US,en-FOO"); accept_languages_tester_->ExpectLanguagePrefs("en,en-US,en-FOO");
translate_prefs_->RemoveFromLanguageList("en-US"); translate_prefs_->RemoveFromLanguageList("en-US");
ExpectLanguagePrefs("en,en-FOO"); accept_languages_tester_->ExpectLanguagePrefs("en,en-FOO");
translate_prefs_->RemoveFromLanguageList("en"); translate_prefs_->RemoveFromLanguageList("en");
ExpectLanguagePrefs(""); accept_languages_tester_->ExpectLanguagePrefs("");
} }
TEST_F(TranslatePrefsTest, RemoveFromLanguageListClearsRecentLanguage) { TEST_F(TranslatePrefsTest, RemoveFromLanguageListClearsRecentLanguage) {
...@@ -545,14 +485,14 @@ TEST_F(TranslatePrefsTest, RemoveFromLanguageListClearsRecentLanguage) { ...@@ -545,14 +485,14 @@ TEST_F(TranslatePrefsTest, RemoveFromLanguageListClearsRecentLanguage) {
// Unblock last language of a family. // Unblock last language of a family.
languages = {"en-US", "es-AR"}; languages = {"en-US", "es-AR"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->SetRecentTargetLanguage("en-US"); translate_prefs_->SetRecentTargetLanguage("en-US");
EXPECT_EQ("en-US", translate_prefs_->GetRecentTargetLanguage()); EXPECT_EQ("en-US", translate_prefs_->GetRecentTargetLanguage());
translate_prefs_->RemoveFromLanguageList("es-AR"); translate_prefs_->RemoveFromLanguageList("es-AR");
EXPECT_EQ("en-US", translate_prefs_->GetRecentTargetLanguage()); EXPECT_EQ("en-US", translate_prefs_->GetRecentTargetLanguage());
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
EXPECT_EQ("en-US", translate_prefs_->GetRecentTargetLanguage()); EXPECT_EQ("en-US", translate_prefs_->GetRecentTargetLanguage());
translate_prefs_->RemoveFromLanguageList("en-US"); translate_prefs_->RemoveFromLanguageList("en-US");
...@@ -569,80 +509,80 @@ TEST_F(TranslatePrefsTest, MoveLanguageToTheTop) { ...@@ -569,80 +509,80 @@ TEST_F(TranslatePrefsTest, MoveLanguageToTheTop) {
// Empty language list. // Empty language list.
languages = {}; languages = {};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en-US", TranslatePrefs::kTop, offset, translate_prefs_->RearrangeLanguage("en-US", TranslatePrefs::kTop, offset,
{"en-US"}); {"en-US"});
ExpectLanguagePrefs(""); accept_languages_tester_->ExpectLanguagePrefs("");
// Search for empty string. // Search for empty string.
languages = {"en"}; languages = {"en"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("", TranslatePrefs::kTop, offset, {"en"}); translate_prefs_->RearrangeLanguage("", TranslatePrefs::kTop, offset, {"en"});
ExpectLanguagePrefs("en"); accept_languages_tester_->ExpectLanguagePrefs("en");
// List of enabled languages is empty. // List of enabled languages is empty.
languages = {"en"}; languages = {"en"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kTop, offset, {}); translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kTop, offset, {});
ExpectLanguagePrefs("en"); accept_languages_tester_->ExpectLanguagePrefs("en");
// Everything empty. // Everything empty.
languages = {""}; languages = {""};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("", TranslatePrefs::kTop, offset, {}); translate_prefs_->RearrangeLanguage("", TranslatePrefs::kTop, offset, {});
ExpectLanguagePrefs(""); accept_languages_tester_->ExpectLanguagePrefs("");
// Only one element in the list. // Only one element in the list.
languages = {"en"}; languages = {"en"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kTop, offset, translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kTop, offset,
{"en-US"}); {"en-US"});
ExpectLanguagePrefs("en"); accept_languages_tester_->ExpectLanguagePrefs("en");
// Element is already at the top. // Element is already at the top.
languages = {"en", "fr"}; languages = {"en", "fr"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kTop, offset, translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kTop, offset,
{"en", "fr"}); {"en", "fr"});
ExpectLanguagePrefs("en,fr"); accept_languages_tester_->ExpectLanguagePrefs("en,fr");
// Below we test cases that result in a valid rearrangement of the list. // Below we test cases that result in a valid rearrangement of the list.
// The language is already at the top of the enabled languages, but not at the // The language is already at the top of the enabled languages, but not at the
// top of the list: we still need to push it to the top. // top of the list: we still need to push it to the top.
languages = {"en", "fr", "it", "es"}; languages = {"en", "fr", "it", "es"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("it", TranslatePrefs::kTop, offset, translate_prefs_->RearrangeLanguage("it", TranslatePrefs::kTop, offset,
{"it", "es"}); {"it", "es"});
ExpectLanguagePrefs("it,en,fr,es"); accept_languages_tester_->ExpectLanguagePrefs("it,en,fr,es");
// Swap two languages. // Swap two languages.
languages = {"en", "fr"}; languages = {"en", "fr"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kTop, offset, translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kTop, offset,
{"en", "fr"}); {"en", "fr"});
ExpectLanguagePrefs("fr,en"); accept_languages_tester_->ExpectLanguagePrefs("fr,en");
// Language in the middle. // Language in the middle.
languages = {"en", "fr", "it", "es"}; languages = {"en", "fr", "it", "es"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("it", TranslatePrefs::kTop, offset, translate_prefs_->RearrangeLanguage("it", TranslatePrefs::kTop, offset,
{"en", "fr", "it", "es"}); {"en", "fr", "it", "es"});
ExpectLanguagePrefs("it,en,fr,es"); accept_languages_tester_->ExpectLanguagePrefs("it,en,fr,es");
// Language at the bottom. // Language at the bottom.
languages = {"en", "fr", "it", "es"}; languages = {"en", "fr", "it", "es"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("es", TranslatePrefs::kTop, offset, translate_prefs_->RearrangeLanguage("es", TranslatePrefs::kTop, offset,
{"en", "fr", "it", "es"}); {"en", "fr", "it", "es"});
ExpectLanguagePrefs("es,en,fr,it"); accept_languages_tester_->ExpectLanguagePrefs("es,en,fr,it");
// Skip languages that are not enabled. // Skip languages that are not enabled.
languages = {"en", "fr", "it", "es", "zh"}; languages = {"en", "fr", "it", "es", "zh"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("zh", TranslatePrefs::kTop, offset, translate_prefs_->RearrangeLanguage("zh", TranslatePrefs::kTop, offset,
{"en", "fr", "zh"}); {"en", "fr", "zh"});
ExpectLanguagePrefs("zh,en,fr,it,es"); accept_languages_tester_->ExpectLanguagePrefs("zh,en,fr,it,es");
} }
TEST_F(TranslatePrefsTest, MoveLanguageUp) { TEST_F(TranslatePrefsTest, MoveLanguageUp) {
...@@ -655,48 +595,48 @@ TEST_F(TranslatePrefsTest, MoveLanguageUp) { ...@@ -655,48 +595,48 @@ TEST_F(TranslatePrefsTest, MoveLanguageUp) {
// Empty language list. // Empty language list.
languages = {}; languages = {};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en-US", TranslatePrefs::kUp, 1, translate_prefs_->RearrangeLanguage("en-US", TranslatePrefs::kUp, 1,
{"en-US"}); {"en-US"});
ExpectLanguagePrefs(""); accept_languages_tester_->ExpectLanguagePrefs("");
// Search for empty string. // Search for empty string.
languages = {"en"}; languages = {"en"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("", TranslatePrefs::kUp, 1, {"en"}); translate_prefs_->RearrangeLanguage("", TranslatePrefs::kUp, 1, {"en"});
ExpectLanguagePrefs("en"); accept_languages_tester_->ExpectLanguagePrefs("en");
// List of enabled languages is empty. // List of enabled languages is empty.
languages = {"en"}; languages = {"en"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kUp, 1, {}); translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kUp, 1, {});
ExpectLanguagePrefs("en"); accept_languages_tester_->ExpectLanguagePrefs("en");
// Everything empty. // Everything empty.
languages = {""}; languages = {""};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("", TranslatePrefs::kUp, 1, {}); translate_prefs_->RearrangeLanguage("", TranslatePrefs::kUp, 1, {});
ExpectLanguagePrefs(""); accept_languages_tester_->ExpectLanguagePrefs("");
// Only one element in the list. // Only one element in the list.
languages = {"en"}; languages = {"en"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kUp, 1, {"en"}); translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kUp, 1, {"en"});
ExpectLanguagePrefs("en"); accept_languages_tester_->ExpectLanguagePrefs("en");
// Element is already at the top. // Element is already at the top.
languages = {"en", "fr"}; languages = {"en", "fr"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kUp, 1, translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kUp, 1,
{"en", "fr"}); {"en", "fr"});
ExpectLanguagePrefs("en,fr"); accept_languages_tester_->ExpectLanguagePrefs("en,fr");
// The language is at the top of the enabled languages. // The language is at the top of the enabled languages.
languages = {"en", "fr", "it", "es"}; languages = {"en", "fr", "it", "es"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("it", TranslatePrefs::kUp, 1, translate_prefs_->RearrangeLanguage("it", TranslatePrefs::kUp, 1,
{"it", "es"}); {"it", "es"});
ExpectLanguagePrefs("it,en,fr,es"); accept_languages_tester_->ExpectLanguagePrefs("it,en,fr,es");
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Below we test cases that result in a valid rearrangement of the list. // Below we test cases that result in a valid rearrangement of the list.
...@@ -704,83 +644,83 @@ TEST_F(TranslatePrefsTest, MoveLanguageUp) { ...@@ -704,83 +644,83 @@ TEST_F(TranslatePrefsTest, MoveLanguageUp) {
// Swap two languages. // Swap two languages.
languages = {"en", "fr"}; languages = {"en", "fr"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kUp, 1, translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kUp, 1,
{"en", "fr"}); {"en", "fr"});
ExpectLanguagePrefs("fr,en"); accept_languages_tester_->ExpectLanguagePrefs("fr,en");
// Language in the middle. // Language in the middle.
languages = {"en", "fr", "it", "es"}; languages = {"en", "fr", "it", "es"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("it", TranslatePrefs::kUp, 1, translate_prefs_->RearrangeLanguage("it", TranslatePrefs::kUp, 1,
{"en", "fr", "it", "es"}); {"en", "fr", "it", "es"});
ExpectLanguagePrefs("en,it,fr,es"); accept_languages_tester_->ExpectLanguagePrefs("en,it,fr,es");
// Language at the bottom. // Language at the bottom.
languages = {"en", "fr", "it", "es"}; languages = {"en", "fr", "it", "es"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("es", TranslatePrefs::kUp, 1, translate_prefs_->RearrangeLanguage("es", TranslatePrefs::kUp, 1,
{"en", "fr", "it", "es"}); {"en", "fr", "it", "es"});
ExpectLanguagePrefs("en,fr,es,it"); accept_languages_tester_->ExpectLanguagePrefs("en,fr,es,it");
// Skip languages that are not enabled. // Skip languages that are not enabled.
languages = {"en", "fr", "it", "es", "zh"}; languages = {"en", "fr", "it", "es", "zh"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("zh", TranslatePrefs::kUp, 1, translate_prefs_->RearrangeLanguage("zh", TranslatePrefs::kUp, 1,
{"en", "fr", "zh"}); {"en", "fr", "zh"});
ExpectLanguagePrefs("en,zh,fr,it,es"); accept_languages_tester_->ExpectLanguagePrefs("en,zh,fr,it,es");
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Move by more than 1 position. // Move by more than 1 position.
// Move all the way to the top. // Move all the way to the top.
languages = {"en", "fr", "it", "es", "zh"}; languages = {"en", "fr", "it", "es", "zh"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("es", TranslatePrefs::kUp, 3, translate_prefs_->RearrangeLanguage("es", TranslatePrefs::kUp, 3,
{"en", "fr", "it", "es", "zh"}); {"en", "fr", "it", "es", "zh"});
ExpectLanguagePrefs("es,en,fr,it,zh"); accept_languages_tester_->ExpectLanguagePrefs("es,en,fr,it,zh");
// Move to the middle of the list. // Move to the middle of the list.
languages = {"en", "fr", "it", "es", "zh"}; languages = {"en", "fr", "it", "es", "zh"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("es", TranslatePrefs::kUp, 2, translate_prefs_->RearrangeLanguage("es", TranslatePrefs::kUp, 2,
{"en", "fr", "it", "es", "zh"}); {"en", "fr", "it", "es", "zh"});
ExpectLanguagePrefs("en,es,fr,it,zh"); accept_languages_tester_->ExpectLanguagePrefs("en,es,fr,it,zh");
// Move up the last language. // Move up the last language.
languages = {"en", "fr", "it", "es", "zh"}; languages = {"en", "fr", "it", "es", "zh"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("zh", TranslatePrefs::kUp, 3, translate_prefs_->RearrangeLanguage("zh", TranslatePrefs::kUp, 3,
{"en", "fr", "it", "es", "zh"}); {"en", "fr", "it", "es", "zh"});
ExpectLanguagePrefs("en,zh,fr,it,es"); accept_languages_tester_->ExpectLanguagePrefs("en,zh,fr,it,es");
// Skip languages that are not enabled. // Skip languages that are not enabled.
languages = {"en", "fr", "it", "es", "zh"}; languages = {"en", "fr", "it", "es", "zh"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("zh", TranslatePrefs::kUp, 2, translate_prefs_->RearrangeLanguage("zh", TranslatePrefs::kUp, 2,
{"en", "fr", "es", "zh"}); {"en", "fr", "es", "zh"});
ExpectLanguagePrefs("en,zh,fr,it,es"); accept_languages_tester_->ExpectLanguagePrefs("en,zh,fr,it,es");
// Skip languages that are not enabled. // Skip languages that are not enabled.
languages = {"en", "fr", "it", "es", "zh"}; languages = {"en", "fr", "it", "es", "zh"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("zh", TranslatePrefs::kUp, 2, translate_prefs_->RearrangeLanguage("zh", TranslatePrefs::kUp, 2,
{"en", "fr", "it", "zh"}); {"en", "fr", "it", "zh"});
ExpectLanguagePrefs("en,zh,fr,it,es"); accept_languages_tester_->ExpectLanguagePrefs("en,zh,fr,it,es");
// Skip languages that are not enabled. // Skip languages that are not enabled.
languages = {"en", "fr", "it", "es", "zh", "de", "pt"}; languages = {"en", "fr", "it", "es", "zh", "de", "pt"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("de", TranslatePrefs::kUp, 3, translate_prefs_->RearrangeLanguage("de", TranslatePrefs::kUp, 3,
{"it", "es", "zh", "de", "pt"}); {"it", "es", "zh", "de", "pt"});
ExpectLanguagePrefs("de,en,fr,it,es,zh,pt"); accept_languages_tester_->ExpectLanguagePrefs("de,en,fr,it,es,zh,pt");
// If offset is too large, we effectively move to the top. // If offset is too large, we effectively move to the top.
languages = {"en", "fr", "it", "es", "zh"}; languages = {"en", "fr", "it", "es", "zh"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("es", TranslatePrefs::kUp, 7, translate_prefs_->RearrangeLanguage("es", TranslatePrefs::kUp, 7,
{"en", "fr", "it", "es", "zh"}); {"en", "fr", "it", "es", "zh"});
ExpectLanguagePrefs("es,en,fr,it,zh"); accept_languages_tester_->ExpectLanguagePrefs("es,en,fr,it,zh");
} }
TEST_F(TranslatePrefsTest, MoveLanguageDown) { TEST_F(TranslatePrefsTest, MoveLanguageDown) {
...@@ -793,49 +733,49 @@ TEST_F(TranslatePrefsTest, MoveLanguageDown) { ...@@ -793,49 +733,49 @@ TEST_F(TranslatePrefsTest, MoveLanguageDown) {
// Empty language list. // Empty language list.
languages = {}; languages = {};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en-US", TranslatePrefs::kDown, 1, translate_prefs_->RearrangeLanguage("en-US", TranslatePrefs::kDown, 1,
{"en-US"}); {"en-US"});
ExpectLanguagePrefs(""); accept_languages_tester_->ExpectLanguagePrefs("");
// Search for empty string. // Search for empty string.
languages = {"en"}; languages = {"en"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("", TranslatePrefs::kDown, 1, {"en"}); translate_prefs_->RearrangeLanguage("", TranslatePrefs::kDown, 1, {"en"});
ExpectLanguagePrefs("en"); accept_languages_tester_->ExpectLanguagePrefs("en");
// List of enabled languages is empty. // List of enabled languages is empty.
languages = {"en"}; languages = {"en"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 1, {}); translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 1, {});
ExpectLanguagePrefs("en"); accept_languages_tester_->ExpectLanguagePrefs("en");
// Everything empty. // Everything empty.
languages = {""}; languages = {""};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("", TranslatePrefs::kDown, 1, {}); translate_prefs_->RearrangeLanguage("", TranslatePrefs::kDown, 1, {});
ExpectLanguagePrefs(""); accept_languages_tester_->ExpectLanguagePrefs("");
// Only one element in the list. // Only one element in the list.
languages = {"en"}; languages = {"en"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 1, {"en"}); translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 1, {"en"});
ExpectLanguagePrefs("en"); accept_languages_tester_->ExpectLanguagePrefs("en");
// Element is already at the bottom. // Element is already at the bottom.
languages = {"en", "fr"}; languages = {"en", "fr"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kDown, 1, translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kDown, 1,
{"en", "fr"}); {"en", "fr"});
ExpectLanguagePrefs("en,fr"); accept_languages_tester_->ExpectLanguagePrefs("en,fr");
// The language is at the bottom of the enabled languages: we move it to the // The language is at the bottom of the enabled languages: we move it to the
// very bottom of the list. // very bottom of the list.
languages = {"en", "fr", "it", "es"}; languages = {"en", "fr", "it", "es"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("it", TranslatePrefs::kDown, 1, translate_prefs_->RearrangeLanguage("it", TranslatePrefs::kDown, 1,
{"fr", "it"}); {"fr", "it"});
ExpectLanguagePrefs("en,fr,es,it"); accept_languages_tester_->ExpectLanguagePrefs("en,fr,es,it");
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Below we test cases that result in a valid rearrangement of the list. // Below we test cases that result in a valid rearrangement of the list.
...@@ -843,83 +783,83 @@ TEST_F(TranslatePrefsTest, MoveLanguageDown) { ...@@ -843,83 +783,83 @@ TEST_F(TranslatePrefsTest, MoveLanguageDown) {
// Swap two languages. // Swap two languages.
languages = {"en", "fr"}; languages = {"en", "fr"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 1, translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 1,
{"en", "fr"}); {"en", "fr"});
ExpectLanguagePrefs("fr,en"); accept_languages_tester_->ExpectLanguagePrefs("fr,en");
// Language in the middle. // Language in the middle.
languages = {"en", "fr", "it", "es"}; languages = {"en", "fr", "it", "es"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kDown, 1, translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kDown, 1,
{"en", "fr", "it", "es"}); {"en", "fr", "it", "es"});
ExpectLanguagePrefs("en,it,fr,es"); accept_languages_tester_->ExpectLanguagePrefs("en,it,fr,es");
// Language at the top. // Language at the top.
languages = {"en", "fr", "it", "es"}; languages = {"en", "fr", "it", "es"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 1, translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 1,
{"en", "fr", "it", "es"}); {"en", "fr", "it", "es"});
ExpectLanguagePrefs("fr,en,it,es"); accept_languages_tester_->ExpectLanguagePrefs("fr,en,it,es");
// Skip languages that are not enabled. // Skip languages that are not enabled.
languages = {"en", "fr", "it", "es", "zh"}; languages = {"en", "fr", "it", "es", "zh"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 1, translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 1,
{"en", "es", "zh"}); {"en", "es", "zh"});
ExpectLanguagePrefs("fr,it,es,en,zh"); accept_languages_tester_->ExpectLanguagePrefs("fr,it,es,en,zh");
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Move by more than 1 position. // Move by more than 1 position.
// Move all the way to the bottom. // Move all the way to the bottom.
languages = {"en", "fr", "it", "es", "zh"}; languages = {"en", "fr", "it", "es", "zh"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kDown, 3, translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kDown, 3,
{"en", "fr", "it", "es", "zh"}); {"en", "fr", "it", "es", "zh"});
ExpectLanguagePrefs("en,it,es,zh,fr"); accept_languages_tester_->ExpectLanguagePrefs("en,it,es,zh,fr");
// Move to the middle of the list. // Move to the middle of the list.
languages = {"en", "fr", "it", "es", "zh"}; languages = {"en", "fr", "it", "es", "zh"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kDown, 2, translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kDown, 2,
{"en", "fr", "it", "es", "zh"}); {"en", "fr", "it", "es", "zh"});
ExpectLanguagePrefs("en,it,es,fr,zh"); accept_languages_tester_->ExpectLanguagePrefs("en,it,es,fr,zh");
// Move down the first language. // Move down the first language.
languages = {"en", "fr", "it", "es", "zh"}; languages = {"en", "fr", "it", "es", "zh"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 3, translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 3,
{"en", "fr", "it", "es", "zh"}); {"en", "fr", "it", "es", "zh"});
ExpectLanguagePrefs("fr,it,es,en,zh"); accept_languages_tester_->ExpectLanguagePrefs("fr,it,es,en,zh");
// Skip languages that are not enabled. // Skip languages that are not enabled.
languages = {"en", "fr", "it", "es", "zh"}; languages = {"en", "fr", "it", "es", "zh"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 2, translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 2,
{"en", "fr", "es", "zh"}); {"en", "fr", "es", "zh"});
ExpectLanguagePrefs("fr,it,es,en,zh"); accept_languages_tester_->ExpectLanguagePrefs("fr,it,es,en,zh");
// Skip languages that are not enabled. // Skip languages that are not enabled.
languages = {"en", "fr", "it", "es", "zh"}; languages = {"en", "fr", "it", "es", "zh"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 2, translate_prefs_->RearrangeLanguage("en", TranslatePrefs::kDown, 2,
{"en", "it", "es", "zh"}); {"en", "it", "es", "zh"});
ExpectLanguagePrefs("fr,it,es,en,zh"); accept_languages_tester_->ExpectLanguagePrefs("fr,it,es,en,zh");
// Skip languages that are not enabled. // Skip languages that are not enabled.
languages = {"en", "fr", "it", "es", "zh", "de", "pt"}; languages = {"en", "fr", "it", "es", "zh", "de", "pt"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kDown, 3, translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kDown, 3,
{"en", "fr", "it", "es", "zh"}); {"en", "fr", "it", "es", "zh"});
ExpectLanguagePrefs("en,it,es,zh,fr,de,pt"); accept_languages_tester_->ExpectLanguagePrefs("en,it,es,zh,fr,de,pt");
// If offset is too large, we effectively move to the bottom. // If offset is too large, we effectively move to the bottom.
languages = {"en", "fr", "it", "es", "zh"}; languages = {"en", "fr", "it", "es", "zh"};
translate_prefs_->UpdateLanguageList(languages); accept_languages_tester_->SetLanguagePrefs(languages);
translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kDown, 6, translate_prefs_->RearrangeLanguage("fr", TranslatePrefs::kDown, 6,
{"en", "fr", "it", "es", "zh"}); {"en", "fr", "it", "es", "zh"});
ExpectLanguagePrefs("en,it,es,zh,fr"); accept_languages_tester_->ExpectLanguagePrefs("en,it,es,zh,fr");
} }
TEST_F(TranslatePrefsTest, SiteNeverPromptList) { TEST_F(TranslatePrefsTest, SiteNeverPromptList) {
...@@ -958,13 +898,13 @@ TEST_F(TranslatePrefsTest, DefaultBlockedLanguages) { ...@@ -958,13 +898,13 @@ TEST_F(TranslatePrefsTest, DefaultBlockedLanguages) {
} }
TEST_F(TranslatePrefsTest, CanTranslateLanguage) { TEST_F(TranslatePrefsTest, CanTranslateLanguage) {
prefs_.SetString(kAcceptLanguagesPref, "en"); prefs_.SetString(language::prefs::kAcceptLanguages, "en");
TranslateDownloadManager::GetInstance()->set_application_locale("en"); TranslateDownloadManager::GetInstance()->set_application_locale("en");
translate_prefs_->ResetToDefaults(); translate_prefs_->ResetToDefaults();
TranslateAcceptLanguages translate_accept_languages(&prefs_, TranslateAcceptLanguages translate_accept_languages(
kAcceptLanguagesPref); &prefs_, language::prefs::kAcceptLanguages);
// Unblocked language. // Unblocked language.
EXPECT_TRUE(translate_prefs_->CanTranslateLanguage( EXPECT_TRUE(translate_prefs_->CanTranslateLanguage(
...@@ -991,7 +931,7 @@ TEST_F(TranslatePrefsTest, CanTranslateLanguage) { ...@@ -991,7 +931,7 @@ TEST_F(TranslatePrefsTest, CanTranslateLanguage) {
} }
TEST_F(TranslatePrefsTest, ForceTriggerOnEnglishPagesCount) { TEST_F(TranslatePrefsTest, ForceTriggerOnEnglishPagesCount) {
prefs_.SetInteger(kForceTriggerTranslateCountPref, prefs_.SetInteger(TranslatePrefs::kPrefForceTriggerTranslateCount,
std::numeric_limits<int>::max() - 1); std::numeric_limits<int>::max() - 1);
EXPECT_EQ(std::numeric_limits<int>::max() - 1, EXPECT_EQ(std::numeric_limits<int>::max() - 1,
translate_prefs_->GetForceTriggerOnEnglishPagesCount()); translate_prefs_->GetForceTriggerOnEnglishPagesCount());
......
...@@ -82,8 +82,7 @@ ChromeIOSTranslateClient::~ChromeIOSTranslateClient() { ...@@ -82,8 +82,7 @@ ChromeIOSTranslateClient::~ChromeIOSTranslateClient() {
std::unique_ptr<translate::TranslatePrefs> std::unique_ptr<translate::TranslatePrefs>
ChromeIOSTranslateClient::CreateTranslatePrefs(PrefService* prefs) { ChromeIOSTranslateClient::CreateTranslatePrefs(PrefService* prefs) {
return std::unique_ptr<translate::TranslatePrefs>( return std::unique_ptr<translate::TranslatePrefs>(
new translate::TranslatePrefs(prefs, language::prefs::kAcceptLanguages, new translate::TranslatePrefs(prefs));
nullptr));
} }
translate::TranslateManager* ChromeIOSTranslateClient::GetTranslateManager() { translate::TranslateManager* ChromeIOSTranslateClient::GetTranslateManager() {
......
...@@ -38,9 +38,7 @@ ...@@ -38,9 +38,7 @@
} }
- (void)resetTranslationSettings { - (void)resetTranslationSettings {
translate::TranslatePrefs translatePrefs( translate::TranslatePrefs translatePrefs(_prefService);
_prefService, language::prefs::kAcceptLanguages,
/*preferred_languages_pref=*/nullptr);
translatePrefs.ResetToDefaults(); translatePrefs.ResetToDefaults();
} }
......
...@@ -112,9 +112,7 @@ PrefService* WebViewTranslateClient::GetPrefs() { ...@@ -112,9 +112,7 @@ PrefService* WebViewTranslateClient::GetPrefs() {
std::unique_ptr<translate::TranslatePrefs> std::unique_ptr<translate::TranslatePrefs>
WebViewTranslateClient::GetTranslatePrefs() { WebViewTranslateClient::GetTranslatePrefs() {
return std::make_unique<translate::TranslatePrefs>( return std::make_unique<translate::TranslatePrefs>(GetPrefs());
GetPrefs(), language::prefs::kAcceptLanguages,
/*preferred_languages_pref=*/nullptr);
} }
translate::TranslateAcceptLanguages* translate::TranslateAcceptLanguages*
......
...@@ -34,8 +34,7 @@ namespace { ...@@ -34,8 +34,7 @@ namespace {
std::unique_ptr<translate::TranslatePrefs> CreateTranslatePrefs( std::unique_ptr<translate::TranslatePrefs> CreateTranslatePrefs(
PrefService* prefs) { PrefService* prefs) {
std::unique_ptr<translate::TranslatePrefs> translate_prefs( std::unique_ptr<translate::TranslatePrefs> translate_prefs(
new translate::TranslatePrefs(prefs, language::prefs::kAcceptLanguages, new translate::TranslatePrefs(prefs));
/*preferred_languages_pref=*/nullptr));
// We need to obtain the country here, since it comes from VariationsService. // We need to obtain the country here, since it comes from VariationsService.
// components/ does not have access to that. // components/ does not have access to that.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment