diff options
author | cpu@google.com <cpu@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-19 18:24:38 +0000 |
---|---|---|
committer | cpu@google.com <cpu@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-19 18:24:38 +0000 |
commit | f38b16fd2753b2d603e0a2a137227a132c77057b (patch) | |
tree | 47196cdec0752b96c5669830ba4ebc2bbad2c9ec /chrome/app/breakpad_win.cc | |
parent | 45aa74cc70c63a3a904007f9c84c1f73d9c2a35f (diff) | |
download | chromium_src-f38b16fd2753b2d603e0a2a137227a132c77057b.zip chromium_src-f38b16fd2753b2d603e0a2a137227a132c77057b.tar.gz chromium_src-f38b16fd2753b2d603e0a2a137227a132c77057b.tar.bz2 |
Adds 'hard error' message box support
- Initially just the two failed to delay-load bind exceptions
- Shows the same error dialog as the OS shows so no localization required
TEST= hard to test, but I'll give some pointers on the bug
BUG = 11919
Review URL: http://codereview.chromium.org/113492
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16391 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/app/breakpad_win.cc')
-rw-r--r-- | chrome/app/breakpad_win.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/chrome/app/breakpad_win.cc b/chrome/app/breakpad_win.cc index 725b9a7..b2644ba 100644 --- a/chrome/app/breakpad_win.cc +++ b/chrome/app/breakpad_win.cc @@ -16,6 +16,7 @@ #include "base/string_util.h" #include "base/win_util.h" #include "chrome/app/google_update_client.h" +#include "chrome/app/hard_error_handler_win.h" #include "chrome/common/env_vars.h" #include "chrome/installer/util/install_util.h" #include "chrome/installer/util/google_update_settings.h" @@ -119,6 +120,11 @@ struct CrashReporterInfo { bool DumpDoneCallback(const wchar_t*, const wchar_t*, void*, EXCEPTION_POINTERS* ex_info, MDRawAssertionInfo*, bool) { + // If the exception is because there was a problem loading a delay-loaded + // module, then show the user a dialog explaining the problem and then exit. + if (DelayLoadFailureExceptionMessageBox(ex_info)) + return true; + // We set CHROME_CRASHED env var. If the CHROME_RESTART is present. // This signals the child process to show the 'chrome has crashed' dialog. if (!::GetEnvironmentVariableW(env_vars::kRestartInfo, NULL, 0)) |