#include "chrome/updater/crash_client.h"
#include <optional>
#include <vector>
#include "base/check.h"
#include "base/debug/dump_without_crashing.h"
#include "base/environment.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/logging.h"
#include "base/no_destructor.h"
#include "base/strings/string_util.h"
#include "build/build_config.h"
#include "chrome/updater/constants.h"
#include "chrome/updater/tag.h"
#include "chrome/updater/update_usage_stats_task.h"
#include "chrome/updater/updater_branding.h"
#include "chrome/updater/updater_scope.h"
#include "chrome/updater/util/util.h"
#include "third_party/crashpad/crashpad/client/crash_report_database.h"
#include "third_party/crashpad/crashpad/client/crashpad_client.h"
#include "third_party/crashpad/crashpad/client/prune_crash_reports.h"
#include "third_party/crashpad/crashpad/client/settings.h"
#include "third_party/crashpad/crashpad/client/simulate_crash.h"
#if BUILDFLAG(IS_WIN)
#include <windows.h>
#include "base/win/wrapped_window_proc.h"
namespace {
int __cdecl HandleWinProcException(EXCEPTION_POINTERS* exception_pointers) {
crashpad::CrashpadClient::DumpAndCrash(exception_pointers);
return EXCEPTION_CONTINUE_SEARCH;
}
}
#endif
namespace updater {
CrashClient::CrashClient() = default;
CrashClient::~CrashClient() = default;
CrashClient* CrashClient::GetInstance() { … }
bool CrashClient::SetUploadsEnabled(bool enabled) { … }
bool CrashClient::InitializeDatabaseOnly(UpdaterScope updater_scope) { … }
bool CrashClient::InitializeCrashReporting(UpdaterScope updater_scope) { … }
}