[webkit-changes] [WebKit/WebKit] cc46e2: Disable Web Transport-related IPC endpoints when t...

Chris Dumez noreply at github.com
Thu Feb 22 21:22:05 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: cc46e22d520a8fb84cbe314537d6297fffb485c4
      https://github.com/WebKit/WebKit/commit/cc46e22d520a8fb84cbe314537d6297fffb485c4
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2024-02-22 (Thu, 22 Feb 2024)

  Changed paths:
    M Source/WebKit/CMakeLists.txt
    M Source/WebKit/DerivedSources-input.xcfilelist
    M Source/WebKit/DerivedSources.make
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in
    M Source/WebKit/Shared/NetworkProcessConnectionParameters.h
    M Source/WebKit/Shared/NetworkProcessConnectionParameters.serialization.in
    A Source/WebKit/Shared/NetworkProcessPreferencesForWebProcess.h
    A Source/WebKit/Shared/NetworkProcessPreferencesForWebProcess.serialization.in
    M Source/WebKit/UIProcess/API/APIPageConfiguration.cpp
    M Source/WebKit/UIProcess/API/APIPageConfiguration.h
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
    M Source/WebKit/UIProcess/SuspendedPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebProcessCache.cpp
    M Source/WebKit/UIProcess/WebProcessPool.cpp
    M Source/WebKit/UIProcess/WebProcessPool.h
    M Source/WebKit/UIProcess/WebProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp
    M Source/WebKit/WebProcess/Network/WebTransportSession.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebProcess.cpp
    M Source/WebKit/WebProcess/WebProcess.h

  Log Message:
  -----------
  Disable Web Transport-related IPC endpoints when the feature is disabled at runtime
https://bugs.webkit.org/show_bug.cgi?id=269742
rdar://122108912

Reviewed by Alex Christensen.

Follow the same pattern as for the GPUProcess, introduce a
NetworkProcessPreferencesForWebProcess struct which contains the set of
WebProcess preferences the NetworkProcess needs to know about (for now
"isWebTransportEnabled"). These preferences are passed to the network
process when the WebProcess initiates the connection to the network
process.

The NetworkProcess can then use these preferences to decide whether
or not to enable particular IPC endpoints with the WebProcess, using
[EnabledIf] in messages.in.

* Source/WebKit/CMakeLists.txt:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::m_preferencesForWebProcess):
(WebKit::m_allowTestOnlyIPC): Deleted.
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:
(WebKit::NetworkConnectionToWebProcess::isWebTransportEnabled const):
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* Source/WebKit/Shared/NetworkProcessConnectionParameters.h:
* Source/WebKit/Shared/NetworkProcessConnectionParameters.serialization.in:
* Source/WebKit/Shared/NetworkProcessPreferencesForWebProcess.h: Copied from Source/WebKit/Shared/NetworkProcessConnectionParameters.h.
* Source/WebKit/Shared/NetworkProcessPreferencesForWebProcess.serialization.in: Copied from Source/WebKit/Shared/NetworkProcessConnectionParameters.serialization.in.
* Source/WebKit/UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::preferences const):
(API::PageConfiguration::preferencesForNetworkProcess const):
(API::PageConfiguration::preferences): Deleted.
* Source/WebKit/UIProcess/API/APIPageConfiguration.h:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::getNetworkProcessConnection):
* Source/WebKit/UIProcess/SuspendedPageProxy.cpp:
(WebKit::SuspendedPageProxy::findReusableSuspendedPageProcess):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::hasSameGPUAndNetworkProcessPreferencesAs const):
(WebKit::WebPageProxy::launchProcess):
(WebKit::WebPageProxy::preferencesForNetworkProcess const):
(WebKit::WebPageProxy::hasSameGPUProcessPreferencesAs const): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::takeProcess):
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::processForNavigationInternal):
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::initializePreferencesForGPUAndNetworkProcesses):
(WebKit::WebProcessProxy::hasSameGPUAndNetworkProcessPreferencesAs const):
(WebKit::WebProcessProxy::addProvisionalPageProxy):
(WebKit::WebProcessProxy::addRemotePageProxy):
(WebKit::WebProcessProxy::addExistingWebPage):
(WebKit::WebProcessProxy::initializePreferencesForGPUProcess): Deleted.
(WebKit::WebProcessProxy::hasSameGPUProcessPreferencesAs const): Deleted.
* Source/WebKit/UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::preferencesForNetworkProcess const):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
* Source/WebKit/WebProcess/Network/WebTransportSession.cpp:
(WebKit::WebTransportSession::WebTransportSession):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::isWebTransportEnabled const):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::updateIsWebTransportEnabled):
(WebKit::WebProcess::createWebPage):
(WebKit::WebProcess::removeWebPage):
* Source/WebKit/WebProcess/WebProcess.h:
(WebKit::WebProcess::isWebTransportEnabled const):

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list