| Index: components/crash/content/app/crashpad.cc
|
| diff --git a/components/crash/content/app/crashpad.cc b/components/crash/content/app/crashpad.cc
|
| index a0eabba349246f0540a88cf0a5b260f1b3e65c04..494131acb3a54d93e61660a3cc026cb24f449990 100644
|
| --- a/components/crash/content/app/crashpad.cc
|
| +++ b/components/crash/content/app/crashpad.cc
|
| @@ -52,14 +52,22 @@ void ClearCrashKey(const base::StringPiece& key) {
|
| g_simple_string_dictionary->RemoveKey(key.data());
|
| }
|
|
|
| -bool LogMessageHandler(int severity,
|
| - const char* file,
|
| - int line,
|
| - size_t message_start,
|
| - const std::string& string) {
|
| +class LogMessageListener : logging::LogMessageListener {
|
| + void OnMessage(int severity,
|
| + const char* file,
|
| + int line,
|
| + size_t message_start,
|
| + const std::string& string) override;
|
| +};
|
| +
|
| +void LogMessageListener::OnMessage(int severity,
|
| + const char* file,
|
| + int line,
|
| + size_t message_start,
|
| + const std::string& string) {
|
| // Only handle FATAL.
|
| if (severity != logging::LOG_FATAL) {
|
| - return false;
|
| + return;
|
| }
|
|
|
| // In case of an out-of-memory condition, this code could be reentered when
|
| @@ -68,7 +76,7 @@ bool LogMessageHandler(int severity,
|
| // should work.
|
| static bool guarded = false;
|
| if (guarded) {
|
| - return false;
|
| + return;
|
| }
|
| base::AutoReset<bool> guard(&guarded, true);
|
|
|
| @@ -87,7 +95,6 @@ bool LogMessageHandler(int severity,
|
|
|
| // Rather than including the code to force the crash here, allow the caller to
|
| // do it.
|
| - return false;
|
| }
|
|
|
| void DumpWithoutCrashing() {
|
| @@ -164,7 +171,8 @@ void InitializeCrashpadImpl(bool initial_client,
|
| SetCrashKeyValue("pid", base::IntToString(::GetCurrentProcessId()));
|
| #endif
|
|
|
| - logging::SetLogMessageHandler(LogMessageHandler);
|
| + // Intentionally leak the listener.
|
| + new LogMessageListener();
|
|
|
| // If clients called CRASHPAD_SIMULATE_CRASH() instead of
|
| // base::debug::DumpWithoutCrashing(), these dumps would appear as crashes in
|
|
|