1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
// Copyright 2013 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_APP_CHROME_CRASH_REPORTER_CLIENT_H_
#define CHROME_APP_CHROME_CRASH_REPORTER_CLIENT_H_
#include "build/build_config.h"
#if !BUILDFLAG(IS_WIN)
#include <memory>
#include "base/no_destructor.h"
#include "components/crash/core/app/crash_reporter_client.h"
class ChromeCrashReporterClient : public crash_reporter::CrashReporterClient {
public:
static void Create();
ChromeCrashReporterClient(const ChromeCrashReporterClient&) = delete;
ChromeCrashReporterClient& operator=(const ChromeCrashReporterClient&) =
delete;
#if BUILDFLAG(IS_CHROMEOS)
// If true, processes of this type should pass crash-loop-before down to the
// crash reporter and to their children (if the children's type is a process
// type that wants crash-loop-before).
static bool ShouldPassCrashLoopBefore(const std::string& process_type);
#endif
// crash_reporter::CrashReporterClient implementation.
#if !BUILDFLAG(IS_MAC) && !BUILDFLAG(IS_ANDROID)
void SetCrashReporterClientIdFromGUID(
const std::string& client_guid) override;
#endif
#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
base::FilePath GetReporterLogFilename() override;
bool GetShouldDumpLargerDumps() override;
#endif
bool GetCrashDumpLocation(base::FilePath* crash_dir) override;
void GetProductInfo(ProductInfo* product_info) override;
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
bool GetCrashMetricsLocation(base::FilePath* metrics_dir) override;
#endif
bool IsRunningUnattended() override;
bool GetCollectStatsConsent() override;
#if BUILDFLAG(IS_MAC)
bool ReportingIsEnforcedByPolicy(bool* breakpad_enabled) override;
#endif
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
bool ShouldMonitorCrashHandlerExpensively() override;
#endif
bool EnableBreakpadForProcess(const std::string& process_type) override;
private:
friend class base::NoDestructor<ChromeCrashReporterClient>;
ChromeCrashReporterClient();
~ChromeCrashReporterClient() override;
};
#endif // BUILDFLAG(IS_WIN)
#endif // CHROME_APP_CHROME_CRASH_REPORTER_CLIENT_H_
|