shell_crash_reporter_client.cc revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "content/shell/app/shell_crash_reporter_client.h" 6 7#include "base/command_line.h" 8#include "base/files/file_path.h" 9#include "base/strings/string16.h" 10#include "base/strings/utf_string_conversions.h" 11#include "content/public/common/content_switches.h" 12#include "content/shell/common/shell_switches.h" 13 14#if defined(OS_ANDROID) 15#include "content/shell/android/shell_descriptors.h" 16#endif 17 18namespace content { 19 20ShellCrashReporterClient::ShellCrashReporterClient() {} 21ShellCrashReporterClient::~ShellCrashReporterClient() {} 22 23#if defined(OS_WIN) 24void ShellCrashReporterClient::GetProductNameAndVersion( 25 const base::FilePath& exe_path, 26 base::string16* product_name, 27 base::string16* version, 28 base::string16* special_build, 29 base::string16* channel_name) { 30 *product_name = base::ASCIIToUTF16("content_shell"); 31 *version = base::ASCIIToUTF16(CONTENT_SHELL_VERSION); 32 *special_build = base::string16(); 33 *channel_name = base::string16(); 34} 35#endif 36 37#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_IOS) 38void ShellCrashReporterClient::GetProductNameAndVersion( 39 std::string* product_name, 40 std::string* version) { 41 *product_name = "content_shell"; 42 *version = CONTENT_SHELL_VERSION; 43} 44 45base::FilePath ShellCrashReporterClient::GetReporterLogFilename() { 46 return base::FilePath(FILE_PATH_LITERAL("uploads.log")); 47} 48#endif 49 50bool ShellCrashReporterClient::GetCrashDumpLocation(base::FilePath* crash_dir) { 51 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kCrashDumpsDir)) 52 return false; 53 *crash_dir = CommandLine::ForCurrentProcess()->GetSwitchValuePath( 54 switches::kCrashDumpsDir); 55 return true; 56} 57 58#if defined(OS_ANDROID) 59int ShellCrashReporterClient::GetAndroidMinidumpDescriptor() { 60 return kAndroidMinidumpDescriptor; 61} 62#endif 63 64bool ShellCrashReporterClient::EnableBreakpadForProcess( 65 const std::string& process_type) { 66 return process_type == switches::kRendererProcess || 67 process_type == switches::kPluginProcess || 68 process_type == switches::kPpapiPluginProcess || 69 process_type == switches::kZygoteProcess || 70 process_type == switches::kGpuProcess; 71} 72 73} // namespace content 74