// 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_BUILDER_H_ #define CHROME_UPDATER_EXTERNAL_CONSTANTS_BUILDER_H_ #include <optional> #include <string> #include <vector> #include "base/files/file_path.h" #include "base/values.h" namespace base { class TimeDelta; } namespace crx_file { enum class VerifierFormat; } namespace updater { // ExternalConstantsBuilder uses the Builder design pattern to write a set of // overrides for default constant values to the file loaded by // ExternalConstantsOverrider. It is not thread-safe. // // When writing an overrides file, unset values (either because they were never // set or because they were cleared) are not included in the file, so the // "real" value would be used instead. An ExternalConstantsBuilder with // no values set would write an empty JSON object, which is a valid override // file that overrides nothing. // // If an ExternalConstantsBuilder is destroyed with no calls to Overwrite(), // it logs an error. class ExternalConstantsBuilder { … }; } // namespace updater #endif // CHROME_UPDATER_EXTERNAL_CONSTANTS_BUILDER_H_