Index: third_party/crashpad/crashpad/util/misc/metrics.h |
diff --git a/third_party/crashpad/crashpad/util/misc/metrics.h b/third_party/crashpad/crashpad/util/misc/metrics.h |
index fd2e120063a602c3668863fe137fb5ca106a6e77..b4bea9107d7a7d81a0f584e15bf8d9bf2df2af61 100644 |
--- a/third_party/crashpad/crashpad/util/misc/metrics.h |
+++ b/third_party/crashpad/crashpad/util/misc/metrics.h |
@@ -30,8 +30,10 @@ namespace crashpad { |
//! Chromium's base, they allow integration with its metrics system. |
class Metrics { |
public: |
- //! \brief Values for CrashReportPending(). These are used as metrics |
- //! enumeration values, so new values should always be added at the end. |
+ //! \brief Values for CrashReportPending(). |
+ //! |
+ //! \note These are used as metrics enumeration values, so new values should |
+ //! always be added at the end, before PendingReportReason::kMaxValue. |
enum class PendingReportReason : int32_t { |
//! \brief A report was newly created and is ready for upload. |
kNewlyCreated = 0, |
@@ -53,8 +55,10 @@ class Metrics { |
//! \brief Reports on a crash upload attempt, and if it succeeded. |
static void CrashUploadAttempted(bool successful); |
- //! \brief Values for CrashUploadSkipped(). These are used as metrics |
- //! enumeration values, so new values should always be added at the end. |
+ //! \brief Values for CrashUploadSkipped(). |
+ //! |
+ //! \note These are used as metrics enumeration values, so new values should |
+ //! always be added at the end, before CrashSkippedReason::kMaxValue. |
enum class CrashSkippedReason : int32_t { |
//! \brief Crash uploading is disabled. |
kUploadsDisabled = 0, |
@@ -81,8 +85,10 @@ class Metrics { |
//! database, without the report being uploadad. |
static void CrashUploadSkipped(CrashSkippedReason reason); |
- //! \brief The result of capturing an exception. These are used as metrics |
- //! enumeration values, so new values should always be added at the end. |
+ //! \brief The result of capturing an exception. |
+ //! |
+ //! \note These are used as metrics enumeration values, so new values should |
+ //! always be added at the end, before CaptureResult::kMaxValue. |
enum class CaptureResult : int32_t { |
//! \brief The exception capture succeeded normally. |
kSuccess = 0, |
@@ -130,6 +136,37 @@ class Metrics { |
//! \brief The exception handler server started capturing an exception. |
static void ExceptionEncountered(); |
+ //! \brief An important event in a handler process’ lifetime. |
+ //! |
+ //! \note These are used as metrics enumeration values, so new values should |
+ //! always be added at the end, before LifetimeMilestone::kMaxValue. |
+ enum class LifetimeMilestone : int32_t { |
+ //! \brief The handler process started. |
+ kStarted = 0, |
+ |
+ //! \brief The handler process exited normally and cleanly. |
+ kExitedNormally, |
+ |
+ //! \brief The handler process exited early, but was successful in |
+ //! performing some non-default action on user request. |
+ kExitedEarly, |
+ |
+ //! \brief The handler process exited with a failure code. |
+ kFailed, |
+ |
+ //! \brief The handler process was forcibly terminated. |
+ kTerminated, |
+ |
+ //! \brief The handler process crashed. |
+ kCrashed, |
+ |
+ //! \brief The number of values in this enumeration; not a valid value. |
+ kMaxValue |
+ }; |
+ |
+ //! \brief Records a handler start/exit/crash event. |
+ static void HandlerLifetimeMilestone(LifetimeMilestone milestone); |
+ |
//! \brief The handler process crashed with the given exception code. |
//! |
//! This is currently only reported on Windows. |