crash-reporter: detect guest mode and defer crash sending
Change-Id: I8952fc6e701521dbb8618889d96ebc025f713427
BUG=7203
TEST=Ran BVTs
Review URL: http://codereview.chromium.org/3520011
diff --git a/crash_reporter/crash_sender b/crash_reporter/crash_sender
index f6b3e3a..c9eec05 100644
--- a/crash_reporter/crash_sender
+++ b/crash_reporter/crash_sender
@@ -31,6 +31,9 @@
# Maximum crashes to send per day.
MAX_CRASH_RATE=${MAX_CRASH_RATE:-32}
+# Path to metrics_client.
+METRICS_CLIENT="/usr/bin/metrics_client"
+
# File whose existence mocks crash sending. If empty we pretend the
# crash sending was successful, otherwise unsuccessful.
MOCK_CRASH_SENDING="/tmp/mock-crash-sending"
@@ -105,11 +108,6 @@
echo $((random % max))
}
-is_feedback_disabled() {
- [ -r "${CONSENT_ID}" ] && return 1
- return 0
-}
-
is_on_3g() {
# See crosbug.com/3304.
return 1
@@ -292,7 +290,12 @@
continue
fi
- if is_feedback_disabled; then
+ if ${METRICS_CLIENT} -g; then
+ lecho "Guest mode has been entered. Delaying crash sending until exited."
+ return 0
+ fi
+
+ if ! ${METRICS_CLIENT} -c; then
lecho "Uploading is disabled. Removing crash."
remove_report "${meta_path}"
continue
@@ -347,10 +350,12 @@
check_not_already_running
- if [ ! -x "${FIND}" ]; then
- lecho "Fatal: Crash sending disabled: ${FIND} not found."
- exit 1
- fi
+ for dependency in "${FIND}" "${METRICS_CLIENT}"; do
+ if [ ! -x "${dependency}" ]; then
+ lecho "Fatal: Crash sending disabled: ${dependency} not found."
+ exit 1
+ fi
+ done
TMP_DIR="$(mktemp -d /tmp/crash_sender.XXXX)"