Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b5877b229ffa2ae13da637a0fd8910e30ffafc29
https://github.com/WebKit/WebKit/commit/b5877b229ffa2ae13da637a0fd8910e30ffafc29
Author: Youenn Fablet <[email protected]>
Date: 2024-07-01 (Mon, 01 Jul 2024)
Changed paths:
A LayoutTests/http/wpt/webrtc/resources/cacheable-iframe.py
A LayoutTests/http/wpt/webrtc/rtcNetworkInterface-expected.txt
A LayoutTests/http/wpt/webrtc/rtcNetworkInterface.html
M LayoutTests/platform/glib/TestExpectations
M Source/WebCore/Modules/mediastream/RTCNetworkManager.h
M Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h
M Source/WebCore/testing/Internals.cpp
M Source/WebCore/testing/Internals.h
M Source/WebCore/testing/Internals.idl
M Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp
M Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.h
M Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.messages.in
M Source/WebKit/NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.h
M Source/WebKit/NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm
M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.cpp
M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.h
Log Message:
-----------
Allow WebRTC network traffic on the interface used to load the document main
resource even if it is not the default interface
https://bugs.webkit.org/show_bug.cgi?id=275986
rdar://problem/130748643
Reviewed by Eric Carlson.
With split VPN, HTTP trafic may go through either default interface or the VPN
interface.
But WebRTC UDP traffic will only go through the default interface as we do not
enumerate all interfaces even post getUserMedia.
To improve the support of split VPN, we use the following heuristic:
- We continue allow using the default network interface.
- We get the interface that would be used to create a TCP connection to the
document's host.
In case of no VPN, or full VPN, the same interface will be used.
In case of split VPN, two interfaces may be used.
This only happens post getUserMedia and is controlled by
EnumeratingVisibleNetworkInterfacesEnabled flag.
* LayoutTests/http/wpt/webrtc/resources/cacheable-iframe.py: Added.
(main):
* LayoutTests/http/wpt/webrtc/rtcNetworkInterface-expected.txt: Added.
* LayoutTests/http/wpt/webrtc/rtcNetworkInterface.html: Added.
* LayoutTests/platform/glib/TestExpectations:
* Source/WebCore/Modules/mediastream/RTCNetworkManager.h:
* Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h:
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::rtcNetworkInterfaceName const):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::getInterfaceName):
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.h:
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.h:
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:
(WebKit::createNWConnection):
(WebKit::NetworkRTCTCPSocketCocoa::NetworkRTCTCPSocketCocoa):
(WebKit::NetworkRTCTCPSocketCocoa::getInterfaceName):
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.cpp:
(WebKit::LibWebRTCNetworkManager::networksChanged):
(WebKit::LibWebRTCNetworkManager::interfaceNameForTesting const):
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.h:
Canonical link: https://commits.webkit.org/280535@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes