Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Issue 1733021: Add an ExceptionBarrier around outbound calls to patched methods in IE. In so... (Closed)

Created:
10 years, 8 months ago by robertshield
Modified:
9 years, 6 months ago
CC:
chromium-reviews, amit
Visibility:
Public.

Description

Add an ExceptionBarrier around outbound calls to patched methods in IE. In so doing, we have an SEH present in the SEH chain and so the VEH won't erroneously report crashes that occur in other modules when we happen to be on the stack. BUG=42660 TEST=Less false positives in the crash reports. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=45764

Patch Set 1 #

Total comments: 4

Patch Set 2 : '' #

Patch Set 3 : '' #

Patch Set 4 : '' #

Total comments: 6

Patch Set 5 : '' #

Patch Set 6 : '' #

Patch Set 7 : '' #

Patch Set 8 : '' #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+276 lines, -14 lines) Patch
M chrome_frame/chrome_frame.gyp View 1 2 3 4 2 chunks +28 lines, -0 lines 0 comments Download
M chrome_frame/chrome_frame_reporting.cc View 3 chunks +10 lines, -0 lines 0 comments Download
M chrome_frame/crash_reporting/crash_report.h View 1 2 chunks +4 lines, -0 lines 2 comments Download
M chrome_frame/crash_reporting/crash_report.cc View 1 2 7 chunks +35 lines, -12 lines 2 comments Download
A chrome_frame/exception_barrier.h View 1 2 3 4 5 6 1 chunk +96 lines, -0 lines 0 comments Download
A chrome_frame/exception_barrier.cc View 1 chunk +41 lines, -0 lines 0 comments Download
A chrome_frame/exception_barrier_lowlevel.asm View 1 chunk +52 lines, -0 lines 0 comments Download
M chrome_frame/urlmon_moniker.cc View 1 2 3 4 3 chunks +10 lines, -2 lines 0 comments Download

Messages

Total messages: 11 (0 generated)
robertshield
Here's a stab at adding an exception handler to the fray when calling out to ...
10 years, 8 months ago (2010-04-27 20:25:24 UTC) #1
amit
[+cc stoyan for another round of sanity check] LGTM http://codereview.chromium.org/1733021/diff/1/4 File chrome_frame/crash_reporting/crash_report.h (right): http://codereview.chromium.org/1733021/diff/1/4#newcode34 chrome_frame/crash_reporting/crash_report.h:34: ...
10 years, 8 months ago (2010-04-27 20:39:42 UTC) #2
robertshield
Thanks, please take another look. http://codereview.chromium.org/1733021/diff/1/4 File chrome_frame/crash_reporting/crash_report.h (right): http://codereview.chromium.org/1733021/diff/1/4#newcode34 chrome_frame/crash_reporting/crash_report.h:34: google_breakpad::ExceptionHandler* GetBreakpadHandler(Lock* breakpad_lock); On ...
10 years, 8 months ago (2010-04-27 21:02:42 UTC) #3
amit
lgtm++
10 years, 8 months ago (2010-04-27 21:16:03 UTC) #4
stoyan
http://codereview.chromium.org/1733021/diff/26001/27005 File chrome_frame/chrome_frame_exception_barrier.cc (right): http://codereview.chromium.org/1733021/diff/26001/27005#newcode14 chrome_frame/chrome_frame_exception_barrier.cc:14: extern google_breakpad::ExceptionHandler* g_breakpad; these two lines seems unused. http://codereview.chromium.org/1733021/diff/26001/27005#newcode18 ...
10 years, 8 months ago (2010-04-27 21:35:50 UTC) #5
stoyan
http://codereview.chromium.org/1733021/diff/26001/27007 File chrome_frame/exception_barrier.h (right): http://codereview.chromium.org/1733021/diff/26001/27007#newcode57 chrome_frame/exception_barrier.h:57: virtual ~ExceptionBarrier(); Is the virtual really needed?
10 years, 8 months ago (2010-04-27 21:38:59 UTC) #6
robertshield
Thanks, please take another look. http://codereview.chromium.org/1733021/diff/26001/27005 File chrome_frame/chrome_frame_exception_barrier.cc (right): http://codereview.chromium.org/1733021/diff/26001/27005#newcode14 chrome_frame/chrome_frame_exception_barrier.cc:14: extern google_breakpad::ExceptionHandler* g_breakpad; On ...
10 years, 8 months ago (2010-04-27 23:42:01 UTC) #7
stoyan
(blind) lgtm
10 years, 8 months ago (2010-04-28 00:18:02 UTC) #8
Sigurður Ásgeirsson
There used to be a test for the EB as well, is it not in ...
10 years, 8 months ago (2010-04-28 01:54:10 UTC) #9
robertshield
Thanks Siggi, I'll address the comments in another patch (hopefully today). I couldn't find a ...
10 years, 8 months ago (2010-04-28 10:45:57 UTC) #10
Sigurður Ásgeirsson
10 years, 8 months ago (2010-04-28 14:27:21 UTC) #11
On Wed, Apr 28, 2010 at 6:45 AM, <robertshield@chromium.org> wrote:

> Thanks Siggi, I'll address the comments in another patch (hopefully today).
>
> I couldn't find a unit test for the ExceptionBarrier in the Omaha code.
>
>
>
> http://codereview.chromium.org/1733021/diff/47001/48002
> File chrome_frame/crash_reporting/crash_report.cc (right):
>
> http://codereview.chromium.org/1733021/diff/47001/48002#newcode16
> chrome_frame/crash_reporting/crash_report.cc:16: static Lock
> g_breakpad_lock;
> On 2010/04/28 01:54:10, Ruðrugis wrote:
>
>> comment on what this lock protects, please. I'm not sure this helps
>>
> any problem
>
>> we have. Because e.g. VEH is process global state, I don't know that
>>
> we can
>
>> really ever totally safely tear down our handlers, etc.
>>
>
> Will add a comment in another patch. Generally: this protects access to
> the g_breakpad instance since it can now be accessed from any thread
> that has an ExceptionBarrier on its stack as well as during setup and
> teardown of the veh. It might be demonstrable that this isn't necessary,
> but I couldn't prove it to my satisfaction.
>
> My point is more that this doesn't actually improve things, since the VEH
stuff could be servicing an exception in any thread in the process, and
there's no guarantee that a VEH exception isn't being processed during
teardown - e.g. it's impossible to make this safe, so we might as well not
confuse the issue with partial, but incomplete fixes.

>
> http://codereview.chromium.org/1733021/diff/47001/48003
> File chrome_frame/crash_reporting/crash_report.h (right):
>
> http://codereview.chromium.org/1733021/diff/47001/48003#newcode12
> chrome_frame/crash_reporting/crash_report.h:12: #include "base/lock.h"
> On 2010/04/28 01:54:10, Ruðrugis wrote:
>
>> you need this?
>>
>
> ugh, no. Will remove in forthcoming patch.
>
>
> http://codereview.chromium.org/1733021/show
>

Powered by Google App Engine
This is Rietveld 408576698