This is a reland of commit 98e6bb8ea0
with two minor changes:
- Removed the code handling "Unknown" case but added `NOTREACHED`
there instead. So we don't have to test that case.
https://chromium-review.googlesource.com/c/chromium/src/+/5932764/comment/61c04464_219d4514/
- Removed ".Cdm" from
"Stability.Media.Cdm.{CdmUtilityProcessType}.xxx" based on the
feedback:
https://chromium-review.googlesource.com/c/chromium/src/+/5932764/comments/88397fe7_7aecf55e
On top of that the root cause of the revert reason has been fixed by
the previous chained CL (crrev.com/c/5949437) which will be landed
first.
Original change's description:
> media: Report CDM utility process crash exit code
>
> There is a way to investigate the stability issue on CDM utility
> processes with the existing histograms:
> ```
> ChildProcess.Crashed.UtilityProcessHash
> ChildProcess.Launched.UtilityProcessHash
> ChildProcess.LaunchFailed.UtilityProcessHash
> ChildProcess.Crashed.UtilityProcessExitCode
> ```
>
> However, this requires non-trivial steps to extract the data for the CDM
> specific crashes.
>
> Added new histograms to record the launch result and crash exit code:
> ```
> Stability.Media.{CdmUtilityProcessType}.Crash.ExitCode
> Stability.Media.{CdmUtilityProcessType}.Launch
> Stability.Media.{CdmUtilityProcessType}.Launch.LaunchErrorCode
> Stability.Media.{CdmUtilityProcessType}.Launch.Launch.WinLastError
> ```
> where CdmUtilityProcessType = {CdmServiceBroker,
> MediaFoundationServiceBroker, Unknown}.
>
> With the new histograms, we can easily monitor them and track down the
> root cause by exit codes.
>
> Unit tests:
> ```
> autoninja -C out\Default metrics_unittests
> out\Default\metrics_unittests --single-process-tests --gtest_filter=ContentStabilityMetricsProviderTest.*
> ```
>
> Manual tests:
> 1. Causing an access violation error (-1073741819 = 0xC0000005) in
> the CdmServiceBroker.
> ```
> - Histogram: Stability.Media.CdmServiceBroker.Crash.ExitCode recorded 1 samples (flags = 0x41) [#]
> -1073741819-O (1 = 100.0%)
>
> - Histogram: Stability.Media.CdmServiceBroker.Launch recorded 1 samples, mean = 1.0 (flags = 0x41) [#]
> 0 O (0 = 0.0%)
> 1 -O (1 = 100.0%) {0.0%}
> 2 O (0 = 0.0%) {100.0%}
> ```
> 2. Causing an access violation error (-1073741819 = 0xC0000005) in
> the MediaFoundationServiceBroker.
> ```
> - Histogram: Stability.Media.MediaFoundationServiceBroker.Crash.ExitCode recorded 1 samples (flags = 0x41) [#]
> -1073741819-O (1 = 100.0%)
>
> - Histogram: Stability.Media.MediaFoundationServiceBroker.Launch recorded 1 samples, mean = 1.0 (flags = 0x41) [#]
> 0 O (0 = 0.0%)
> 1 -O (1 = 100.0%) {0.0%}
> 2 O (0 = 0.0%) {100.0%}
> ```
>
> Bug: b:368672525
> Change-Id: I327ede039d16b2d4d2a7f12a055e05636a4ad54a
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5932764
> Reviewed-by: Robert Kaplow <rkaplow@chromium.org>
> Commit-Queue: Sangbaek Park <sangbaekpark@chromium.org>
> Reviewed-by: John Rummell <jrummell@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1370834}
Bug: b:368672525
Change-Id: I98e2add646352b82fa15d9490bae2a10a7f4209c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5950684
Commit-Queue: Sangbaek Park <sangbaekpark@chromium.org>
Reviewed-by: Robert Kaplow <rkaplow@chromium.org>
Reviewed-by: Will Harris <wfh@chromium.org>
Reviewed-by: John Rummell <jrummell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1372967}