summaryrefslogtreecommitdiffstats
path: root/chromecast/crash
diff options
context:
space:
mode:
authorgunsch <gunsch@chromium.org>2015-02-19 19:06:45 -0800
committerCommit bot <commit-bot@chromium.org>2015-02-20 03:07:19 +0000
commit60ae9468add0f6a2562c52000dbae0eea546790b (patch)
tree2bb323c7179103c410764a16049553763a7489e6 /chromecast/crash
parent76f753525569b431b85521ca7d3c6648d48ffb52 (diff)
downloadchromium_src-60ae9468add0f6a2562c52000dbae0eea546790b.zip
chromium_src-60ae9468add0f6a2562c52000dbae0eea546790b.tar.gz
chromium_src-60ae9468add0f6a2562c52000dbae0eea546790b.tar.bz2
Chromecast: tighten cases for uploading crash dumps to prod server.
After discussion with gogan@ about Cast on ATV crashes, one thing we discovered was the amount of non-public/non-dogfood crashes polluting the crash data. R=kjoswiak@chromium.org,byungchul@chromium.org BUG=None Review URL: https://codereview.chromium.org/820883003 Cr-Commit-Position: refs/heads/master@{#317225}
Diffstat (limited to 'chromecast/crash')
-rw-r--r--chromecast/crash/android/crash_handler.cc21
1 files changed, 18 insertions, 3 deletions
diff --git a/chromecast/crash/android/crash_handler.cc b/chromecast/crash/android/crash_handler.cc
index a73e313..4198764 100644
--- a/chromecast/crash/android/crash_handler.cc
+++ b/chromecast/crash/android/crash_handler.cc
@@ -5,12 +5,14 @@
#include "chromecast/crash/android/crash_handler.h"
#include <jni.h>
+#include <stdlib.h>
#include <string>
#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
#include "base/files/file_path.h"
#include "base/logging.h"
+#include "base/strings/string_number_conversions.h"
#include "breakpad/src/client/linux/handler/exception_handler.h"
#include "breakpad/src/client/linux/handler/minidump_descriptor.h"
#include "chromecast/common/version.h"
@@ -40,6 +42,19 @@ bool HandleCrash(const void* /* crash_context */,
return false;
}
+// Debug builds: always to crash-staging
+// Release builds: only to crash-staging for local/invalid build numbers
+bool UploadCrashToStaging() {
+#if CAST_IS_DEBUG_BUILD
+ return true;
+#else
+ int build_number;
+ if (base::StringToInt(CAST_BUILD_REVISION, &build_number))
+ return build_number == 0;
+ return true;
+#endif
+}
+
} // namespace
namespace chromecast {
@@ -119,7 +134,7 @@ void CrashHandler::AttemptUploadCrashDump() {
env,
crash_dump_path_java.obj(),
log_file_path_java.obj(),
- CAST_IS_DEBUG_BUILD);
+ UploadCrashToStaging());
}
void CrashHandler::UploadCrashDumpsAsync() {
@@ -129,7 +144,7 @@ void CrashHandler::UploadCrashDumpsAsync() {
crash_dump_path_.value());
Java_CastCrashHandler_uploadCrashDumpsAsync(env,
crash_dump_path_java.obj(),
- CAST_IS_DEBUG_BUILD);
+ UploadCrashToStaging());
}
void CrashHandler::RemoveCrashDumps() {
@@ -139,7 +154,7 @@ void CrashHandler::RemoveCrashDumps() {
base::android::ConvertUTF8ToJavaString(env,
crash_dump_path_.value());
Java_CastCrashHandler_removeCrashDumpsSync(
- env, crash_dump_path_java.obj(), CAST_IS_DEBUG_BUILD);
+ env, crash_dump_path_java.obj(), UploadCrashToStaging());
}
} // namespace chromecast