[cr149] TranslateLanguageList with TranslateUrlFetcher arg

This change corrects several places to pass `TranslateUrlFetcher` into
`TranslateLanguageList`.

Chromium changes:
https://chromium.googlesource.com/chromium/src/+/6aef37c345ee6449713a213c04878417dd87d0c4

commit 6aef37c345ee6449713a213c04878417dd87d0c4
Author: Danilo Françoso Tedeschi <danft@google.com>
Date:   Wed Apr 8 06:26:11 2026 -0700

    Replace static DisableUpdate with dependency injection for TranslateLanguageList.

    This change removes the global static flag `update_is_disabled` from TranslateLanguageList and instead allows injecting a TranslateUrlFetcher instance. This improves testability by allowing mock fetchers to be used without relying on global state. TranslateDownloadManager now has a setter for its TranslateLanguageList.

    Change-Id: I739659aba52e95e6236e0b5d85fd9672b090c864
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7719220
    Reviewed-by: Basia Zimirska <basiaz@google.com>
    Commit-Queue: Danilo Françoso Tedeschi <danft@google.com>
    Cr-Commit-Position: refs/heads/main@{#1611437}
This commit is contained in:
Claudio DeSouza
2026-05-22 16:18:02 -04:00
committed by Max Karolinskiy
parent 01294c6062
commit 8070a2b7f7
2 changed files with 18 additions and 3 deletions
@@ -16,6 +16,7 @@ namespace translate {
class TranslateLanguageList : public TranslateLanguageList_ChromiumImpl {
public:
using TranslateLanguageList_ChromiumImpl::TranslateLanguageList_ChromiumImpl;
void SetResourceRequestsAllowed(bool allowed) override;
};
@@ -25,6 +25,7 @@
#include "components/translate/core/browser/translate_download_manager.h"
#include "components/translate/core/browser/translate_pref_names.h"
#include "components/translate/core/browser/translate_prefs.h"
#include "components/translate/core/browser/translate_url_fetcher.h"
#include "components/translate/core/common/translate_constants.h"
#include "components/variations/variations_associated_data.h"
#include "google_apis/google_api_keys.h"
@@ -77,6 +78,18 @@ class TestNetworkChangeNotifier {
std::unique_ptr<net::test::MockNetworkChangeNotifier> mock_notifier_;
};
class DummyTranslateUrlFetcher : public translate::TranslateUrlFetcher {
public:
DummyTranslateUrlFetcher() = default;
~DummyTranslateUrlFetcher() override = default;
bool Request(const GURL& url, Callback callback, bool is_incognito) override {
return true;
}
State state() const override { return IDLE; }
};
// A language model that just returns its instance variable.
class MockLanguageModel : public language::LanguageModel {
public:
@@ -119,10 +132,11 @@ class TranslateManagerTest : public ::testing::Test {
mock_language_model_({MockLanguageModel::LanguageDetails("en", 1.0)}) {}
void SetUp() override {
// Ensure we're not requesting a server-side translate language list.
TranslateLanguageList::DisableUpdate();
manager_->ResetForTesting();
// Ensure we're not requesting a server-side translate language list.
manager_->set_language_list(std::make_unique<TranslateLanguageList>(
std::make_unique<DummyTranslateUrlFetcher>()));
}
void TearDown() override {