Index: handler/mac/crash_report_exception_handler.cc |
diff --git a/handler/mac/crash_report_exception_handler.cc b/handler/mac/crash_report_exception_handler.cc |
index 78710d69b9669a2b44cda53393f0e827abce49de..a54cd0dd2120180420c9c02d6ad0a3d2ca16ee72 100644 |
--- a/handler/mac/crash_report_exception_handler.cc |
+++ b/handler/mac/crash_report_exception_handler.cc |
@@ -110,27 +110,14 @@ kern_return_t CrashReportExceptionHandler::CatchMachException( |
} |
} |
- if (IsExceptionNonfatalResource(exception, code[0], pid)) { |
- // Swallow non-fatal resource exceptions. |
- // |
- // Normally, all EXC_RESOURCE exceptions go to the host-level EXC_RESOURCE |
- // handler, com.apple.ReportCrash.root, which invokes spindump to handle |
- // them. These non-fatal exceptions are never user-visible and are not |
- // currently of interest to Crashpad. Returning success here gets the |
- // process going again quickly, without generating a crash report. |
- // |
- // Alternatively, this could return KERN_FAILURE to let the exception go to |
- // the host-level handler, but there doesn’t seem to be much value in doing |
- // so. |
- ExcServerCopyState( |
- behavior, old_state, old_state_count, new_state, new_state_count); |
- return ExcServerSuccessfulReturnValue(exception, behavior, false); |
- } |
- |
CrashpadInfoClientOptions client_options; |
process_snapshot.GetCrashpadOptions(&client_options); |
- if (client_options.crashpad_handler_behavior != TriState::kDisabled) { |
+ if (client_options.crashpad_handler_behavior != TriState::kDisabled && |
+ !IsExceptionNonfatalResource(exception, code[0], pid)) { |
+ // Non-fatal resource exceptions are never user-visible and are not |
+ // currently of interest to Crashpad. |
+ |
if (!process_snapshot.InitializeException(behavior, |
thread, |
exception, |
@@ -197,10 +184,6 @@ kern_return_t CrashReportExceptionHandler::CatchMachException( |
// processes that haven’t actually crashed, and could result in reports not |
// actually associated with crashes being sent to the operating system |
// vendor. |
- // |
- // Note that normally, EXC_RESOURCE and EXC_GUARD exceptions are sent to the |
- // system-level com.apple.ReportCrash.Root job, and not to the user-level |
- // job that they are forwarded to here. |
base::mac::ScopedMachSendRight |
system_crash_reporter_handler(SystemCrashReporterHandler()); |
if (system_crash_reporter_handler) { |