Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3568)

Unified Diff: chrome/browser/ui/webui/crashes_ui.cc

Issue 2268783002: Manual crash uploads for mac and win (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address Jesse's comments Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/crashes_ui.cc
diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/crashes_ui.cc
index af48299bb57453d4df0cb1a1eee9ddd41653a03a..1249bd31e07f5587b03b3559b43495bae02ec145 100644
--- a/chrome/browser/ui/webui/crashes_ui.cc
+++ b/chrome/browser/ui/webui/crashes_ui.cc
@@ -92,6 +92,11 @@ class CrashesDOMHandler : public WebUIMessageHandler,
// Sends the recent crashes list JS.
void UpdateUI();
+#if defined(OS_WIN) || defined(OS_MACOSX)
+ // Asynchronously requests a user triggered upload. Called from JS.
+ void HandleRequestSingleCrashUpload(const base::ListValue* args);
+#endif
+
scoped_refptr<CrashUploadList> upload_list_;
bool list_available_;
bool first_load_;
@@ -121,6 +126,13 @@ void CrashesDOMHandler::RegisterMessages() {
base::Bind(&CrashesDOMHandler::HandleRequestUploads,
base::Unretained(this)));
#endif
+
+#if defined(OS_WIN) || defined(OS_MACOSX)
+ web_ui()->RegisterMessageCallback(
+ crash::kCrashesUIRequestSingleCrashUpload,
+ base::Bind(&CrashesDOMHandler::HandleRequestSingleCrashUpload,
+ base::Unretained(this)));
+#endif
}
void CrashesDOMHandler::HandleRequestCrashes(const base::ListValue* args) {
@@ -160,12 +172,19 @@ void CrashesDOMHandler::UpdateUI() {
system_crash_reporter = true;
#endif
+ bool support_manual_uploads = false;
+#if defined(OS_WIN) || defined(OS_MACOSX)
+ // Maunal uploads are supported only for Windows and Mac platforms.
+ support_manual_uploads = true;
+#endif
+
base::ListValue crash_list;
if (crash_reporting_enabled)
crash::UploadListToValue(upload_list_.get(), &crash_list);
base::FundamentalValue enabled(crash_reporting_enabled);
base::FundamentalValue dynamic_backend(system_crash_reporter);
+ base::FundamentalValue manual_uploads(support_manual_uploads);
base::StringValue version(version_info::GetVersionNumber());
base::StringValue os_string(base::SysInfo::OperatingSystemName() + " " +
base::SysInfo::OperatingSystemVersion());
@@ -173,6 +192,7 @@ void CrashesDOMHandler::UpdateUI() {
std::vector<const base::Value*> args;
args.push_back(&enabled);
args.push_back(&dynamic_backend);
+ args.push_back(&manual_uploads);
args.push_back(&crash_list);
args.push_back(&version);
args.push_back(&os_string);
@@ -180,6 +200,16 @@ void CrashesDOMHandler::UpdateUI() {
args);
}
+#if defined(OS_WIN) || defined(OS_MACOSX)
+void CrashesDOMHandler::HandleRequestSingleCrashUpload(
+ const base::ListValue* args) {
+ std::string local_id;
+ if (!args || !args->GetString(0, &local_id))
+ return;
+ upload_list_->RequestSingleCrashUploadAsync(local_id);
+}
+#endif
+
} // namespace
///////////////////////////////////////////////////////////////////////////////

Powered by Google App Engine
This is Rietveld 408576698