Skip to content

build: update WebRTC branch version from 7339 to 7977 (m152) - #249

Open
SendableMetatype wants to merge 14 commits into
devopvoid:mainfrom
SendableMetatype:webrtc-7977
Open

build: update WebRTC branch version from 7339 to 7977 (m152)#249
SendableMetatype wants to merge 14 commits into
devopvoid:mainfrom
SendableMetatype:webrtc-7977

Conversation

@SendableMetatype

Copy link
Copy Markdown

Moves the engine from branch-heads/7339 (m140, September 2025) to branch-heads/7977 (m152), the newest branched milestone, and adapts the JNI layer, the build, and the CI. 2,965 upstream commits land in the range; the highlights relevant to this library:

Hardening on the unauthenticated network surface, reachable by anyone who can send packets at a listening agent: dcSCTP out of bounds access parsing SACK gap ack blocks (fd2e7ea6) and state cookie tampering limits (74d5f029); STUN attributes following MESSAGE-INTEGRITY are discarded instead of parsed (1ebeb005), a buffer underflow in GOOG_MISC_INFO parsing (18e3afc4), a use after free and heap exhaustion in the STUN dictionary code (ec367874); unauthenticated TURN responses to unauthenticated requests are discarded (aa54326d).

Session and media fixes: a data channel encryption downgrade via BUNDLE desync in provisional answers (bf633673), a use after free in AllocateSctpSids (13fdb6e8), a data channel ID reuse race (394a597b), a race with use after free potential in Thread::PostTaskImpl (6f74857e). On the media side: an integer overflow in Wayland cursor bitmap validation (7ff59ed9), buffer geometry validation before pixel copies in Wayland capture (125a9d22), a use after free in the ScreenCast and Camera portal D-Bus callbacks (9dde36eb), an audio channel count overflow (fe2da40b), and bounds checks in NetEQ crossfading (ff1be2e8). DTLS 1.3 becomes the default, twelve milestones of BoringSSL rolls ride along, and dcSCTP retransmission gets measurably less wasteful (corrected fast recovery 43845d36, NACKs for acked packets ignored bd0d6998, corrected outstanding data accounting e1373fb8).

The adaptations, in commit order:

  • the 2020 stack copier patch is deleted; the chromium src/base checkout it patched is gone from the 7977 DEPS
  • media/base video utilities moved to api/video, and their gn targets fell out of the default build graph, so they are built explicitly and re archived flat (gn emits thin archives, which break when copied)
  • AudioDeviceBuffer takes the Environment now, and RtpHeaderExtensionId became a strong alias
  • Linux arm builds against the bundled libc++ exactly like x86_64: 7977 makes the libc++ hardening mode define mandatory, arm cross builds need nostdinc++ so clang stops injecting the sysroot GCC's libstdc++ headers, and the target toolchain libc++ archives are built explicitly because ninja does not schedule them in static only cross builds
  • BREAKING: upstream deleted OnIceCandidatesRemoved together with candidate removal signaling (webrtc issue 8395, never adopted; ICE uses pair migration and restarts instead), so RTCPeerConnection.removeIceCandidates and PeerConnectionObserver.onIceCandidatesRemoved are removed rather than stubbed. The engine capability behind them is gone either way; if the API break should wait for a specific release, this whole change can wait with it.
  • two test calibrations: the DTMF sender tests await canInsertDtmf before sending (a connected peer connection does not imply the audio send stream is ready, which 7977 exposed on Windows), and the port allocator integration test gets more connect headroom
  • docs updated to the new branch default

Validation: the full six lane CI matrix ran green with this bump on my fork (Linux x86_64 and arm64, macOS x86_64 and arm64, Windows x86_64, and the test suites).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant