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

Issue 12521002: Start and stop crash reporting outside of the loader lock. (Closed)

Created:
7 years, 9 months ago by grt (UTC plus 2)
Modified:
7 years, 9 months ago
CC:
chromium-reviews, grt+watch_chromium.org, amit, robertshield
Visibility:
Public.

Description

Start and stop crash reporting outside of the loader lock. Instead of using DllMain to start/stop crash reporting, it is now done by way of a specialization of a new ScopedInitializationManager template. Instances of this specialization are created on the stack in entrypoints to the DLL (for registration or to get a COM object). The lifetime of crash reporting is ordinarily bound to the lifetime of the ATL module. The exception to this is when the module is pinned, at which point crash reporting is also pinned. This change removes the breakpad_handler_dll target (by reverting http://crrev.com/70898) since it is no longer needed. BUG=163455 TEST=install chrome frame and notice that installation doesn't block for 1 minute while npchrome_frame.dll is registered. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=188207

Patch Set 1 : #

Total comments: 5

Patch Set 2 : rejiggered and made testable; tests pending #

Patch Set 3 : stop crash reporting when the module is no longer locked. #

Total comments: 10

Patch Set 4 : proper pinning #

Patch Set 5 : revert r70898 #

Total comments: 4

Patch Set 6 : pin_module #

Patch Set 7 : unit test #

Unified diffs Side-by-side diffs Delta from patch set Stats (+334 lines, -95 lines) Patch
M breakpad/breakpad_handler.gypi View 1 2 3 4 3 chunks +4 lines, -26 lines 0 comments Download
M chrome_frame/buggy_bho_handling.cc View 1 2 3 4 5 2 chunks +2 lines, -1 line 0 comments Download
M chrome_frame/chrome_frame.gyp View 1 2 3 4 5 6 4 chunks +5 lines, -1 line 0 comments Download
M chrome_frame/chrome_frame_reporting.h View 1 1 chunk +16 lines, -11 lines 0 comments Download
M chrome_frame/chrome_frame_reporting.cc View 1 4 chunks +29 lines, -12 lines 0 comments Download
M chrome_frame/chrome_tab.cc View 1 2 3 4 5 14 chunks +64 lines, -15 lines 0 comments Download
M chrome_frame/infobars/internal/subclassing_window_with_delegate.h View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
A chrome_frame/pin_module.h View 1 2 3 4 5 1 chunk +21 lines, -0 lines 0 comments Download
A chrome_frame/pin_module.cc View 1 2 3 4 5 1 chunk +49 lines, -0 lines 0 comments Download
A chrome_frame/scoped_initialization_manager.h View 1 2 3 1 chunk +54 lines, -0 lines 0 comments Download
A chrome_frame/scoped_initialization_manager_unittest.cc View 1 2 3 4 5 6 1 chunk +86 lines, -0 lines 0 comments Download
M chrome_frame/utils.h View 1 2 3 4 5 1 chunk +0 lines, -4 lines 0 comments Download
M chrome_frame/utils.cc View 1 2 3 4 5 1 chunk +0 lines, -21 lines 0 comments Download
M chrome_frame/vtable_patch_manager.cc View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download

Messages

Total messages: 16 (0 generated)
grt (UTC plus 2)
7 years, 9 months ago (2013-03-06 03:52:54 UTC) #1
grt
I thought a bit about the asymmetry with the Decommit method, and think its cleaner ...
7 years, 9 months ago (2013-03-06 13:40:59 UTC) #2
robertshield
Thanks for doing this, generally awesome though with a couple of concerns below. https://codereview.chromium.org/12521002/diff/1004/chrome_frame/chrome_frame_reporting.h File ...
7 years, 9 months ago (2013-03-06 13:50:32 UTC) #3
robertshield
Our comments passed in the ether. Feel free to ignore my comment relating to this ...
7 years, 9 months ago (2013-03-06 13:51:57 UTC) #4
grt (UTC plus 2)
ptal. i plan to add tests in a followup patchset before trying to commit. https://codereview.chromium.org/12521002/diff/1004/chrome_frame/chrome_tab.cc ...
7 years, 9 months ago (2013-03-11 15:35:11 UTC) #5
grt (UTC plus 2)
Okay, new approach before I resolve the linking issue: reporting is now shut down when ...
7 years, 9 months ago (2013-03-11 19:42:49 UTC) #6
robertshield
lg, coupla nits https://codereview.chromium.org/12521002/diff/25001/chrome_frame/chrome_tab.cc File chrome_frame/chrome_tab.cc (right): https://codereview.chromium.org/12521002/diff/25001/chrome_frame/chrome_tab.cc#newcode195 chrome_frame/chrome_tab.cc:195: { nit: should the { not ...
7 years, 9 months ago (2013-03-12 03:16:49 UTC) #7
grt (UTC plus 2)
thanks. i'm not sure this is worth it given that the underlying issue is a ...
7 years, 9 months ago (2013-03-12 14:45:51 UTC) #8
robertshield
Code LGTM. Also, I believe this is more correct than what CF does now re. ...
7 years, 9 months ago (2013-03-12 16:06:12 UTC) #9
grt (UTC plus 2)
PTAL. I got rid of the breakpad_handler_dll, and now pinning the module also pins crash ...
7 years, 9 months ago (2013-03-13 15:00:18 UTC) #10
robertshield
lgtm https://codereview.chromium.org/12521002/diff/38001/chrome_frame/chrome_tab.cc File chrome_frame/chrome_tab.cc (right): https://codereview.chromium.org/12521002/diff/38001/chrome_frame/chrome_tab.cc#newcode227 chrome_frame/chrome_tab.cc:227: chrome_frame::ScopedCrashReporting* crash_reporting_; Could make this a scoped_ptr? https://codereview.chromium.org/12521002/diff/38001/chrome_frame/utils.h ...
7 years, 9 months ago (2013-03-13 17:22:27 UTC) #11
grt (UTC plus 2)
PTAL. This is now complete. I've added a unit test in the latest patchset. I ...
7 years, 9 months ago (2013-03-14 14:40:32 UTC) #12
Mark Mentovai
LGTM in breakpad
7 years, 9 months ago (2013-03-14 14:43:48 UTC) #13
robertshield
LGTM the third
7 years, 9 months ago (2013-03-14 15:35:13 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/grt@chromium.org/12521002/63001
7 years, 9 months ago (2013-03-14 15:40:13 UTC) #15
commit-bot: I haz the power
7 years, 9 months ago (2013-03-14 21:52:39 UTC) #16
Message was sent while issue was closed.
Change committed as 188207

Powered by Google App Engine
This is Rietveld 408576698