summaryrefslogtreecommitdiffstats
path: root/chrome_frame/chrome_tab.cc
diff options
context:
space:
mode:
authorrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-19 18:48:31 +0000
committerrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-19 18:48:31 +0000
commit1f08d685eacf73ec7611949688ddaf7e1aceec30 (patch)
tree4756a67f2394e0145a8c87695411d68343d2866e /chrome_frame/chrome_tab.cc
parent7d4f2a4d92a6b5226ca069771f21656d37df645d (diff)
downloadchromium_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/chrome_tab.cc')
-rw-r--r--chrome_frame/chrome_tab.cc8
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)();