diff --git a/patches/chromium/feat_add_data_parameter_to_processsingleton.patch b/patches/chromium/feat_add_data_parameter_to_processsingleton.patch index f969439c2d..33a8123ec8 100644 --- a/patches/chromium/feat_add_data_parameter_to_processsingleton.patch +++ b/patches/chromium/feat_add_data_parameter_to_processsingleton.patch @@ -65,10 +65,10 @@ index 2748dd196fe1f56357348a204e24f0b8a28b97dd..5800dd00b47c657d9e6766f3fc5a3065 #if BUILDFLAG(IS_WIN) bool EscapeVirtualization(const base::FilePath& user_data_dir); diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc -index 08cbe32a258bf478f1da0a07064d3e9ef14c44a5..b9f2a43cb90fac4b031a4b4da38d6435a50990d2 100644 +index 12d50032ed589c861f73fa395156e4a6583f852d..7111c4489177d26d69a21aa45fe797cbf9f114e9 100644 --- a/chrome/browser/process_singleton_posix.cc +++ b/chrome/browser/process_singleton_posix.cc -@@ -614,6 +614,7 @@ class ProcessSingleton::LinuxWatcher +@@ -619,6 +619,7 @@ class ProcessSingleton::LinuxWatcher // |reader| is for sending back ACK message. void HandleMessage(const std::string& current_dir, const std::vector& argv, @@ -76,7 +76,7 @@ index 08cbe32a258bf478f1da0a07064d3e9ef14c44a5..b9f2a43cb90fac4b031a4b4da38d6435 SocketReader* reader); // Called when the ProcessSingleton that owns this class is about to be -@@ -673,13 +674,17 @@ void ProcessSingleton::LinuxWatcher::StartListening(int socket) { +@@ -678,13 +679,17 @@ void ProcessSingleton::LinuxWatcher::StartListening(int socket) { } void ProcessSingleton::LinuxWatcher::HandleMessage( @@ -94,19 +94,19 @@ index 08cbe32a258bf478f1da0a07064d3e9ef14c44a5..b9f2a43cb90fac4b031a4b4da38d6435 + base::FilePath(current_dir), + std::move(additional_data))) { // Send back "ACK" message to prevent the client process from starting up. - reader->FinishWithACK(kACKToken, std::size(kACKToken) - 1); + reader->FinishWithACK(kACKToken); } else { -@@ -727,7 +732,8 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: - } - } +@@ -714,7 +719,8 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: + bytes_read_ += ReadFromSocketWithTimeout( + fd_, base::span(buf_).subspan(bytes_read_), base::Seconds(0)); - // Validate the message. The shortest message is kStartToken\0x\0x -+ // Validate the message. The shortest message kStartToken\0\00 ++ // Validate the message. The shortest message is kStartToken\0\00 + // The shortest message with additional data is kStartToken\0\00\00\0. - const size_t kMinMessageLength = std::size(kStartToken) + 4; + const size_t kMinMessageLength = kStartToken.length() + 4; if (bytes_read_ < kMinMessageLength) { buf_[bytes_read_] = 0; -@@ -757,10 +763,28 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: +@@ -745,10 +751,28 @@ void ProcessSingleton::LinuxWatcher::SocketReader:: tokens.erase(tokens.begin()); tokens.erase(tokens.begin()); @@ -136,7 +136,7 @@ index 08cbe32a258bf478f1da0a07064d3e9ef14c44a5..b9f2a43cb90fac4b031a4b4da38d6435 fd_watch_controller_.reset(); // LinuxWatcher::HandleMessage() is in charge of destroying this SocketReader -@@ -789,8 +813,10 @@ void ProcessSingleton::LinuxWatcher::SocketReader::FinishWithACK( +@@ -777,8 +801,10 @@ void ProcessSingleton::LinuxWatcher::SocketReader::FinishWithACK( // ProcessSingleton::ProcessSingleton( const base::FilePath& user_data_dir, @@ -147,7 +147,7 @@ index 08cbe32a258bf478f1da0a07064d3e9ef14c44a5..b9f2a43cb90fac4b031a4b4da38d6435 current_pid_(base::GetCurrentProcId()) { socket_path_ = user_data_dir.Append(chrome::kSingletonSocketFilename); lock_path_ = user_data_dir.Append(chrome::kSingletonLockFilename); -@@ -911,7 +937,8 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( +@@ -899,7 +925,8 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( sizeof(socket_timeout)); // Found another process, prepare our command line @@ -157,7 +157,7 @@ index 08cbe32a258bf478f1da0a07064d3e9ef14c44a5..b9f2a43cb90fac4b031a4b4da38d6435 std::string to_send(kStartToken); to_send.push_back(kTokenDelimiter); -@@ -921,11 +948,21 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( +@@ -909,11 +936,21 @@ ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcessWithTimeout( to_send.append(current_dir.value()); const std::vector& argv = cmd_line.argv(); @@ -177,7 +177,7 @@ index 08cbe32a258bf478f1da0a07064d3e9ef14c44a5..b9f2a43cb90fac4b031a4b4da38d6435 + } + // Send the message - if (!WriteToSocket(socket.fd(), to_send.data(), to_send.length())) { + if (!WriteToSocket(socket.fd(), to_send)) { // Try to kill the other process, because it might have been dead. diff --git a/chrome/browser/process_singleton_win.cc b/chrome/browser/process_singleton_win.cc index ae659d84a5ae2f2e87ce288477506575f8d86839..d93c7e8487ab1a2bbb5f56f2ca44868f947e6bfc 100644