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 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
501 } | 501 } |
502 | 502 |
503 void InitCrashReporter(const std::string& process_type_switch) { | 503 void InitCrashReporter(const std::string& process_type_switch) { |
504 const CommandLine& command = *CommandLine::ForCurrentProcess(); | 504 const CommandLine& command = *CommandLine::ForCurrentProcess(); |
505 if (command.HasSwitch(switches::kDisableBreakpad)) | 505 if (command.HasSwitch(switches::kDisableBreakpad)) |
506 return; | 506 return; |
507 | 507 |
508 // Disable the message box for assertions. | 508 // Disable the message box for assertions. |
509 _CrtSetReportMode(_CRT_ASSERT, 0); | 509 _CrtSetReportMode(_CRT_ASSERT, 0); |
510 | 510 |
511 std::wstring process_type = base::ASCIIToWide(process_type_switch); | 511 base::string16 process_type = base::ASCIIToUTF16(process_type_switch); |
512 if (process_type.empty()) | 512 if (process_type.empty()) |
513 process_type = L"browser"; | 513 process_type = L"browser"; |
514 | 514 |
515 wchar_t exe_path[MAX_PATH]; | 515 wchar_t exe_path[MAX_PATH]; |
516 exe_path[0] = 0; | 516 exe_path[0] = 0; |
517 GetModuleFileNameW(NULL, exe_path, MAX_PATH); | 517 GetModuleFileNameW(NULL, exe_path, MAX_PATH); |
518 | 518 |
519 bool is_per_user_install = | 519 bool is_per_user_install = |
520 GetCrashReporterClient()->GetIsPerUserInstall(base::FilePath(exe_path)); | 520 GetCrashReporterClient()->GetIsPerUserInstall(base::FilePath(exe_path)); |
521 | 521 |
(...skipping 26 matching lines...) Expand all Loading... |
548 std::string pipe_name_ascii; | 548 std::string pipe_name_ascii; |
549 if (!env->GetVar(kPipeNameVar, &pipe_name_ascii)) { | 549 if (!env->GetVar(kPipeNameVar, &pipe_name_ascii)) { |
550 // Breakpad is not enabled. Configuration is managed or the user | 550 // Breakpad is not enabled. Configuration is managed or the user |
551 // did not allow Google Update to send crashes. We need to use | 551 // did not allow Google Update to send crashes. We need to use |
552 // our default crash handler instead, but only for the | 552 // our default crash handler instead, but only for the |
553 // browser/service processes. | 553 // browser/service processes. |
554 if (default_filter) | 554 if (default_filter) |
555 InitDefaultCrashCallback(default_filter); | 555 InitDefaultCrashCallback(default_filter); |
556 return; | 556 return; |
557 } | 557 } |
558 std::wstring pipe_name = base::ASCIIToWide(pipe_name_ascii); | 558 base::string16 pipe_name = base::ASCIIToUTF16(pipe_name_ascii); |
559 | 559 |
560 #ifdef _WIN64 | 560 #ifdef _WIN64 |
561 // The protocol for connecting to the out-of-process Breakpad crash | 561 // The protocol for connecting to the out-of-process Breakpad crash |
562 // reporter is different for x86-32 and x86-64: the message sizes | 562 // reporter is different for x86-32 and x86-64: the message sizes |
563 // are different because the message struct contains a pointer. As | 563 // are different because the message struct contains a pointer. As |
564 // a result, there are two different named pipes to connect to. The | 564 // a result, there are two different named pipes to connect to. The |
565 // 64-bit one is distinguished with an "-x64" suffix. | 565 // 64-bit one is distinguished with an "-x64" suffix. |
566 pipe_name += L"-x64"; | 566 pipe_name += L"-x64"; |
567 #endif | 567 #endif |
568 | 568 |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
690 extern "C" void __declspec(dllexport) __cdecl | 690 extern "C" void __declspec(dllexport) __cdecl |
691 UnregisterNonABICompliantCodeRange(void* start) { | 691 UnregisterNonABICompliantCodeRange(void* start) { |
692 ExceptionHandlerRecord* record = | 692 ExceptionHandlerRecord* record = |
693 reinterpret_cast<ExceptionHandlerRecord*>(start); | 693 reinterpret_cast<ExceptionHandlerRecord*>(start); |
694 | 694 |
695 CHECK(RtlDeleteFunctionTable(&record->runtime_function)); | 695 CHECK(RtlDeleteFunctionTable(&record->runtime_function)); |
696 } | 696 } |
697 #endif | 697 #endif |
698 | 698 |
699 } // namespace breakpad | 699 } // namespace breakpad |
OLD | NEW |