electron/shell/app/electron_crash_reporter_client.h
electron-roller[bot] 43ed763f18
chore: bump chromium to 133.0.6846.0 (main) (#44665)
* chore: bump chromium in DEPS to 133.0.6836.0

* chore: bump chromium in DEPS to 133.0.6838.0

* chore: update patches

* 6006096: [Sync ESB] Integrate Chrome Toast UI

https://chromium-review.googlesource.com/c/chromium/src/+/6006096

* Confine enable_device_bound_sessions buildflag to //net

https://chromium-review.googlesource.com/c/chromium/src/+/6014679

* revert [api] Delete deprecated struct FastApiTypedArray

 https://chromium-review.googlesource.com/c/v8/v8/+/5982984
Also
https://chromium-review.googlesource.com/c/v8/v8/+/5979766/1

* fixup revert [api] Delete deprecated struct FastApiTypedArray

* Migrate remaining NOTREACHED()s in chrome/

https://chromium-review.googlesource.com/c/chromium/src/+/5998172

* [Reland][Extensions] Remove ExtensionHostDelegate::GetJavaScriptDialogManager()

https://chromium-review.googlesource.com/c/chromium/src/+/6020106

* Remove NOTREACHED_IN_MIGRATION()

https://chromium-review.googlesource.com/c/chromium/src/+/6021996

* Remove Lock screen apps [#8] : remove lock screen extension

https://chromium-review.googlesource.com/c/chromium/src/+/6005846

* Reland "Add CrashReporterClient::GetProductInfo(ProductInfo*)"

https://chromium-review.googlesource.com/c/chromium/src/+/6012631

* Ozone/Wayland: remove lacros specific window states

https://chromium-review.googlesource.com/c/chromium/src/+/6011215

* chore: bump chromium in DEPS to 133.0.6840.0

* chore: bump chromium in DEPS to 133.0.6841.0

* chore: bump chromium in DEPS to 133.0.6844.0

* implement virtual WebContents::CanUserEnterFullscreen

* OnSearchifyStateChange -> OnSearchifyStarted

* regen libc++ filenames

* chore: bump chromium in DEPS to 133.0.6846.0

* chore: update patches

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Samuel Maddock <smaddock@slack-corp.com>
2024-11-19 19:52:20 -08:00

89 lines
2.8 KiB
C++

// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ELECTRON_SHELL_APP_ELECTRON_CRASH_REPORTER_CLIENT_H_
#define ELECTRON_SHELL_APP_ELECTRON_CRASH_REPORTER_CLIENT_H_
#include <map>
#include <string>
#include "base/no_destructor.h"
#include "build/build_config.h"
#include "components/crash/core/app/crash_reporter_client.h"
class ElectronCrashReporterClient : public crash_reporter::CrashReporterClient {
public:
static void Create();
// disable copy
ElectronCrashReporterClient(const ElectronCrashReporterClient&) = delete;
ElectronCrashReporterClient& operator=(const ElectronCrashReporterClient&) =
delete;
static ElectronCrashReporterClient* Get();
void SetCollectStatsConsent(bool upload_allowed);
void SetUploadUrl(const std::string& url);
void SetShouldRateLimit(bool rate_limit);
void SetShouldCompressUploads(bool compress_uploads);
void SetGlobalAnnotations(
const std::map<std::string, std::string>& annotations);
// crash_reporter::CrashReporterClient implementation.
#if BUILDFLAG(IS_LINUX)
void SetCrashReporterClientIdFromGUID(
const std::string& client_guid) override;
base::FilePath GetReporterLogFilename() override;
#endif
#if BUILDFLAG(IS_WIN)
void GetProductNameAndVersion(const std::wstring& exe_path,
std::wstring* product_name,
std::wstring* version,
std::wstring* special_build,
std::wstring* channel_name) override;
#endif
#if BUILDFLAG(IS_WIN)
bool GetCrashDumpLocation(std::wstring* crash_dir) override;
#else
bool GetCrashDumpLocation(base::FilePath* crash_dir) override;
#endif
bool IsRunningUnattended() override;
bool GetCollectStatsConsent() override;
bool GetShouldRateLimit() override;
bool GetShouldCompressUploads() override;
void GetProcessSimpleAnnotations(
std::map<std::string, std::string>* annotations) override;
#if BUILDFLAG(IS_MAC)
bool ReportingIsEnforcedByPolicy(bool* breakpad_enabled) override;
#endif
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
bool ShouldMonitorCrashHandlerExpensively() override;
#endif
void GetProductInfo(ProductInfo* product_info) override;
bool EnableBreakpadForProcess(const std::string& process_type) override;
std::string GetUploadUrl() override;
private:
friend class base::NoDestructor<ElectronCrashReporterClient>;
std::string upload_url_;
bool collect_stats_consent_ = false;
bool rate_limit_ = false;
bool compress_uploads_ = false;
std::map<std::string, std::string> global_annotations_;
ElectronCrashReporterClient();
~ElectronCrashReporterClient() override;
};
#endif // ELECTRON_SHELL_APP_ELECTRON_CRASH_REPORTER_CLIENT_H_