blob: 3bd3911c2bd220f6aaf40f079fc2b2d17d4fe8d0 [file] [log] [blame]
// Copyright 2014 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/update_client/test_configurator.h"
#include <utility>
#include "base/threading/thread_task_runner_handle.h"
#include "base/version.h"
#include "components/prefs/pref_service.h"
#if !defined(STARBOARD)
#include "components/services/patch/in_process_file_patcher.h"
#include "components/services/unzip/in_process_unzipper.h"
#include "components/update_client/net/network_chromium.h"
#include "components/update_client/patch/patch_impl.h"
#include "components/update_client/unzip/unzip_impl.h"
#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h"
#else
#include "components/update_client/patch/patch_impl_cobalt.h"
#include "components/update_client/unzip/unzip_impl_cobalt.h"
#endif
#include "components/update_client/activity_data_service.h"
#include "components/update_client/patcher.h"
#include "components/update_client/protocol_handler.h"
#include "components/update_client/unzipper.h"
#include "url/gurl.h"
namespace update_client {
namespace {
std::vector<GURL> MakeDefaultUrls() {
std::vector<GURL> urls;
urls.push_back(GURL(POST_INTERCEPT_SCHEME
"://" POST_INTERCEPT_HOSTNAME POST_INTERCEPT_PATH));
return urls;
}
} // namespace
#if !defined(STARBOARD)
TestConfigurator::TestConfigurator()
: brand_("TEST"),
initial_time_(0),
ondemand_time_(0),
enabled_cup_signing_(false),
enabled_component_updates_(true),
unzip_factory_(base::MakeRefCounted<update_client::UnzipChromiumFactory>(
base::BindRepeating(&unzip::LaunchInProcessUnzipper))),
patch_factory_(base::MakeRefCounted<update_client::PatchChromiumFactory>(
base::BindRepeating(&patch::LaunchInProcessFilePatcher))),
test_shared_loader_factory_(
base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>(
&test_url_loader_factory_)),
network_fetcher_factory_(
base::MakeRefCounted<NetworkFetcherChromiumFactory>(
test_shared_loader_factory_)) {}
#else
TestConfigurator::TestConfigurator()
: brand_("TEST"),
initial_time_(0),
ondemand_time_(0),
enabled_cup_signing_(false),
enabled_component_updates_(true),
unzip_factory_(base::MakeRefCounted<update_client::UnzipCobaltFactory>()),
patch_factory_(
base::MakeRefCounted<update_client::PatchCobaltFactory>()) {
cobalt::network::NetworkModule::Options network_options;
network_module_.reset(new cobalt::network::NetworkModule(network_options));
network_fetcher_factory_ =
base::MakeRefCounted<NetworkFetcherCobaltFactory>(network_module_.get());
}
#endif
TestConfigurator::~TestConfigurator() {
#if defined(STARBOARD)
network_module_.reset();
#endif
}
int TestConfigurator::InitialDelay() const {
return initial_time_;
}
int TestConfigurator::NextCheckDelay() const {
return 1;
}
int TestConfigurator::OnDemandDelay() const {
return ondemand_time_;
}
int TestConfigurator::UpdateDelay() const {
return 1;
}
std::vector<GURL> TestConfigurator::UpdateUrl() const {
if (!update_check_url_.is_empty())
return std::vector<GURL>(1, update_check_url_);
return MakeDefaultUrls();
}
std::vector<GURL> TestConfigurator::PingUrl() const {
if (!ping_url_.is_empty())
return std::vector<GURL>(1, ping_url_);
return UpdateUrl();
}
std::string TestConfigurator::GetProdId() const {
return "fake_prodid";
}
base::Version TestConfigurator::GetBrowserVersion() const {
// Needs to be larger than the required version in tested component manifests.
return base::Version("30.0");
}
std::string TestConfigurator::GetChannel() const {
return "fake_channel_string";
}
std::string TestConfigurator::GetBrand() const {
return brand_;
}
std::string TestConfigurator::GetLang() const {
return "fake_lang";
}
std::string TestConfigurator::GetOSLongName() const {
return "Fake Operating System";
}
base::flat_map<std::string, std::string> TestConfigurator::ExtraRequestParams()
const {
return {{"extra", "foo"}};
}
std::string TestConfigurator::GetDownloadPreference() const {
return download_preference_;
}
scoped_refptr<NetworkFetcherFactory>
TestConfigurator::GetNetworkFetcherFactory() {
return network_fetcher_factory_;
}
scoped_refptr<UnzipperFactory> TestConfigurator::GetUnzipperFactory() {
return unzip_factory_;
}
scoped_refptr<PatcherFactory> TestConfigurator::GetPatcherFactory() {
return patch_factory_;
}
bool TestConfigurator::EnabledDeltas() const {
return true;
}
bool TestConfigurator::EnabledComponentUpdates() const {
return enabled_component_updates_;
}
bool TestConfigurator::EnabledBackgroundDownloader() const {
return false;
}
bool TestConfigurator::EnabledCupSigning() const {
return enabled_cup_signing_;
}
void TestConfigurator::SetBrand(const std::string& brand) {
brand_ = brand;
}
void TestConfigurator::SetOnDemandTime(int seconds) {
ondemand_time_ = seconds;
}
void TestConfigurator::SetInitialDelay(int seconds) {
initial_time_ = seconds;
}
void TestConfigurator::SetEnabledCupSigning(bool enabled_cup_signing) {
enabled_cup_signing_ = enabled_cup_signing;
}
void TestConfigurator::SetEnabledComponentUpdates(
bool enabled_component_updates) {
enabled_component_updates_ = enabled_component_updates;
}
void TestConfigurator::SetDownloadPreference(
const std::string& download_preference) {
download_preference_ = download_preference;
}
void TestConfigurator::SetUpdateCheckUrl(const GURL& url) {
update_check_url_ = url;
}
void TestConfigurator::SetPingUrl(const GURL& url) {
ping_url_ = url;
}
void TestConfigurator::SetAppGuid(const std::string& app_guid) {
app_guid_ = app_guid;
}
PrefService* TestConfigurator::GetPrefService() const {
return nullptr;
}
ActivityDataService* TestConfigurator::GetActivityDataService() const {
return nullptr;
}
bool TestConfigurator::IsPerUserInstall() const {
return true;
}
std::vector<uint8_t> TestConfigurator::GetRunActionKeyHash() const {
return std::vector<uint8_t>(std::begin(gjpm_hash), std::end(gjpm_hash));
}
std::string TestConfigurator::GetAppGuid() const {
return app_guid_;
}
std::unique_ptr<ProtocolHandlerFactory>
TestConfigurator::GetProtocolHandlerFactory() const {
return std::make_unique<ProtocolHandlerFactoryJSON>();
}
RecoveryCRXElevator TestConfigurator::GetRecoveryCRXElevator() const {
return {};
}
} // namespace update_client