summaryrefslogtreecommitdiffstats
path: root/chrome_frame
diff options
context:
space:
mode:
Diffstat (limited to 'chrome_frame')
-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)();