Index: chrome/browser/chrome_browser_main.cc |
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc |
index ab34cda844052ffe288539b11209621f87645480..0e7089aaed6f3771a6922e0e0cd1a007afd97f56 100644 |
--- a/chrome/browser/chrome_browser_main.cc |
+++ b/chrome/browser/chrome_browser_main.cc |
@@ -212,6 +212,7 @@ |
#include "chrome/installer/util/helper.h" |
#include "chrome/installer/util/install_util.h" |
#include "chrome/installer/util/shell_util.h" |
+#include "components/crash/content/app/crashpad.h" |
#include "ui/base/l10n/l10n_util_win.h" |
#include "ui/shell_dialogs/select_file_dialog.h" |
#endif // defined(OS_WIN) |
@@ -1402,6 +1403,18 @@ void ChromeBrowserMainParts::PostBrowserStart() { |
int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { |
TRACE_EVENT0("startup", "ChromeBrowserMainParts::PreMainMessageLoopRunImpl"); |
+#if defined(OS_WIN) |
+ HMODULE chrome_elf = GetModuleHandle(chrome::kChromeElfDllName); |
+ if (chrome_elf) { |
+ auto block_until_handler_started = reinterpret_cast<void (*)()>( |
+ GetProcAddress(chrome_elf, "BlockUntilHandlerStartedImpl")); |
+ if (block_until_handler_started) { |
+ SCOPED_UMA_HISTOGRAM_TIMER("Startup.BlockForCrashpadHandlerStartupTime"); |
+ block_until_handler_started(); |
+ } |
+ } |
+#endif |
+ |
SCOPED_UMA_HISTOGRAM_LONG_TIMER("Startup.PreMainMessageLoopRunImplLongTime"); |
const base::TimeTicks start_time_step1 = base::TimeTicks::Now(); |