summaryrefslogtreecommitdiffstats
path: root/chrome/app/breakpad_win.cc
diff options
context:
space:
mode:
authorcpu@google.com <cpu@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-19 18:24:38 +0000
committercpu@google.com <cpu@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-19 18:24:38 +0000
commitf38b16fd2753b2d603e0a2a137227a132c77057b (patch)
tree47196cdec0752b96c5669830ba4ebc2bbad2c9ec /chrome/app/breakpad_win.cc
parent45aa74cc70c63a3a904007f9c84c1f73d9c2a35f (diff)
downloadchromium_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.cc6
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))