blob: 4764c29988984619792e262ec7820414fc3043a2 [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_UPDATER_EXTERNAL_CONSTANTS_OVERRIDE_H_
#define CHROME_UPDATER_EXTERNAL_CONSTANTS_OVERRIDE_H_
#include <memory>
#include <optional>
#include <string>
#include <vector>
#include "base/containers/flat_map.h"
#include "base/memory/scoped_refptr.h"
#include "base/time/time.h"
#include "base/values.h"
#include "chrome/updater/external_constants.h"
#include "chrome/updater/updater_scope.h"
class GURL;
namespace base {
class FilePath;
class TimeDelta;
class Value;
} // namespace base
namespace crx_file {
enum class VerifierFormat;
}
namespace updater {
std::optional<base::FilePath> GetOverrideFilePath(UpdaterScope scope);
class ExternalConstantsOverrider : public ExternalConstants {
public:
ExternalConstantsOverrider(base::Value::Dict override_values,
scoped_refptr<ExternalConstants> next_provider);
// Loads a dictionary from overrides.json in the local application data
// directory to construct a ExternalConstantsOverrider.
//
// Returns nullptr (and logs appropriate errors) if the file cannot be found
// or cannot be parsed.
static scoped_refptr<ExternalConstantsOverrider> FromDefaultJSONFile(
scoped_refptr<ExternalConstants> next_provider);
// Overrides of ExternalConstants:
std::vector<GURL> UpdateURL() const override;
GURL CrashUploadURL() const override;
GURL AppLogoURL() const override;
GURL EventLoggingURL() const override;
bool UseCUP() const override;
base::TimeDelta InitialDelay() const override;
base::TimeDelta ServerKeepAliveTime() const override;
crx_file::VerifierFormat CrxVerifierFormat() const override;
base::TimeDelta MinimumEventLoggingCooldown() const override;
std::optional<std::string> GetEventLoggingPermissionProvider() const override;
base::Value::Dict DictPolicies() const override;
base::TimeDelta OverinstallTimeout() const override;
base::TimeDelta IdleCheckPeriod() const override;
std::optional<bool> IsMachineManaged() const override;
base::TimeDelta CecaConnectionTimeout() const override;
private:
const base::Value::Dict override_values_;
~ExternalConstantsOverrider() override;
};
} // namespace updater
#endif // CHROME_UPDATER_EXTERNAL_CONSTANTS_OVERRIDE_H_