Commit 235d6131 authored by Ying Ye's avatar Ying Ye Committed by Commit Bot

[Chromecast] Add an extra_info field to the crash report

Devices sometimes need to upload extra debugging information within a
crash report. This CL makes it optional for devices to upload
additional states.

Bug: internal b/171233251
Test: triggered crash and checked crash report
Change-Id: I696fa84e6719a3e6ec336bd2b3f07d622e7fd75c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2507576Reviewed-by: default avatarSergey Volk <servolk@chromium.org>
Reviewed-by: default avatarYuchen Liu <yucliu@chromium.org>
Commit-Queue: Ying Ye <yingye@google.com>
Cr-Commit-Position: refs/heads/master@{#823208}
parent 05f0f895
......@@ -33,6 +33,7 @@ const char kReleaseVersionKey[] = "release_version";
const char kBuildNumberKey[] = "build_number";
const char kReasonKey[] = "reason";
const char kStadiaSessionIdKey[] = "stadia_session_id";
const char kExtraInfoKey[] = "extra_info";
} // namespace
......@@ -77,6 +78,7 @@ std::unique_ptr<base::Value> DumpInfo::GetAsValue() const {
entry->SetString(kBuildNumberKey, params_.cast_build_number);
entry->SetString(kReasonKey, params_.reason);
entry->SetString(kStadiaSessionIdKey, params_.stadia_session_id);
entry->SetString(kExtraInfoKey, params_.extra_info);
return result;
}
......@@ -133,6 +135,8 @@ bool DumpInfo::ParseEntry(const base::Value* entry) {
++num_params;
if (dict->GetString(kStadiaSessionIdKey, &params_.stadia_session_id))
++num_params;
if (dict->GetString(kExtraInfoKey, &params_.extra_info))
++num_params;
// Disallow extraneous params
if (dict->size() != num_params)
......
......@@ -14,7 +14,8 @@ MinidumpParams::MinidumpParams(const uint64_t p_process_uptime,
const std::string& p_cast_release_version,
const std::string& p_cast_build_number,
const std::string& p_reason,
const std::string& p_stadia_session_id)
const std::string& p_stadia_session_id,
const std::string& p_extra_info)
: process_uptime(p_process_uptime),
suffix(p_suffix),
previous_app_name(p_previous_app_name),
......@@ -23,7 +24,8 @@ MinidumpParams::MinidumpParams(const uint64_t p_process_uptime,
cast_release_version(p_cast_release_version),
cast_build_number(p_cast_build_number),
reason(p_reason),
stadia_session_id(p_stadia_session_id) {}
stadia_session_id(p_stadia_session_id),
extra_info(p_extra_info) {}
MinidumpParams::MinidumpParams() : process_uptime(0) {}
......
......@@ -21,7 +21,8 @@ struct MinidumpParams {
const std::string& p_cast_release_version,
const std::string& p_cast_build_number,
const std::string& p_reason,
const std::string& p_stadia_session_id);
const std::string& p_stadia_session_id,
const std::string& p_extra_info = "");
MinidumpParams(const MinidumpParams& params);
~MinidumpParams();
......@@ -38,6 +39,7 @@ struct MinidumpParams {
std::string reason;
// Stadia Session ID, if a Stadia session was running at the time of crash.
std::string stadia_session_id;
std::string extra_info;
};
} // namespace chromecast
......
......@@ -45,6 +45,8 @@ const char kVirtualChannel[] = "virtual-channel";
const char kLatestUiVersion[] = "latest-ui-version";
const char kExtraInfoKey[] = "extra_info";
typedef std::vector<std::unique_ptr<DumpInfo>> DumpList;
std::unique_ptr<PrefService> CreatePrefService() {
......@@ -250,6 +252,9 @@ bool MinidumpUploader::DoWork() {
if (!dump.params().stadia_session_id.empty()) {
g.SetParameter("stadia_session_id", dump.params().stadia_session_id);
}
if (!dump.params().extra_info.empty()) {
g.SetParameter(kExtraInfoKey, dump.params().extra_info);
}
std::string response;
if (!g.Upload(&response)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment