Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #include "chrome/app/breakpad_win.h" | 5 #include "chrome/app/breakpad_win.h" |
| 6 | 6 |
| 7 #include <windows.h> | 7 #include <windows.h> |
| 8 #include <shellapi.h> | 8 #include <shellapi.h> |
| 9 #include <tchar.h> | 9 #include <tchar.h> |
| 10 | 10 |
| (...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 431 // If the UI layout is right-to-left, we need to pass the appropriate MB_XXX | 431 // If the UI layout is right-to-left, we need to pass the appropriate MB_XXX |
| 432 // flags so that an RTL message box is displayed. | 432 // flags so that an RTL message box is displayed. |
| 433 UINT flags = MB_OKCANCEL | MB_ICONWARNING; | 433 UINT flags = MB_OKCANCEL | MB_ICONWARNING; |
| 434 if (dlg_strings[2] == ASCIIToWide(env_vars::kRtlLocale)) | 434 if (dlg_strings[2] == ASCIIToWide(env_vars::kRtlLocale)) |
| 435 flags |= MB_RIGHT | MB_RTLREADING; | 435 flags |= MB_RIGHT | MB_RTLREADING; |
| 436 | 436 |
| 437 return WrapMessageBoxWithSEH(dlg_strings[1].c_str(), dlg_strings[0].c_str(), | 437 return WrapMessageBoxWithSEH(dlg_strings[1].c_str(), dlg_strings[0].c_str(), |
| 438 flags, exit_now); | 438 flags, exit_now); |
| 439 } | 439 } |
| 440 | 440 |
| 441 // Crashes the process after generating a dump for the provided exception. Note | |
| 442 // that the crash reporter should be initialized before calling this function | |
| 443 // for it to do anything. | |
|
cpu_(ooo_6.6-7.5)
2011/03/16 00:09:22
should it be:
__declspec(dllexport) int __cdecl Cr
rvargas (doing something else)
2011/03/16 00:25:07
Extern "C" is fine.
On 2011/03/16 00:09:22, cpu w
| |
| 444 extern "C" int __declspec(dllexport) CrashForException( | |
| 445 EXCEPTION_POINTERS* info) { | |
| 446 if (g_breakpad) { | |
| 447 g_breakpad->WriteMinidumpForException(info); | |
| 448 ::ExitProcess(ResultCodes::KILLED); | |
| 449 } | |
| 450 return EXCEPTION_CONTINUE_SEARCH; | |
| 451 } | |
| 452 | |
| 441 // Determine whether configuration management allows loading the crash reporter. | 453 // Determine whether configuration management allows loading the crash reporter. |
| 442 // Since the configuration management infrastructure is not initialized at this | 454 // Since the configuration management infrastructure is not initialized at this |
| 443 // point, we read the corresponding registry key directly. The return status | 455 // point, we read the corresponding registry key directly. The return status |
| 444 // indicates whether policy data was successfully read. If it is true, |result| | 456 // indicates whether policy data was successfully read. If it is true, |result| |
| 445 // contains the value set by policy. | 457 // contains the value set by policy. |
| 446 static bool MetricsReportingControlledByPolicy(bool* result) { | 458 static bool MetricsReportingControlledByPolicy(bool* result) { |
| 447 std::wstring key_name = UTF8ToWide(policy::key::kMetricsReportingEnabled); | 459 std::wstring key_name = UTF8ToWide(policy::key::kMetricsReportingEnabled); |
| 448 DWORD value = 0; | 460 DWORD value = 0; |
| 449 // TODO(joshia): why hkcu_policy_key opens HKEY_LOCAL_MACHINE? | 461 // TODO(joshia): why hkcu_policy_key opens HKEY_LOCAL_MACHINE? |
| 450 base::win::RegKey hkcu_policy_key(HKEY_LOCAL_MACHINE, | 462 base::win::RegKey hkcu_policy_key(HKEY_LOCAL_MACHINE, |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 602 if (QueueUserWorkItem( | 614 if (QueueUserWorkItem( |
| 603 &InitCrashReporterThread, | 615 &InitCrashReporterThread, |
| 604 info, | 616 info, |
| 605 WT_EXECUTELONGFUNCTION) == 0) { | 617 WT_EXECUTELONGFUNCTION) == 0) { |
| 606 // We failed to queue to the worker pool, initialize in this thread. | 618 // We failed to queue to the worker pool, initialize in this thread. |
| 607 InitCrashReporterThread(info); | 619 InitCrashReporterThread(info); |
| 608 } | 620 } |
| 609 } | 621 } |
| 610 } | 622 } |
| 611 } | 623 } |
| OLD | NEW |