diff options
author | robertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-19 18:48:31 +0000 |
---|---|---|
committer | robertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-19 18:48:31 +0000 |
commit | 1f08d685eacf73ec7611949688ddaf7e1aceec30 (patch) | |
tree | 4756a67f2394e0145a8c87695411d68343d2866e /chrome_frame | |
parent | 7d4f2a4d92a6b5226ca069771f21656d37df645d (diff) | |
download | chromium_src-1f08d685eacf73ec7611949688ddaf7e1aceec30.zip chromium_src-1f08d685eacf73ec7611949688ddaf7e1aceec30.tar.gz chromium_src-1f08d685eacf73ec7611949688ddaf7e1aceec30.tar.bz2 |
Fix false positive reporting of exceptions picked up during calls to LoadLibrary during DllRegisterServer.
BUG=44468
Review URL: http://codereview.chromium.org/2089016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47696 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame')
-rw-r--r-- | chrome_frame/chrome_tab.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/chrome_frame/chrome_tab.cc b/chrome_frame/chrome_tab.cc index d7ca25d..f44d475 100644 --- a/chrome_frame/chrome_tab.cc +++ b/chrome_frame/chrome_tab.cc @@ -28,6 +28,7 @@ #include "chrome_frame/chrome_active_document.h" #include "chrome_frame/chrome_frame_activex.h" #include "chrome_frame/chrome_frame_automation.h" +#include "chrome_frame/exception_barrier.h" #include "chrome_frame/chrome_frame_reporting.h" #include "chrome_frame/chrome_launcher.h" #include "chrome_frame/chrome_protocol.h" @@ -234,6 +235,13 @@ HRESULT RefreshElevationPolicy() { const wchar_t kIEFrameDll[] = L"ieframe.dll"; const char kIERefreshPolicy[] = "IERefreshElevationPolicy"; HRESULT hr = E_NOTIMPL; + + // Stick an SEH in the chain to prevent the VEH from picking up on first + // chance exceptions caused by loading ieframe.dll. Use the vanilla + // ExceptionBarrier to report any exceptions that do make their way to us + // though. + ExceptionBarrier barrier; + HMODULE ieframe_module = LoadLibrary(kIEFrameDll); if (ieframe_module) { typedef HRESULT (__stdcall *IERefreshPolicy)(); |