summaryrefslogtreecommitdiffstats
path: root/components/crash/content/app/crash_reporter_client.cc
diff options
context:
space:
mode:
Diffstat (limited to 'components/crash/content/app/crash_reporter_client.cc')
-rw-r--r--components/crash/content/app/crash_reporter_client.cc148
1 files changed, 148 insertions, 0 deletions
diff --git a/components/crash/content/app/crash_reporter_client.cc b/components/crash/content/app/crash_reporter_client.cc
new file mode 100644
index 0000000..66388e2
--- /dev/null
+++ b/components/crash/content/app/crash_reporter_client.cc
@@ -0,0 +1,148 @@
+// 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.
+
+#include "components/crash/content/app/crash_reporter_client.h"
+
+#include "base/files/file_path.h"
+#include "base/logging.h"
+
+namespace crash_reporter {
+
+namespace {
+
+CrashReporterClient* g_client = NULL;
+
+} // namespace
+
+void SetCrashReporterClient(CrashReporterClient* client) {
+ g_client = client;
+}
+
+CrashReporterClient* GetCrashReporterClient() {
+ DCHECK(g_client);
+ return g_client;
+}
+
+CrashReporterClient::CrashReporterClient() {}
+CrashReporterClient::~CrashReporterClient() {}
+
+#if !defined(OS_MACOSX)
+void CrashReporterClient::SetCrashReporterClientIdFromGUID(
+ const std::string& client_guid) {
+}
+#endif
+
+#if defined(OS_WIN)
+bool CrashReporterClient::GetAlternativeCrashDumpLocation(
+ base::FilePath* crash_dir) {
+ return false;
+}
+
+void CrashReporterClient::GetProductNameAndVersion(
+ const base::FilePath& exe_path,
+ base::string16* product_name,
+ base::string16* version,
+ base::string16* special_build,
+ base::string16* channel_name) {
+}
+
+bool CrashReporterClient::ShouldShowRestartDialog(base::string16* title,
+ base::string16* message,
+ bool* is_rtl_locale) {
+ return false;
+}
+
+bool CrashReporterClient::AboutToRestart() {
+ return false;
+}
+
+bool CrashReporterClient::GetDeferredUploadsSupported(bool is_per_usr_install) {
+ return false;
+}
+
+bool CrashReporterClient::GetIsPerUserInstall(const base::FilePath& exe_path) {
+ return true;
+}
+
+bool CrashReporterClient::GetShouldDumpLargerDumps(bool is_per_user_install) {
+ return false;
+}
+
+int CrashReporterClient::GetResultCodeRespawnFailed() {
+ return 0;
+}
+
+void CrashReporterClient::InitBrowserCrashDumpsRegKey() {
+}
+
+void CrashReporterClient::RecordCrashDumpAttempt(bool is_real_crash) {
+}
+
+void CrashReporterClient::RecordCrashDumpAttemptResult(bool is_real_crash,
+ bool succeeded) {
+}
+#endif
+
+#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_IOS)
+void CrashReporterClient::GetProductNameAndVersion(const char** product_name,
+ const char** version) {
+}
+
+base::FilePath CrashReporterClient::GetReporterLogFilename() {
+ return base::FilePath();
+}
+
+bool CrashReporterClient::HandleCrashDump(const char* crashdump_filename) {
+ return false;
+}
+#endif
+
+bool CrashReporterClient::GetCrashDumpLocation(base::FilePath* crash_dir) {
+ return false;
+}
+
+size_t CrashReporterClient::RegisterCrashKeys() {
+ return 0;
+}
+
+bool CrashReporterClient::IsRunningUnattended() {
+ return true;
+}
+
+bool CrashReporterClient::GetCollectStatsConsent() {
+ return false;
+}
+
+#if defined(OS_WIN) || defined(OS_MACOSX)
+bool CrashReporterClient::ReportingIsEnforcedByPolicy(bool* breakpad_enabled) {
+ return false;
+}
+#endif
+
+#if defined(OS_ANDROID)
+int CrashReporterClient::GetAndroidMinidumpDescriptor() {
+ return 0;
+}
+
+bool CrashReporterClient::ShouldEnableBreakpadMicrodumps() {
+// Always enable microdumps on Android when stripping unwind tables. Rationale:
+// when unwind tables are stripped out (to save binary size) the stack traces
+// produced locally in the case of a crash / CHECK are meaningless. In order to
+// provide meaningful development diagnostics (and keep the binary size savings)
+// on Android we attach a secondary crash handler which serializes a reduced
+// form of logcat on the console.
+#if defined(NO_UNWIND_TABLES)
+ return true;
+#else
+ return false;
+#endif
+}
+#endif
+
+bool CrashReporterClient::EnableBreakpadForProcess(
+ const std::string& process_type) {
+ return false;
+}
+
+} // namespace crash_reporter