Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(975)

Unified Diff: chrome/browser/chrome_browser_main.cc

Issue 2475863004: Make Crashpad start asynchronous, and move back to chrome_elf (Closed)
Patch Set: rebase part 3 Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/app/chrome_exe_main_win.cc ('k') | chrome_elf/chrome_elf.def » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chrome_browser_main.cc
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
index 19a377e00806b21c43b962e24f91e4baf94a9442..478a41cf691e66e8c73037156dd11ded9bd76676 100644
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -213,6 +213,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)
@@ -1411,6 +1412,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"));
robertshield 2016/12/09 01:56:44 This isn't in elf's .def file. Should it be?
scottmg 2016/12/09 20:23:14 We seem to have a mix of __declspec(dllexport) and
robertshield 2016/12/09 21:11:47 No worries, just thought it was a bit weird that w
scottmg 2016/12/13 18:46:59 Yeah, it's a bit messy. I think "Impl" has been us
+ if (block_until_handler_started) {
+ SCOPED_UMA_HISTOGRAM_TIMER("Startup.BlockForCrashpadHandlerStartupTime");
+ block_until_handler_started();
robertshield 2016/12/09 21:11:47 This is a WaitForSingleObject(.., INFINITE) at Chr
scottmg 2016/12/13 18:46:59 Updated so that it waits a maximum of 5s. There's
+ }
+ }
+#endif
+
SCOPED_UMA_HISTOGRAM_LONG_TIMER("Startup.PreMainMessageLoopRunImplLongTime");
const base::TimeTicks start_time_step1 = base::TimeTicks::Now();
« no previous file with comments | « chrome/app/chrome_exe_main_win.cc ('k') | chrome_elf/chrome_elf.def » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698