Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Retry generating RTCNetwork serialization #18984

Conversation

achristensen07
Copy link
Contributor

@achristensen07 achristensen07 commented Oct 12, 2023

1a1ce78

Retry generating RTCNetwork serialization
https://bugs.webkit.org/show_bug.cgi?id=263060
rdar://116847094

Reviewed by Youenn Fablet.

A few days ago I tried this, but the SocketAddress transformation wasn't lossless so
it was quickly reverted.  This redoes it, but with a very straightforward SocketAddress struct.

* Source/ThirdParty/libwebrtc/Source/webrtc/rtc_base/socket_address.h:
* Source/WebKit/CMakeLists.txt:
* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.cpp:
(WebKit::NetworkManagerWrapper::onNetworksChanged):
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::createUDPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):
(WebKit::NetworkRTCProvider::sendToSocket):
* Source/WebKit/Shared/RTCNetwork.cpp:
(WebKit::RTCNetwork::RTCNetwork):
(WebKit::ips):
(WebKit::RTCNetwork::value const):
(WebKit::RTC::Network::IPAddress::IPAddress):
(WebKit::RTC::Network::IPAddress::rtcAddress const):
(WebKit::RTC::Network::SocketAddress::SocketAddress):
(WebKit::RTC::Network::SocketAddress::rtcAddress const):
(WebKit::RTC::Network::InterfaceAddress::InterfaceAddress):
(WebKit::RTC::Network::InterfaceAddress::rtcAddress const):
(WebKit::RTCNetwork::IPAddress::decode): Deleted.
(WebKit::RTCNetwork::IPAddress::encode const): Deleted.
(WebKit::RTCNetwork::SocketAddress::decode): Deleted.
(WebKit::RTCNetwork::SocketAddress::encode const): Deleted.
(WebKit::RTCNetwork::decode): Deleted.
(WebKit::RTCNetwork::encode const): Deleted.
* Source/WebKit/Shared/RTCNetwork.h:
(WebKit::RTC::Network::IPAddress::UnspecifiedFamily::operator== const):
(WebKit::RTC::Network::IPAddress::IPAddress):
(WebKit::RTC::Network::InterfaceAddress::InterfaceAddress):
(WebKit::RTCNetwork::IPAddress::IPAddress): Deleted.
(WebKit::RTCNetwork::SocketAddress::SocketAddress): Deleted.
* Source/WebKit/Shared/RTCNetwork.serialization.in: Added.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetwork.cpp:
(WebKit::LibWebRTCNetwork::signalAddressReady):
(WebKit::LibWebRTCNetwork::signalReadPacket):
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.cpp:
(WebKit::LibWebRTCNetworkManager::networksChanged):
* Source/WebKit/WebProcess/Network/webrtc/WebRTCResolver.cpp:
(WebKit::WebRTCResolver::setResolvedAddress):

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

e6c0609

Misc iOS, tvOS & watchOS macOS Linux Windows
βœ… πŸ§ͺ style βœ… πŸ›  ios βœ… πŸ›  mac βœ… πŸ›  wpe βœ… πŸ›  wincairo
βœ… πŸ›  ios-sim βœ… πŸ›  mac-AS-debug βœ… πŸ§ͺ wpe-wk2
βœ… πŸ§ͺ webkitperl βœ… πŸ§ͺ ios-wk2 βœ… πŸ§ͺ api-mac βœ… πŸ›  gtk
βœ… πŸ§ͺ ios-wk2-wpt βœ… πŸ§ͺ mac-wk1 βœ… πŸ§ͺ gtk-wk2
βœ… πŸ§ͺ api-ios βœ… πŸ§ͺ mac-wk2 βœ… πŸ§ͺ api-gtk
βœ… πŸ›  tv βœ… πŸ§ͺ mac-AS-debug-wk2
βœ… πŸ›  tv-sim
βœ… πŸ›  watch
βœ… πŸ›  πŸ§ͺ unsafe-merge βœ… πŸ›  watch-sim

@achristensen07 achristensen07 self-assigned this Oct 12, 2023
@achristensen07 achristensen07 added the WebKit Misc. For miscellaneous bugs in the WebKit framework (and not JavaScriptCore or WebCore). label Oct 12, 2023
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Oct 12, 2023
WebKit::RTC::Network::IPAddress ip;
uint16_t port;
int scopeID;
bool literal;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not reuse IsUnresolvedIP here for SocketAddress?
It should allow to map precisely to what the current code does and might not require changing libwebrtc, which is always a bit of a burden.

