[webkit-changes] [WebKit/WebKit] 15833c: Allow WebRTC UDP traffic to use interfaces already...
youennf
noreply at github.com
Thu Jun 22 09:27:45 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 15833c2f7cc627678879ff0ef206e481a0d2a605
https://github.com/WebKit/WebKit/commit/15833c2f7cc627678879ff0ef206e481a0d2a605
Author: Youenn Fablet <youennf at gmail.com>
Date: 2023-06-22 (Thu, 22 Jun 2023)
Changed paths:
M Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp
M Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.cpp
M Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.h
M Source/WebKit/Configurations/WebKit.xcconfig
M Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.cpp
M Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.h
M Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.messages.in
M Source/WebKit/NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.h
M Source/WebKit/NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm
M Source/WebKit/Platform/spi/Cocoa/NWSPI.h
M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetwork.cpp
M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetwork.h
M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetwork.messages.in
M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.cpp
M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.h
M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCProvider.cpp
M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCProvider.h
M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocket.cpp
M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocket.h
M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp
M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocketFactory.h
M Source/WebKit/WebProcess/Network/webrtc/WebRTCMonitor.cpp
M Source/WebKit/WebProcess/Network/webrtc/WebRTCMonitor.h
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
Log Message:
-----------
Allow WebRTC UDP traffic to use interfaces already used by TCP traffic
https://bugs.webkit.org/show_bug.cgi?id=258278
rdar://problem/111000448
Reviewed by Eric Carlson.
Detect WebRTC TCP connection interface to TCP TURN servers.
Enable these interfaces for ICE as a heuristic to detect partial duplex VPNs.
These interfaces will only be used in case mDNS candidates are not used (i.e. when getUserMedia access is granted).
To support this, we are now sending all interfaces to WebProcess and are doing the filtering there instead of within network process.
This ability is behind an internal feature flag, off by default for now.
Manually tested.
* Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp:
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::setConfiguration):
* Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
(WebCore::LibWebRTCProvider::enableEnumeratingVisibleNetworkInterfaces):
(WebCore::LibWebRTCProvider::createSocketFactory):
* Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCProvider.h:
* Source/WebKit/Configurations/WebKit.xcconfig:
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.h:
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:
(WebKit::NetworkRTCTCPSocketCocoa::NetworkRTCTCPSocketCocoa):
* Source/WebKit/Platform/spi/Cocoa/NWSPI.h:
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetwork.cpp:
(WebKit::LibWebRTCNetwork::signalUsedInterface):
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetwork.h:
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetwork.messages.in:
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.cpp:
(WebKit::LibWebRTCNetworkManager::signalUsedInterface):
(WebKit::LibWebRTCNetworkManager::setEnumeratingAllNetworkInterfacesEnabled):
(WebKit::LibWebRTCNetworkManager::setEnumeratingVisibleNetworkInterfacesEnabled):
(WebKit::LibWebRTCNetworkManager::networksChanged):
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.h:
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
(WebKit::LibWebRTCProvider::createPeerConnection):
(WebKit::RTCSocketFactory::RTCSocketFactory):
(WebKit::RTCSocketFactory::CreateUdpSocket):
(WebKit::RTCSocketFactory::CreateClientTcpSocket):
(WebKit::RTCSocketFactory::suspend):
(WebKit::RTCSocketFactory::resume):
(WebKit::LibWebRTCProvider::createSocketFactory):
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCProvider.h:
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocket.cpp:
(WebKit::LibWebRTCSocket::LibWebRTCSocket):
(WebKit::LibWebRTCSocket::signalClose):
(WebKit::LibWebRTCSocket::signalUsedInterface):
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocket.h:
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
(WebKit::LibWebRTCSocketFactory::createUdpSocket):
(WebKit::LibWebRTCSocketFactory::createClientTcpSocket):
(WebKit::LibWebRTCSocketFactory::createNewConnectionSocket):
(WebKit::LibWebRTCSocketFactory::forSocketInGroup):
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:
* Source/WebKit/WebProcess/Network/webrtc/WebRTCMonitor.cpp:
(WebKit::WebRTCMonitor::startUpdating):
(WebKit::WebRTCMonitor::networksChanged):
(WebKit::WebRTCMonitor::setEnumeratingAllNetworkInterfacesEnabled): Deleted.
* Source/WebKit/WebProcess/Network/webrtc/WebRTCMonitor.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::m_appHighlightsVisible):
Canonical link: https://commits.webkit.org/265407@main
More information about the webkit-changes
mailing list