void ChildProcessProxy::didFinishLaunching(ProcessLauncher*, IPC::Connection::Identifier connectionIdentifier) { ASSERT(!m_connection); m_connection = IPC::Connection::createServerConnection(connectionIdentifier, this, RunLoop::main()); #if PLATFORM(MAC) m_connection->setShouldCloseConnectionOnMachExceptions(); #endif for (size_t i = 0; i < m_pendingMessages.size(); ++i) { std::unique_ptr<IPC::MessageEncoder> message = std::move(m_pendingMessages[i].first); unsigned messageSendFlags = m_pendingMessages[i].second; m_connection->sendMessage(std::move(message), messageSendFlags); } connectionWillOpen(m_connection.get()); m_connection->open(); m_pendingMessages.clear(); }
void ChildProcessProxy::didFinishLaunching(ProcessLauncher*, CoreIPC::Connection::Identifier connectionIdentifier) { ASSERT(!m_connection); m_connection = CoreIPC::Connection::createServerConnection(connectionIdentifier, this, RunLoop::main()); #if OS(DARWIN) m_connection->setShouldCloseConnectionOnMachExceptions(); #elif PLATFORM(QT) && !OS(WINDOWS) m_connection->setShouldCloseConnectionOnProcessTermination(processIdentifier()); #endif connectionWillOpen(m_connection.get()); m_connection->open(); for (size_t i = 0; i < m_pendingMessages.size(); ++i) { OwnPtr<CoreIPC::MessageEncoder> message = m_pendingMessages[i].first.release(); unsigned messageSendFlags = m_pendingMessages[i].second; m_connection->sendMessage(message.release(), messageSendFlags); } m_pendingMessages.clear(); }
void ChildProcessProxy::didFinishLaunching(ProcessLauncher*, IPC::Connection::Identifier connectionIdentifier) { ASSERT(!m_connection); if (IPC::Connection::identifierIsNull(connectionIdentifier)) return; m_connection = IPC::Connection::createServerConnection(connectionIdentifier, *this); #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED <= 101000 m_connection->setShouldCloseConnectionOnMachExceptions(); #endif connectionWillOpen(*m_connection); m_connection->open(); for (size_t i = 0; i < m_pendingMessages.size(); ++i) { std::unique_ptr<IPC::Encoder> message = WTFMove(m_pendingMessages[i].first); OptionSet<IPC::SendOption> sendOptions = m_pendingMessages[i].second; m_connection->sendMessage(WTFMove(message), sendOptions); } m_pendingMessages.clear(); }