diff options
author | robertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-01 02:10:06 +0000 |
---|---|---|
committer | robertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-01 02:10:06 +0000 |
commit | 72354315dd3c9682370ee2eea62446b7e5539990 (patch) | |
tree | 4f8be23e6d8ec76c7d537ca693815a7405cf2f02 /chrome_frame/chrome_frame_reporting.cc | |
parent | c96c3c973c12f552ed6abd565fd326c32c227a5f (diff) | |
download | chromium_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.cc | 12 |
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(); } |