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#ifndef CHROME_APP_CHROME_CRASH_REPORTER_CLIENT_H_ 6#define CHROME_APP_CHROME_CRASH_REPORTER_CLIENT_H_ 7 8#include "base/basictypes.h" 9#include "base/compiler_specific.h" 10#include "components/crash/app/crash_reporter_client.h" 11 12namespace chrome { 13 14class ChromeCrashReporterClient : public crash_reporter::CrashReporterClient { 15 public: 16 ChromeCrashReporterClient(); 17 virtual ~ChromeCrashReporterClient(); 18 19 // crash_reporter::CrashReporterClient implementation. 20 virtual void SetCrashReporterClientIdFromGUID( 21 const std::string& client_guid) OVERRIDE; 22#if defined(OS_WIN) 23 virtual bool GetAlternativeCrashDumpLocation(base::FilePath* crash_dir) 24 OVERRIDE; 25 virtual void GetProductNameAndVersion(const base::FilePath& exe_path, 26 base::string16* product_name, 27 base::string16* version, 28 base::string16* special_build, 29 base::string16* channel_name) OVERRIDE; 30 virtual bool ShouldShowRestartDialog(base::string16* title, 31 base::string16* message, 32 bool* is_rtl_locale) OVERRIDE; 33 virtual bool AboutToRestart() OVERRIDE; 34 virtual bool GetDeferredUploadsSupported(bool is_per_user_install) OVERRIDE; 35 virtual bool GetIsPerUserInstall(const base::FilePath& exe_path) OVERRIDE; 36 virtual bool GetShouldDumpLargerDumps(bool is_per_user_install) OVERRIDE; 37 virtual int GetResultCodeRespawnFailed() OVERRIDE; 38 virtual void InitBrowserCrashDumpsRegKey() OVERRIDE; 39 virtual void RecordCrashDumpAttempt(bool is_real_crash) OVERRIDE; 40#endif 41 42#if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_IOS) 43 virtual void GetProductNameAndVersion(std::string* product_name, 44 std::string* version) OVERRIDE; 45 virtual base::FilePath GetReporterLogFilename() OVERRIDE; 46#endif 47 48 virtual bool GetCrashDumpLocation(base::FilePath* crash_dir) OVERRIDE; 49 50 virtual size_t RegisterCrashKeys() OVERRIDE; 51 52 virtual bool IsRunningUnattended() OVERRIDE; 53 54 virtual bool GetCollectStatsConsent() OVERRIDE; 55 56#if defined(OS_WIN) || defined(OS_MACOSX) 57 virtual bool ReportingIsEnforcedByPolicy(bool* breakpad_enabled) OVERRIDE; 58#endif 59 60#if defined(OS_ANDROID) 61 virtual int GetAndroidMinidumpDescriptor() OVERRIDE; 62#endif 63 64#if defined(OS_MACOSX) 65 virtual void InstallAdditionalFilters(BreakpadRef breakpad) OVERRIDE; 66#endif 67 68 virtual bool EnableBreakpadForProcess( 69 const std::string& process_type) OVERRIDE; 70 71 private: 72 DISALLOW_COPY_AND_ASSIGN(ChromeCrashReporterClient); 73}; 74 75} // namespace chrome 76 77#endif // CHROME_APP_CHROME_CRASH_REPORTER_CLIENT_H_ 78