From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 4 Jun 2019 11:30:12 +0900 Subject: crashpad_pid_check.patch When both browser process and renderer process are connecting to the pipe, the API may return the PID of browser process as real_pid, which is different from the PID of renderer process. This is caused by the crashReporter getting started after the sanbox, after we redesign crashReporter's API to make it alwasy start before the sanbox, we can remove this patch. See following links for more: https://github.com/electron/electron/pull/18483#discussion_r292703588 https://github.com/electron/electron/pull/18483#issuecomment-501090683 diff --git a/third_party/crashpad/crashpad/util/win/exception_handler_server.cc b/third_party/crashpad/crashpad/util/win/exception_handler_server.cc index a520c720ceb0152d11acb3acac02e0852a84d786..dd237a7b84350e3c254719630d4f5f9da17bb1aa 100644 --- a/third_party/crashpad/crashpad/util/win/exception_handler_server.cc +++ b/third_party/crashpad/crashpad/util/win/exception_handler_server.cc @@ -444,9 +444,16 @@ bool ExceptionHandlerServer::ServiceClientConnection( DWORD real_pid = 0; if (get_named_pipe_client_process_id(service_context.pipe(), &real_pid) && message.registration.client_process_id != real_pid) { + // Electron: When both browser process and renderer process are connecting + // to the pipe, the API may return the PID of browser process as real_pid, + // which is different from the PID of renderer process. + // + // I don't understand why Chromium does not have this issue. +#if 0 LOG(ERROR) << "forged client pid, real pid: " << real_pid << ", got: " << message.registration.client_process_id; return false; +#endif } }