#include "components/update_client/persisted_data.h"
#include <memory>
#include <set>
#include <string>
#include <utility>
#include <vector>
#include "base/check.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/task/sequenced_task_runner.h"
#include "base/time/time.h"
#include "base/uuid.h"
#include "base/values.h"
#include "base/version.h"
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
#include "components/prefs/scoped_user_pref_update.h"
#include "components/update_client/activity_data_service.h"
#include "components/update_client/update_client_errors.h"
namespace update_client {
const char kPersistedDataPreference[] = …;
const char kLastUpdateCheckErrorPreference[] = …;
const char kLastUpdateCheckErrorCategoryPreference[] = …;
const char kLastUpdateCheckErrorExtraCode1Preference[] = …;
namespace {
const char kThrottleUpdatesUntilPreference[] = …;
class PersistedDataImpl : public PersistedData { … };
PersistedDataImpl::PersistedDataImpl(
PrefService* pref_service,
std::unique_ptr<ActivityDataService> activity_data_service)
: … { … }
PersistedDataImpl::~PersistedDataImpl() { … }
const base::Value::Dict* PersistedDataImpl::GetAppKey(
const std::string& id) const { … }
int PersistedDataImpl::GetInt(const std::string& id,
const std::string& key,
int fallback) const { … }
std::string PersistedDataImpl::GetString(const std::string& id,
const std::string& key) const { … }
int PersistedDataImpl::GetDateLastRollCall(const std::string& id) const { … }
int PersistedDataImpl::GetDateLastActive(const std::string& id) const { … }
std::string PersistedDataImpl::GetPingFreshness(const std::string& id) const { … }
int PersistedDataImpl::GetInstallDate(const std::string& id) const { … }
std::string PersistedDataImpl::GetCohort(const std::string& id) const { … }
std::string PersistedDataImpl::GetCohortName(const std::string& id) const { … }
std::string PersistedDataImpl::GetCohortHint(const std::string& id) const { … }
base::Value::Dict* PersistedDataImpl::GetOrCreateAppKey(
const std::string& id,
base::Value::Dict& root) { … }
void PersistedDataImpl::SetDateLastDataHelper(
const std::vector<std::string>& ids,
int datenum,
base::OnceClosure callback,
const std::set<std::string>& active_ids) { … }
void PersistedDataImpl::SetDateLastData(const std::vector<std::string>& ids,
int datenum,
base::OnceClosure callback) { … }
void PersistedDataImpl::SetDateLastActive(const std::string& id, int dla) { … }
void PersistedDataImpl::SetDateLastRollCall(const std::string& id, int dlrc) { … }
void PersistedDataImpl::SetInstallDate(const std::string& id,
int install_date) { … }
void PersistedDataImpl::SetString(const std::string& id,
const std::string& key,
const std::string& value) { … }
void PersistedDataImpl::SetCohort(const std::string& id,
const std::string& cohort) { … }
void PersistedDataImpl::SetCohortName(const std::string& id,
const std::string& cohort_name) { … }
void PersistedDataImpl::SetCohortHint(const std::string& id,
const std::string& cohort_hint) { … }
void PersistedDataImpl::GetActiveBits(
const std::vector<std::string>& ids,
base::OnceCallback<void(const std::set<std::string>&)> callback) const { … }
int PersistedDataImpl::GetDaysSinceLastRollCall(const std::string& id) const { … }
int PersistedDataImpl::GetDaysSinceLastActive(const std::string& id) const { … }
base::Version PersistedDataImpl::GetProductVersion(
const std::string& id) const { … }
void PersistedDataImpl::SetProductVersion(const std::string& id,
const base::Version& pv) { … }
base::Version PersistedDataImpl::GetMaxPreviousProductVersion(
const std::string& id) const { … }
void PersistedDataImpl::SetMaxPreviousProductVersion(
const std::string& id,
const base::Version& max_version) { … }
std::string PersistedDataImpl::GetFingerprint(const std::string& id) const { … }
void PersistedDataImpl::SetFingerprint(const std::string& id,
const std::string& fingerprint) { … }
base::Time PersistedDataImpl::GetThrottleUpdatesUntil() const { … }
void PersistedDataImpl::SetThrottleUpdatesUntil(const base::Time& time) { … }
void PersistedDataImpl::SetLastUpdateCheckError(const CategorizedError& error) { … }
}
std::unique_ptr<PersistedData> CreatePersistedData(
PrefService* pref_service,
std::unique_ptr<ActivityDataService> activity_data_service) { … }
void RegisterPersistedDataPrefs(PrefRegistrySimple* registry) { … }
}