Commit e0401ad3 authored by Eugene But's avatar Eugene But Committed by Commit Bot

[ios] Add some more key-values to synthetic crash report

This CL adds the following key-values:
  - OSVersion (string)
  - in-background (bool)
  - session restoration (bool)

Bug: 1103752
Change-Id: Ib9217d451bc4684a819e9f07fa968cf42792e586
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2444389Reviewed-by: default avatarOlivier Robin <olivierrobin@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#813834}
parent 8d3d6b79
...@@ -72,6 +72,24 @@ void CreateSyntheticCrashReportForUte( ...@@ -72,6 +72,24 @@ void CreateSyntheticCrashReportForUte(
"BreakpadServerParameterPrefix_memory_warning_in_progress", "BreakpadServerParameterPrefix_memory_warning_in_progress",
"yes"); "yes");
} }
if (previous_session.applicationState &&
*(previous_session.applicationState) == UIApplicationStateBackground) {
AppendConfig(config, "BreakpadServerParameterPrefix_crashed_in_background",
"yes");
}
if (previous_session.terminatedDuringSessionRestoration) {
AppendConfig(config,
"BreakpadServerParameterPrefix_crashed_during_session_restore",
"yes");
}
if (previous_session.OSVersion) {
AppendConfig(config, "BreakpadServerParameterPrefix_os_version",
base::SysNSStringToUTF8(previous_session.OSVersion));
}
AppendConfig(config, "BreakpadServerParameterPrefix_platform", AppendConfig(config, "BreakpadServerParameterPrefix_platform",
base::SysInfo::HardwareModelName()); base::SysInfo::HardwareModelName());
......
...@@ -37,6 +37,9 @@ TEST_F(SyntheticCrashReportUtilTest, CreateSyntheticCrashReportForUte) { ...@@ -37,6 +37,9 @@ TEST_F(SyntheticCrashReportUtilTest, CreateSyntheticCrashReportForUte) {
PreviousSessionInfo* previous_session = [PreviousSessionInfo sharedInstance]; PreviousSessionInfo* previous_session = [PreviousSessionInfo sharedInstance];
previous_session.availableDeviceStorage = kAvailableStorage; previous_session.availableDeviceStorage = kAvailableStorage;
previous_session.didSeeMemoryWarningShortlyBeforeTerminating = YES; previous_session.didSeeMemoryWarningShortlyBeforeTerminating = YES;
NSString* const kOSVersion = @"OSVersion";
previous_session.OSVersion = kOSVersion;
previous_session.terminatedDuringSessionRestoration = YES;
// Create crash report. // Create crash report.
base::ScopedTempDir temp_dir; base::ScopedTempDir temp_dir;
...@@ -93,7 +96,7 @@ TEST_F(SyntheticCrashReportUtilTest, CreateSyntheticCrashReportForUte) { ...@@ -93,7 +96,7 @@ TEST_F(SyntheticCrashReportUtilTest, CreateSyntheticCrashReportForUte) {
// Verify config file content. Config file has the following format: // Verify config file content. Config file has the following format:
// <Key1>\n<Value1Length>\n<Value1>\n...<KeyN>\n<ValueNLength>\n<ValueN> // <Key1>\n<Value1Length>\n<Value1>\n...<KeyN>\n<ValueNLength>\n<ValueN>
ASSERT_EQ(33U, config_lines.size()) ASSERT_EQ(39U, config_lines.size())
<< "<content>" << config_content << "</content>"; << "<content>" << config_content << "</content>";
EXPECT_EQ("MinidumpDir", config_lines[0]); EXPECT_EQ("MinidumpDir", config_lines[0]);
...@@ -144,10 +147,19 @@ TEST_F(SyntheticCrashReportUtilTest, CreateSyntheticCrashReportForUte) { ...@@ -144,10 +147,19 @@ TEST_F(SyntheticCrashReportUtilTest, CreateSyntheticCrashReportForUte) {
EXPECT_EQ(base::NumberToString(strlen(kYesString)), config_lines[28]); EXPECT_EQ(base::NumberToString(strlen(kYesString)), config_lines[28]);
EXPECT_EQ(kYesString, config_lines[29]); EXPECT_EQ(kYesString, config_lines[29]);
EXPECT_EQ("BreakpadServerParameterPrefix_platform", config_lines[30]); EXPECT_EQ("BreakpadServerParameterPrefix_crashed_during_session_restore",
config_lines[30]);
EXPECT_EQ(base::NumberToString(strlen(kYesString)), config_lines[31]);
EXPECT_EQ(kYesString, config_lines[32]);
EXPECT_EQ("BreakpadServerParameterPrefix_os_version", config_lines[33]);
EXPECT_EQ(base::NumberToString(kOSVersion.length), config_lines[34]);
EXPECT_EQ(base::SysNSStringToUTF8(kOSVersion), config_lines[35]);
EXPECT_EQ("BreakpadServerParameterPrefix_platform", config_lines[36]);
EXPECT_EQ(base::NumberToString(base::SysInfo::HardwareModelName().size()), EXPECT_EQ(base::NumberToString(base::SysInfo::HardwareModelName().size()),
config_lines[31]); config_lines[37]);
EXPECT_EQ(base::SysInfo::HardwareModelName(), config_lines[32]); EXPECT_EQ(base::SysInfo::HardwareModelName(), config_lines[38]);
// Read minidump file. It must be empty as there is no stack trace, but // Read minidump file. It must be empty as there is no stack trace, but
// Breakpad will not upload config without minidump file. // Breakpad will not upload config without minidump file.
......
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
@property(nonatomic, assign) @property(nonatomic, assign)
previous_session_info_constants::DeviceBatteryState deviceBatteryState; previous_session_info_constants::DeviceBatteryState deviceBatteryState;
@property(nonatomic, assign) BOOL OSRestartedAfterPreviousSession; @property(nonatomic, assign) BOOL OSRestartedAfterPreviousSession;
@property(nonatomic, copy) NSString* OSVersion;
@property(nonatomic, assign) BOOL terminatedDuringSessionRestoration;
@property(nonatomic, strong) NSMutableSet<NSString*>* connectedSceneSessionsIDs; @property(nonatomic, strong) NSMutableSet<NSString*>* connectedSceneSessionsIDs;
+ (void)resetSharedInstanceForTesting; + (void)resetSharedInstanceForTesting;
......
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