[webkit-changes] [WebKit/WebKit] be5f7e: IPC::Connection is not constructible without IPC::...

Kimmo Kinnunen noreply at github.com
Wed Sep 14 05:46:55 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: be5f7ec6a5a141d43062c3e94b43670c7f1f7817
      https://github.com/WebKit/WebKit/commit/be5f7ec6a5a141d43062c3e94b43670c7f1f7817
  Author: Kimmo Kinnunen <kkinnunen at apple.com>
  Date:   2022-09-14 (Wed, 14 Sep 2022)

  Changed paths:
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
    M Source/WebKit/Platform/IPC/Connection.cpp
    M Source/WebKit/Platform/IPC/Connection.h
    M Source/WebKit/Platform/IPC/StreamClientConnection.cpp
    M Source/WebKit/Platform/IPC/StreamServerConnection.cpp
    M Source/WebKit/Platform/IPC/cocoa/ConnectionCocoa.mm
    M Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp
    M Source/WebKit/Platform/IPC/win/ConnectionWin.cpp
    M Source/WebKit/Shared/AuxiliaryProcess.cpp
    M Source/WebKit/Shared/IPCConnectionTester.cpp
    M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp
    M Source/WebKit/UIProcess/WebGeolocationManagerProxy.cpp
    M Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp
    M Source/WebKit/WebProcess/Inspector/WebInspector.cpp
    M Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp
    M Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp
    M Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp
    M Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp

  Log Message:
  -----------
  IPC::Connection is not constructible without IPC::Client
https://bugs.webkit.org/show_bug.cgi?id=244836
rdar://problem/99591389

Reviewed by Chris Dumez.

Move the IPC::Client from the constructor to the
IPC::Connection::open() parameter.

The IPC::Client is only invoked between open() and invalidate() anyway,
so there is no functional change.

Solves the problem where in order to pass IPC::Connection resources, the
ports and sockets, one must pass them via equivalent but buggy
IPC::Connection::Identifier instances. In later patches, Connection
can be simplified by removing IPC::Connection::Identifier.

Adds few tests testing the most obvious existing open()/invalidate() API
contracts.

* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
(WebKit::m_schemeRegistry):
* Source/WebKit/Platform/IPC/Connection.cpp:
(IPC::Connection::createServerConnection):
(IPC::Connection::createClientConnection):
(IPC::Connection::Connection):
(IPC::Connection::invalidate):
(IPC::Connection::connectionDidClose):
(IPC::Connection::dispatchSyncMessage):
(IPC::Connection::dispatchDidReceiveInvalidMessage):
(IPC::Connection::dispatchMessage):
* Source/WebKit/Platform/IPC/Connection.h:
(IPC::Connection::client const):
(IPC::Connection::waitForAndDispatchImmediately):
* Source/WebKit/Platform/IPC/StreamClientConnection.cpp:
(IPC::StreamClientConnection::createWithDedicatedConnection):
(IPC::StreamClientConnection::open):
* Source/WebKit/Platform/IPC/StreamServerConnection.cpp:
(IPC::StreamServerConnection::createWithDedicatedConnection):
(IPC::StreamServerConnection::open):
* Source/WebKit/Platform/IPC/cocoa/ConnectionCocoa.mm:
(IPC::Connection::open):
(IPC::Connection::platformCanSendOutgoingMessages const):
* Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::open):
* Source/WebKit/Platform/IPC/win/ConnectionWin.cpp:
(IPC::Connection::open):
* Source/WebKit/Shared/AuxiliaryProcess.cpp:
(WebKit::AuxiliaryProcess::initialize):
* Source/WebKit/Shared/IPCConnectionTester.cpp:
(WebKit::IPCConnectionTester::IPCConnectionTester):
(WebKit::IPCConnectionTester::initialize):
* Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::didFinishLaunching):
* Source/WebKit/UIProcess/WebGeolocationManagerProxy.cpp:
(WebKit::connectionToWebProcessProxy):
* Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::GPUProcessConnection):
* Source/WebKit/WebProcess/Inspector/WebInspector.cpp:
(WebKit::WebInspector::setFrontendConnection):
* Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::updateConnection):
* Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::NetworkProcessConnection):
* Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp:
(WebKit::IPCTestingAPI::JSIPCConnection::JSIPCConnection):
(WebKit::IPCTestingAPI::JSIPCConnection::open):
* Tools/TestWebKitAPI/Tests/IPC/ConnectionTests.cpp:
(TestWebKitAPI::TEST_F):
(TestWebKitAPI::PrintTo):
(TestWebKitAPI::OpenedConnectionTest::serverIsA const):
(TestWebKitAPI::OpenedConnectionTest::SetUp):
(TestWebKitAPI::OpenedConnectionTest::TearDown):
(TestWebKitAPI::OpenedConnectionTest::openA):
(TestWebKitAPI::OpenedConnectionTest::openB):
(TestWebKitAPI::OpenedConnectionTest::openBoth):
(TestWebKitAPI::OpenedConnectionTest::a):
(TestWebKitAPI::OpenedConnectionTest::aClient):
(TestWebKitAPI::OpenedConnectionTest::b):
(TestWebKitAPI::OpenedConnectionTest::bClient):
(TestWebKitAPI::OpenedConnectionTest::deleteA):
(TestWebKitAPI::OpenedConnectionTest::deleteB):
(TestWebKitAPI::TEST_P):

Canonical link: https://commits.webkit.org/254473@main




More information about the webkit-changes mailing list