chromium/chrome/enterprise_companion/crash_client.h

// Copyright 2024 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_ENTERPRISE_COMPANION_CRASH_CLIENT_H_
#define CHROME_ENTERPRISE_COMPANION_CRASH_CLIENT_H_

#include <optional>

#include "base/files/file_path.h"

namespace enterprise_companion {

// Returns the default crashpad database file path, or nullopt if it could not
// be resolved. The database is placed within the install directory.
std::optional<base::FilePath> GetDefaultCrashDatabasePath();

// Initializes collection and upload of crash reports.
bool InitializeCrashReporting(
    std::optional<base::FilePath> crash_database_path =
        GetDefaultCrashDatabasePath());

// Runs the crash reporter message loop within the current process. On return,
// the current process should exit.
int CrashReporterMain();

}  // namespace enterprise_companion

#endif  // CHROME_ENTERPRISE_COMPANION_CRASH_CLIENT_H_