#ifndef EXTENSIONS_BROWSER_UPDATER_EXTENSION_UPDATE_DATA_H_
#define EXTENSIONS_BROWSER_UPDATER_EXTENSION_UPDATE_DATA_H_
#include <map>
#include <optional>
#include <string>
#include "base/functional/callback_forward.h"
namespace base {
class Version;
}
namespace extensions {
struct ExtensionUpdateData;
struct ExtensionUpdateCheckParams;
using ExtensionUpdateDataMap = std::map<std::string, ExtensionUpdateData>;
using UpdateFoundCallback =
base::RepeatingCallback<void(const std::string&, const base::Version&)>;
struct ExtensionUpdateData {
ExtensionUpdateData();
ExtensionUpdateData(const ExtensionUpdateData& other);
~ExtensionUpdateData();
std::string install_source;
bool is_corrupt_reinstall{false};
std::optional<std::string> pending_version;
std::optional<std::string> pending_fingerprint;
};
struct ExtensionUpdateCheckParams {
enum UpdateCheckPriority {
BACKGROUND,
FOREGROUND,
};
ExtensionUpdateCheckParams();
ExtensionUpdateCheckParams(const ExtensionUpdateCheckParams& other);
~ExtensionUpdateCheckParams();
ExtensionUpdateDataMap update_info;
UpdateCheckPriority priority;
bool install_immediately;
};
}
#endif