summaryrefslogtreecommitdiffstats
path: root/chrome_frame/chrome_frame_reporting.cc
diff options
context:
space:
mode:
authorrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-01 02:10:06 +0000
committerrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-01 02:10:06 +0000
commit72354315dd3c9682370ee2eea62446b7e5539990 (patch)
tree4f8be23e6d8ec76c7d537ca693815a7405cf2f02 /chrome_frame/chrome_frame_reporting.cc
parentc96c3c973c12f552ed6abd565fd326c32c227a5f (diff)
downloadchromium_src-72354315dd3c9682370ee2eea62446b7e5539990.zip
chromium_src-72354315dd3c9682370ee2eea62446b7e5539990.tar.gz
chromium_src-72354315dd3c9682370ee2eea62446b7e5539990.tar.bz2
Avoid reporting crashes for exceptions that hit our SEH from calls to the original implementation of BindToStorage() when we do not wrap the bind status callback.
BUG=42660 TEST=Induce exception in code called under original IMoniker::BindToStorage implementation when we don't wrap the callback and notice that no crash is reported. Review URL: http://codereview.chromium.org/1748016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46176 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/chrome_frame_reporting.cc')
-rw-r--r--chrome_frame/chrome_frame_reporting.cc12
1 files changed, 4 insertions, 8 deletions
diff --git a/chrome_frame/chrome_frame_reporting.cc b/chrome_frame/chrome_frame_reporting.cc
index 556747b2..807599c8 100644
--- a/chrome_frame/chrome_frame_reporting.cc
+++ b/chrome_frame/chrome_frame_reporting.cc
@@ -46,11 +46,6 @@ google_breakpad::CustomClientInfo* GetCustomInfo(const wchar_t* dll_path) {
return &custom_info;
}
-
-void CALLBACK BreakpadHandler(EXCEPTION_POINTERS *ptrs) {
- WriteMinidumpForException(ptrs);
-}
-
extern "C" IMAGE_DOS_HEADER __ImageBase;
bool InitializeCrashReporting() {
@@ -61,9 +56,9 @@ bool InitializeCrashReporting() {
if (!always_take_dump && !GoogleUpdateSettings::GetCollectStatsConsent())
return true;
- // Set the handler for ExceptionBarrier for this module:
- DCHECK(ExceptionBarrier::handler() == NULL);
- ExceptionBarrier::set_handler(BreakpadHandler);
+ // If we got here, we want to report crashes, so make sure all
+ // ExceptionBarrierBase instances do so.
+ ExceptionBarrierConfig::set_enabled(true);
// Get the alternate dump directory. We use the temp path.
FilePath temp_directory;
@@ -97,5 +92,6 @@ bool InitializeCrashReporting() {
}
bool ShutdownCrashReporting() {
+ ExceptionBarrierConfig::set_enabled(false);
return ShutdownVectoredCrashReporting();
}