Index: third_party/crashpad/crashpad/handler/crash_report_upload_thread.cc |
diff --git a/third_party/crashpad/crashpad/handler/crash_report_upload_thread.cc b/third_party/crashpad/crashpad/handler/crash_report_upload_thread.cc |
index 00a12f7ff553b1cc77a1c80ab926421b27f1c673..99c76b776691e1baa3135af1d41293d2937c9e43 100644 |
--- a/third_party/crashpad/crashpad/handler/crash_report_upload_thread.cc |
+++ b/third_party/crashpad/crashpad/handler/crash_report_upload_thread.cc |
@@ -190,11 +190,12 @@ void CrashReportUploadThread::ProcessPendingReport( |
Settings* const settings = database_->GetSettings(); |
bool uploads_enabled; |
- if (!settings->GetUploadsEnabled(&uploads_enabled) || |
- !uploads_enabled || |
- url_.empty()) { |
- // If the upload-enabled state can’t be determined, uploads are disabled, or |
- // there’s no URL to upload to, don’t attempt to upload the new report. |
+ if (url_.empty() || |
+ (!report.upload_explicitly_requested && |
+ (!settings->GetUploadsEnabled(&uploads_enabled) || !uploads_enabled))) { |
+ // Don’t attempt an upload if there’s no URL to upload to. Allow upload if |
+ // it has been explicitly requested by the user, otherwise, respect the |
+ // upload-enabled state stored in the database’s settings. |
database_->SkipReportUpload(report.uuid); |
return; |
} |
@@ -251,6 +252,10 @@ void CrashReportUploadThread::ProcessPendingReport( |
// to at least try to get the report out of the way. |
database_->SkipReportUpload(report.uuid); |
return; |
+ |
+ case CrashReportDatabase::kCannotRequestUpload: |
+ NOTREACHED(); |
+ return; |
} |
CallRecordUploadAttempt call_record_upload_attempt(database_, upload_report); |