Index: chromecast/crash/android/cast_crash_reporter_client_android.cc |
diff --git a/chromecast/crash/android/cast_crash_reporter_client_android.cc b/chromecast/crash/android/cast_crash_reporter_client_android.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2137faeea9bfcbca9b9d243efbda5cc4a13c9006 |
--- /dev/null |
+++ b/chromecast/crash/android/cast_crash_reporter_client_android.cc |
@@ -0,0 +1,72 @@ |
+// Copyright 2014 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 "chromecast/crash/android/cast_crash_reporter_client_android.h" |
+ |
+#include "base/base_paths.h" |
+#include "base/files/file_path.h" |
+#include "base/files/file_util.h" |
+#include "base/path_service.h" |
+#include "chromecast/android/chromecast_config_android.h" |
+#include "chromecast/common/global_descriptors.h" |
+#include "chromecast/common/version.h" |
+#include "content/public/common/content_switches.h" |
+ |
+namespace chromecast { |
+ |
+CastCrashReporterClientAndroid::CastCrashReporterClientAndroid() { |
+} |
+ |
+CastCrashReporterClientAndroid::~CastCrashReporterClientAndroid() { |
+} |
+ |
+void CastCrashReporterClientAndroid::GetProductNameAndVersion( |
+ const char** product_name, |
+ const char** version) { |
+ *product_name = "media_shell"; |
+ *version = PRODUCT_VERSION |
+#if CAST_IS_DEBUG_BUILD |
+ ".debug" |
+#endif |
+ "." CAST_BUILD_REVISION; |
+} |
+ |
+base::FilePath CastCrashReporterClientAndroid::GetReporterLogFilename() { |
+ return base::FilePath(FILE_PATH_LITERAL("uploads.log")); |
+} |
+ |
+bool CastCrashReporterClientAndroid::GetCrashDumpLocation( |
+ base::FilePath* crash_dir) { |
+ base::FilePath crash_dir_local; |
+ if (!PathService::Get(base::DIR_ANDROID_APP_DATA, &crash_dir_local)) { |
+ return false; |
+ } |
+ crash_dir_local = crash_dir_local.Append("crashes"); |
+ |
+ if (!base::DirectoryExists(crash_dir_local)) { |
+ if (!base::CreateDirectory(crash_dir_local)) { |
+ return false; |
+ } |
+ } |
+ |
+ // Provide value to crash_dir once directory is known to be a valid path. |
+ *crash_dir = crash_dir_local; |
+ return true; |
+} |
+ |
+bool CastCrashReporterClientAndroid::GetCollectStatsConsent() { |
+ return android::ChromecastConfigAndroid::GetInstance()->CanSendUsageStats(); |
+} |
+ |
+int CastCrashReporterClientAndroid::GetAndroidMinidumpDescriptor() { |
+ return kAndroidMinidumpDescriptor; |
+} |
+ |
+bool CastCrashReporterClientAndroid::EnableBreakpadForProcess( |
+ const std::string& process_type) { |
+ return process_type == switches::kRendererProcess || |
+ process_type == switches::kGpuProcess; |
+} |
+ |
+} // namespace chromecast |