OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // This module contains the necessary code to register the Breakpad exception | 5 // This module contains the necessary code to register the Breakpad exception |
6 // handler. This implementation is based on Chrome/Crome Frame crash reporitng | 6 // handler. This implementation is based on Chrome/Crome Frame crash reporitng |
7 // code. See: | 7 // code. See: |
8 // - src/chrome/app/breakpad_win.cc | 8 // - src/chrome/app/breakpad_win.cc |
9 // - src/chrome_frame/crash_server_init.cc | 9 // - src/chrome_frame/crash_server_init.cc |
10 // - src/chrome/installer/setup/setup_main.cc | 10 // - src/chrome/installer/setup/setup_main.cc |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 public: | 57 public: |
58 BreakpadWin(); | 58 BreakpadWin(); |
59 ~BreakpadWin(); | 59 ~BreakpadWin(); |
60 | 60 |
61 static BreakpadWin& GetInstance(); | 61 static BreakpadWin& GetInstance(); |
62 | 62 |
63 private: | 63 private: |
64 // Returns the Custom information to be used for crash reporting. | 64 // Returns the Custom information to be used for crash reporting. |
65 google_breakpad::CustomClientInfo* GetCustomInfo(); | 65 google_breakpad::CustomClientInfo* GetCustomInfo(); |
66 | 66 |
67 // Checks whether crash dump collection is allowed by the user. | |
68 bool IsCrashReportingEnabled(); | |
69 | |
70 // This callback is executed when the process has crashed and *before* | 67 // This callback is executed when the process has crashed and *before* |
71 // the crash dump is created. To prevent duplicate crash reports we | 68 // the crash dump is created. To prevent duplicate crash reports we |
72 // make every thread calling this method, except the very first one, | 69 // make every thread calling this method, except the very first one, |
73 // go to sleep. | 70 // go to sleep. |
74 static bool OnExceptionCallback(void*, EXCEPTION_POINTERS*, | 71 static bool OnExceptionCallback(void*, EXCEPTION_POINTERS*, |
75 MDRawAssertionInfo*); | 72 MDRawAssertionInfo*); |
76 | 73 |
77 // Crashes the process after generating a dump for the provided exception. | 74 // Crashes the process after generating a dump for the provided exception. |
78 // Note that the crash reporter should be initialized before calling this | 75 // Note that the crash reporter should be initialized before calling this |
79 // function for it to do anything. | 76 // function for it to do anything. |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 } | 201 } |
205 | 202 |
206 void InitializeCrashReportingForTest(const wchar_t* pipe_name) { | 203 void InitializeCrashReportingForTest(const wchar_t* pipe_name) { |
207 BreakpadWin::pipe_name_ = pipe_name; | 204 BreakpadWin::pipe_name_ = pipe_name; |
208 | 205 |
209 // Touch the object to make sure it is initialized. | 206 // Touch the object to make sure it is initialized. |
210 BreakpadWin::GetInstance(); | 207 BreakpadWin::GetInstance(); |
211 } | 208 } |
212 | 209 |
213 } // namespace remoting | 210 } // namespace remoting |
OLD | NEW |