| Index: chrome_frame/urlmon_moniker.cc
|
| ===================================================================
|
| --- chrome_frame/urlmon_moniker.cc (revision 45764)
|
| +++ chrome_frame/urlmon_moniker.cc (working copy)
|
| @@ -162,7 +162,7 @@
|
| DLOG(INFO) << __FUNCTION__;
|
| DCHECK(to_left == NULL);
|
|
|
| - ExceptionBarrier barrier;
|
| + ExceptionBarrierReportOnlyModule barrier;
|
|
|
| HRESULT hr = S_OK;
|
| // Bind context is marked for switch when we sniff data in BSCBStorageBind
|
| @@ -205,11 +205,14 @@
|
| hr = callback->Initialize(me, bind_ctx);
|
| DCHECK(SUCCEEDED(hr));
|
|
|
| - // Call the original back under an exception barrier only if we should
|
| - // wrap the callback.
|
| + // Report all crashes in the exception handler if we wrap the callback.
|
| + // Note that this avoids having the VEH report a crash if an SEH earlier in
|
| + // the chain handles the exception.
|
| ExceptionBarrier barrier;
|
| hr = original(me, bind_ctx, to_left, iid, obj);
|
| } else {
|
| + // If we don't wrap, only report a crash if the crash is in our own module.
|
| + ExceptionBarrierReportOnlyModule barrier;
|
| hr = original(me, bind_ctx, to_left, iid, obj);
|
| }
|
|
|
|
|