Chrome rename: add ProcessLauncher UMA stats for system startup
This CL adds UMA stats for `ProcessLauncher` CoCreate during system
startup. This will allow seeing if the system startup case requires more
of a delay than other cases.
OBSOLETE_HISTOGRAM[Startup.CreateProcessLauncher]=Replaced by Startup.CreateProcessLauncher2
Bug: 348199036,40792898
Change-Id: Ie1c2a3e48b4b51cc0de09c86bc0aec48eedcfcd6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5785318
Reviewed-by: Sean Maher <[email protected]>
Reviewed-by: Greg Thompson <[email protected]>
Auto-Submit: S Ganesh <[email protected]>
Commit-Queue: S Ganesh <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1341855}
diff --git a/chrome/browser/first_run/upgrade_util_win.cc b/chrome/browser/first_run/upgrade_util_win.cc
index 3a243615..734c88f 100644
--- a/chrome/browser/first_run/upgrade_util_win.cc
+++ b/chrome/browser/first_run/upgrade_util_win.cc
@@ -32,6 +32,7 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/synchronization/waitable_event.h"
+#include "base/system/sys_info.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/task_traits.h"
#include "base/task/thread_pool.h"
@@ -129,6 +130,7 @@
// without a timeout.
Microsoft::WRL::ComPtr<IUnknown> CreateProcessLauncher() {
constexpr int kDefaultTimeoutIncrementSeconds = 15;
+ constexpr base::TimeDelta kMaxTimeAfterSystemStartup = base::Seconds(150);
auto result = base::MakeRefCounted<CreateProcessLauncherResult>();
if (base::ThreadPool::CreateCOMSTATaskRunner(
@@ -143,9 +145,14 @@
.GetIfInt()
.value_or(kDefaultTimeoutIncrementSeconds));
const base::ElapsedTimer timer;
+ const bool is_at_startup =
+ base::SysInfo::Uptime() <= kMaxTimeAfterSystemStartup;
if (!result->completion_event.TimedWait(timeout)) {
base::UmaHistogramMediumTimes(
- "Startup.CreateProcessLauncher.TimedWaitFailed", timer.Elapsed());
+ is_at_startup
+ ? "Startup.CreateProcessLauncher2.TimedWaitFailedAtStartup"
+ : "Startup.CreateProcessLauncher2.TimedWaitFailed",
+ timer.Elapsed());
creation_timeout.Set(base::Value(static_cast<int>(timeout.InSeconds()) +
kDefaultTimeoutIncrementSeconds));
TRACE_EVENT_INSTANT0(
@@ -159,7 +166,10 @@
return {};
}
base::UmaHistogramMediumTimes(
- "Startup.CreateProcessLauncher.TimedWaitSucceeded", timer.Elapsed());
+ is_at_startup
+ ? "Startup.CreateProcessLauncher2.TimedWaitSucceededAtStartup"
+ : "Startup.CreateProcessLauncher2.TimedWaitSucceeded",
+ timer.Elapsed());
Microsoft::WRL::ComPtr<IUnknown> unknown;
const HRESULT hr =