| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "components/crash/app/breakpad_win.h" | 5 #include "components/crash/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 #include <userenv.h> | 10 #include <userenv.h> |
| (...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 534 GetCrashReporterClient()->GetIsPerUserInstall(base::FilePath(exe_path)); | 534 GetCrashReporterClient()->GetIsPerUserInstall(base::FilePath(exe_path)); |
| 535 | 535 |
| 536 // This is intentionally leaked. | 536 // This is intentionally leaked. |
| 537 CrashKeysWin* keeper = new CrashKeysWin(); | 537 CrashKeysWin* keeper = new CrashKeysWin(); |
| 538 | 538 |
| 539 google_breakpad::CustomClientInfo* custom_info = | 539 google_breakpad::CustomClientInfo* custom_info = |
| 540 keeper->GetCustomInfo(exe_path, process_type, GetProfileType(), | 540 keeper->GetCustomInfo(exe_path, process_type, GetProfileType(), |
| 541 base::CommandLine::ForCurrentProcess(), | 541 base::CommandLine::ForCurrentProcess(), |
| 542 GetCrashReporterClient()); | 542 GetCrashReporterClient()); |
| 543 | 543 |
| 544 #if !defined(COMPONENT_BUILD) | |
| 545 // chrome/common/child_process_logging_win.cc registers crash keys for | |
| 546 // chrome.dll. In a component build, that is sufficient as chrome.dll and | |
| 547 // chrome.exe share a copy of base (in base.dll). | |
| 548 // In a static build, the EXE must separately initialize the crash keys | |
| 549 // configuration as it has its own statically linked copy of base. | |
| 550 base::debug::SetCrashKeyReportingFunctions(&SetCrashKeyValueForBaseDebug, | 544 base::debug::SetCrashKeyReportingFunctions(&SetCrashKeyValueForBaseDebug, |
| 551 &ClearCrashKeyForBaseDebug); | 545 &ClearCrashKeyForBaseDebug); |
| 552 GetCrashReporterClient()->RegisterCrashKeys(); | |
| 553 #endif | |
| 554 | 546 |
| 555 google_breakpad::ExceptionHandler::MinidumpCallback callback = NULL; | 547 google_breakpad::ExceptionHandler::MinidumpCallback callback = NULL; |
| 556 LPTOP_LEVEL_EXCEPTION_FILTER default_filter = NULL; | 548 LPTOP_LEVEL_EXCEPTION_FILTER default_filter = NULL; |
| 557 // We install the post-dump callback only for the browser and service | 549 // We install the post-dump callback only for the browser and service |
| 558 // processes. It spawns a new browser/service process. | 550 // processes. It spawns a new browser/service process. |
| 559 if (process_type == L"browser") { | 551 if (process_type == L"browser") { |
| 560 callback = &DumpDoneCallback; | 552 callback = &DumpDoneCallback; |
| 561 default_filter = &ChromeExceptionFilter; | 553 default_filter = &ChromeExceptionFilter; |
| 562 } else if (process_type == L"service") { | 554 } else if (process_type == L"service") { |
| 563 callback = &DumpDoneCallback; | 555 callback = &DumpDoneCallback; |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 724 extern "C" void __declspec(dllexport) __cdecl | 716 extern "C" void __declspec(dllexport) __cdecl |
| 725 UnregisterNonABICompliantCodeRange(void* start) { | 717 UnregisterNonABICompliantCodeRange(void* start) { |
| 726 ExceptionHandlerRecord* record = | 718 ExceptionHandlerRecord* record = |
| 727 reinterpret_cast<ExceptionHandlerRecord*>(start); | 719 reinterpret_cast<ExceptionHandlerRecord*>(start); |
| 728 | 720 |
| 729 CHECK(RtlDeleteFunctionTable(&record->runtime_function)); | 721 CHECK(RtlDeleteFunctionTable(&record->runtime_function)); |
| 730 } | 722 } |
| 731 #endif | 723 #endif |
| 732 | 724 |
| 733 } // namespace breakpad | 725 } // namespace breakpad |
| OLD | NEW |