Generate synthetic crash reports for UTE
UTE is Unexplained Termination Event, which is detected when Chrome
started after a non-clean shut down. When chrome app is foregrounded a
special flag is written on disk to mark the session start. That flag is
cleared when Chrome enters background. The app checks the flag on each
start and records UTE if flag was not cleared.
UTE is unexplained by definition and provides no information about the
termination. This CL generates synthetic crash log without minidump, so
developers could have at least some basic info about terimation.
Synthetic crash log can include breadcrumbs, and some info from the
previous session. But for now this CL only adds a bare crash report with
device name and app version.
Crash report consists of 2 parts: config file understandable by Breakpad
and empty minidump (Breakpad does not upload crash report without
minidump). These 2 files are places to Breakpad directory for upload.
Bug: 1103752
Change-Id: I10caaf40742711413c1cd659c55b3a7c8aeff9e5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2290153
Reviewed-by: Olivier Robin <[email protected]>
Commit-Queue: Eugene But <[email protected]>
Cr-Commit-Position: refs/heads/master@{#790464}
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm
index bc3c98f6..0a7fe36 100644
--- a/ios/chrome/browser/flags/about_flags.mm
+++ b/ios/chrome/browser/flags/about_flags.mm
@@ -56,6 +56,7 @@
#include "ios/chrome/browser/browsing_data/browsing_data_features.h"
#include "ios/chrome/browser/chrome_switches.h"
#include "ios/chrome/browser/crash_report/breadcrumbs/features.h"
+#include "ios/chrome/browser/crash_report/features.h"
#include "ios/chrome/browser/drag_and_drop/drag_and_drop_flag.h"
#include "ios/chrome/browser/flags/ios_chrome_flag_descriptions.h"
#include "ios/chrome/browser/passwords/password_manager_features.h"
@@ -470,6 +471,10 @@
{"ios-breadcrumbs", flag_descriptions::kLogBreadcrumbsName,
flag_descriptions::kLogBreadcrumbsDescription, flags_ui::kOsIos,
FEATURE_VALUE_TYPE(kLogBreadcrumbs)},
+ {"ios-synthetic-crash-reports",
+ flag_descriptions::kSyntheticCrashReportsForUteName,
+ flag_descriptions::kSyntheticCrashReportsForUteDescription,
+ flags_ui::kOsIos, FEATURE_VALUE_TYPE(kSyntheticCrashReportsForUte)},
{"force-startup-signin-promo",
flag_descriptions::kForceStartupSigninPromoName,
flag_descriptions::kForceStartupSigninPromoDescription, flags_ui::kOsIos,