We could reuse the code from SocketAddress::decode in SocketAddress::rtcAddress()

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That caused a test timeout last time for an unknown reason.

@achristensen07 achristensen07 removed the merging-blocked Applied to prevent a change from being merged label Oct 12, 2023
@achristensen07 achristensen07 force-pushed the eng/Retry-generating-RTCNetwork-serialization branch from bb7a931 to e6c0609 Compare October 12, 2023 17:59
Copy link
Contributor

@youennf youennf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.
Could you file a bug about trying to remove the customer SocketAddress constructor?
I might try to tackle it when I have some time.

@achristensen07 achristensen07 added the unsafe-merge-queue Applied to send a pull request to merge-queue, but skip building and testing label Oct 13, 2023
https://bugs.webkit.org/show_bug.cgi?id=263060
rdar://116847094

Reviewed by Youenn Fablet.

A few days ago I tried this, but the SocketAddress transformation wasn't lossless so
it was quickly reverted.  This redoes it, but with a very straightforward SocketAddress struct.

* Source/ThirdParty/libwebrtc/Source/webrtc/rtc_base/socket_address.h:
* Source/WebKit/CMakeLists.txt:
* Source/WebKit/DerivedSources-input.xcfilelist:
* Source/WebKit/DerivedSources.make:
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCMonitor.cpp:
(WebKit::NetworkManagerWrapper::onNetworksChanged):
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::createUDPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):
(WebKit::NetworkRTCProvider::sendToSocket):
* Source/WebKit/Shared/RTCNetwork.cpp:
(WebKit::RTCNetwork::RTCNetwork):
(WebKit::ips):
(WebKit::RTCNetwork::value const):
(WebKit::RTC::Network::IPAddress::IPAddress):
(WebKit::RTC::Network::IPAddress::rtcAddress const):
(WebKit::RTC::Network::SocketAddress::SocketAddress):
(WebKit::RTC::Network::SocketAddress::rtcAddress const):
(WebKit::RTC::Network::InterfaceAddress::InterfaceAddress):
(WebKit::RTC::Network::InterfaceAddress::rtcAddress const):
(WebKit::RTCNetwork::IPAddress::decode): Deleted.
(WebKit::RTCNetwork::IPAddress::encode const): Deleted.
(WebKit::RTCNetwork::SocketAddress::decode): Deleted.
(WebKit::RTCNetwork::SocketAddress::encode const): Deleted.
(WebKit::RTCNetwork::decode): Deleted.
(WebKit::RTCNetwork::encode const): Deleted.
* Source/WebKit/Shared/RTCNetwork.h:
(WebKit::RTC::Network::IPAddress::UnspecifiedFamily::operator== const):
(WebKit::RTC::Network::IPAddress::IPAddress):
(WebKit::RTC::Network::InterfaceAddress::InterfaceAddress):
(WebKit::RTCNetwork::IPAddress::IPAddress): Deleted.
(WebKit::RTCNetwork::SocketAddress::SocketAddress): Deleted.
* Source/WebKit/Shared/RTCNetwork.serialization.in: Added.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetwork.cpp:
(WebKit::LibWebRTCNetwork::signalAddressReady):
(WebKit::LibWebRTCNetwork::signalReadPacket):
* Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.cpp:
(WebKit::LibWebRTCNetworkManager::networksChanged):
* Source/WebKit/WebProcess/Network/webrtc/WebRTCResolver.cpp:
(WebKit::WebRTCResolver::setResolvedAddress):

Canonical link: https://commits.webkit.org/269302@main
@webkit-commit-queue webkit-commit-queue force-pushed the eng/Retry-generating-RTCNetwork-serialization branch from e6c0609 to 1a1ce78 Compare October 13, 2023 16:02
@webkit-commit-queue
Copy link
Collaborator

Committed 269302@main (1a1ce78): https://commits.webkit.org/269302@main

Reviewed commits have been landed. Closing PR #18984 and removing active labels.

@webkit-commit-queue webkit-commit-queue merged commit 1a1ce78 into WebKit:main Oct 13, 2023
@webkit-commit-queue webkit-commit-queue removed the unsafe-merge-queue Applied to send a pull request to merge-queue, but skip building and testing label Oct 13, 2023
@achristensen07
Copy link
Contributor Author

I filed rdar://116922531 for future investigation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WebKit Misc. For miscellaneous bugs in the WebKit framework (and not JavaScriptCore or WebCore).
Projects
None yet
5 participants