summaryrefslogtreecommitdiff
path: root/chromium/content/shell/app/shell_crash_reporter_client.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/shell/app/shell_crash_reporter_client.cc')
-rw-r--r--chromium/content/shell/app/shell_crash_reporter_client.cc95
1 files changed, 95 insertions, 0 deletions
diff --git a/chromium/content/shell/app/shell_crash_reporter_client.cc b/chromium/content/shell/app/shell_crash_reporter_client.cc
new file mode 100644
index 00000000000..4c76c176753
--- /dev/null
+++ b/chromium/content/shell/app/shell_crash_reporter_client.cc
@@ -0,0 +1,95 @@
+// 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 "content/shell/app/shell_crash_reporter_client.h"
+
+#include <string>
+#include <utility>
+
+#include "base/command_line.h"
+#include "base/files/file_path.h"
+#include "base/strings/utf_string_conversions.h"
+#include "build/build_config.h"
+#include "content/public/common/content_switches.h"
+#include "content/shell/common/shell_switches.h"
+
+#if BUILDFLAG(IS_ANDROID)
+#include "content/shell/android/shell_descriptors.h"
+#endif
+
+namespace content {
+
+ShellCrashReporterClient::ShellCrashReporterClient() {}
+ShellCrashReporterClient::~ShellCrashReporterClient() {}
+
+#if BUILDFLAG(IS_WIN)
+void ShellCrashReporterClient::GetProductNameAndVersion(
+ const std::wstring& exe_path,
+ std::wstring* product_name,
+ std::wstring* version,
+ std::wstring* special_build,
+ std::wstring* channel_name) {
+ *product_name = L"content_shell";
+ *version = base::ASCIIToWide(CONTENT_SHELL_VERSION);
+ *special_build = std::wstring();
+ *channel_name = std::wstring();
+}
+#endif
+
+#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
+void ShellCrashReporterClient::GetProductNameAndVersion(
+ const char** product_name,
+ const char** version) {
+ *product_name = "content_shell";
+ *version = CONTENT_SHELL_VERSION;
+}
+
+void ShellCrashReporterClient::GetProductNameAndVersion(
+ std::string* product_name,
+ std::string* version,
+ std::string* channel) {
+ *product_name = "content_shell";
+ *version = CONTENT_SHELL_VERSION;
+ *channel = "";
+}
+
+base::FilePath ShellCrashReporterClient::GetReporterLogFilename() {
+ return base::FilePath(FILE_PATH_LITERAL("uploads.log"));
+}
+#endif
+
+#if BUILDFLAG(IS_WIN)
+bool ShellCrashReporterClient::GetCrashDumpLocation(std::wstring* crash_dir) {
+#else
+bool ShellCrashReporterClient::GetCrashDumpLocation(base::FilePath* crash_dir) {
+#endif
+ if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kCrashDumpsDir))
+ return false;
+ base::FilePath crash_directory =
+ base::CommandLine::ForCurrentProcess()->GetSwitchValuePath(
+ switches::kCrashDumpsDir);
+#if BUILDFLAG(IS_WIN)
+ *crash_dir = crash_directory.value();
+#else
+ *crash_dir = std::move(crash_directory);
+#endif
+ return true;
+}
+
+#if BUILDFLAG(IS_ANDROID)
+int ShellCrashReporterClient::GetAndroidMinidumpDescriptor() {
+ return kAndroidMinidumpDescriptor;
+}
+#endif
+
+bool ShellCrashReporterClient::EnableBreakpadForProcess(
+ const std::string& process_type) {
+ return process_type == switches::kRendererProcess ||
+ process_type == switches::kPpapiPluginProcess ||
+ process_type == switches::kZygoteProcess ||
+ process_type == switches::kGpuProcess;
+}
+
+} // namespace content