• scottmg's avatar
    Make Crashpad start asynchronous, and move back to chrome_elf · be0cfa14
    scottmg authored
    Crashpad initialization has been reworked to support an asynchronous
    mode where StartHandler() only calls CreateThread() and does not
    synchronize with that thread, making it safe to use in DllMain().
    
    So, we can now move it back into chrome_elf to catch earlier crashes.
    
    We block much later now in browser startup, before a renderer (i.e.
    another client that would connect to the handler) will be started. This
    should not be strictly necessary, but is slightly more conservative as a
    first pass. This allows for error reporting, and prevents log spew from
    each renderer that starts up and tries to connect to a nonexistent
    handler. Also added is a UMA timer to see how long we're blocking
    startup for by joining with the background thread.
    
    This includes an effective revert of
    https://chromium.googlesource.com/chromium/src/+/f3a5670dd8d42b045d31625dde4a2561b471138f
    .
    
    BUG=655788,656800,565063
    CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng
    
    Review-Url: https://codereview.chromium.org/2475863004
    Cr-Commit-Position: refs/heads/master@{#439188}
    be0cfa14
chrome_browser_main.cc 86.5 KB