Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 15833c2f7cc627678879ff0ef206e481a0d2a605
https://github.com/WebKit/WebKit/commit/15833c2f7cc627678879ff0ef206e481a0d2a605
Author: Youenn Fablet <[email protected]>
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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes