#include "chrome/browser/profile_resetter/resettable_settings_snapshot.h"
#include <memory>
#include <utility>
#include "base/functional/bind.h"
#include "base/hash/md5.h"
#include "base/stl_util.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/synchronization/atomic_flag.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/task_traits.h"
#include "base/task/thread_pool.h"
#include "base/uuid.h"
#include "base/values.h"
#include "build/build_config.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/profile_resetter/profile_reset_report.pb.h"
#include "chrome/browser/profile_resetter/reset_report_uploader.h"
#include "chrome/browser/profile_resetter/reset_report_uploader_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/common/channel_info.h"
#include "chrome/common/pref_names.h"
#include "chrome/grit/branded_strings.h"
#include "chrome/grit/generated_resources.h"
#include "components/embedder_support/user_agent_utils.h"
#include "components/prefs/pref_service.h"
#include "components/search_engines/template_url_service.h"
#include "components/strings/grit/components_strings.h"
#include "components/version_info/version_info.h"
#include "content/public/browser/browser_thread.h"
#include "extensions/browser/extension_registry.h"
#include "ui/base/l10n/l10n_util.h"
namespace {
template <class StringType>
void AddPair(base::Value::List& list,
const std::u16string& key,
const StringType& value) { … }
}
ResettableSettingsSnapshot::ResettableSettingsSnapshot(Profile* profile)
: … { … }
ResettableSettingsSnapshot::~ResettableSettingsSnapshot() { … }
void ResettableSettingsSnapshot::Subtract(
const ResettableSettingsSnapshot& snapshot) { … }
int ResettableSettingsSnapshot::FindDifferentFields(
const ResettableSettingsSnapshot& snapshot) const { … }
void ResettableSettingsSnapshot::RequestShortcuts(base::OnceClosure callback) { … }
void ResettableSettingsSnapshot::SetShortcutsAndReport(
base::OnceClosure callback,
const std::vector<ShortcutCommand>& shortcuts) { … }
std::unique_ptr<reset_report::ChromeResetReport> SerializeSettingsReportToProto(
const ResettableSettingsSnapshot& snapshot,
int field_mask) { … }
void SendSettingsFeedbackProto(const reset_report::ChromeResetReport& report,
Profile* profile) { … }
base::Value::List GetReadableFeedbackForSnapshot(
Profile* profile,
const ResettableSettingsSnapshot& snapshot) { … }