[webkit-changes] [WebKit/WebKit] cb1b8e: Pass WebTransportSessionClient as parameter to Web...
Alex Christensen
noreply at github.com
Mon Jan 6 09:40:50 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: cb1b8e27c832efc0133229a5b00b99ae3110a038
https://github.com/WebKit/WebKit/commit/cb1b8e27c832efc0133229a5b00b99ae3110a038
Author: Alex Christensen <achristensen at apple.com>
Date: 2025-01-06 (Mon, 06 Jan 2025)
Changed paths:
M Source/WebCore/Modules/webtransport/WebTransport.cpp
M Source/WebCore/Modules/webtransport/WebTransportSession.cpp
M Source/WebCore/Modules/webtransport/WebTransportSession.h
M Source/WebCore/Modules/webtransport/WorkerWebTransportSession.cpp
M Source/WebCore/Modules/webtransport/WorkerWebTransportSession.h
M Source/WebCore/loader/EmptyClients.cpp
M Source/WebCore/page/SocketProvider.h
M Source/WebKit/WebProcess/Network/WebSocketProvider.cpp
M Source/WebKit/WebProcess/Network/WebSocketProvider.h
M Source/WebKit/WebProcess/Network/WebTransportSession.cpp
M Source/WebKit/WebProcess/Network/WebTransportSession.h
M Source/WebKitLegacy/WebCoreSupport/LegacySocketProvider.cpp
M Source/WebKitLegacy/WebCoreSupport/LegacySocketProvider.h
Log Message:
-----------
Pass WebTransportSessionClient as parameter to WebTransportSession constructors
https://bugs.webkit.org/show_bug.cgi?id=285392
Reviewed by Matthew Finkel.
In the process of setting up a session, the session needs a client immediately
because a datagram can be received immediately. The WebTransport object doesn't
need a session immediately because it can't do anything anyways until the session
is set up. This fixes an issue where, if you set up a WebTransport on a worker
and it receives a datagram immediately, it can hit an assertion sometimes on a
race condition. This was found by Ankshit when working on
https://github.com/WebKit/WebKit/pull/38327 which needs this PR to work properly.
* Source/WebCore/Modules/webtransport/WebTransport.cpp:
(WebCore::WebTransport::initializeOverHTTP):
* Source/WebCore/Modules/webtransport/WebTransportSession.cpp:
(WebCore::WebTransportSession::attachClient): Deleted.
* Source/WebCore/Modules/webtransport/WebTransportSession.h:
* Source/WebCore/Modules/webtransport/WorkerWebTransportSession.cpp:
(WebCore::WorkerWebTransportSession::create):
(WebCore::WorkerWebTransportSession::WorkerWebTransportSession):
(WebCore::WorkerWebTransportSession::attachSession):
(WebCore::WorkerWebTransportSession::sendDatagram):
(WebCore::WorkerWebTransportSession::createOutgoingUnidirectionalStream):
(WebCore::WorkerWebTransportSession::createBidirectionalStream):
(WebCore::WorkerWebTransportSession::terminate):
* Source/WebCore/Modules/webtransport/WorkerWebTransportSession.h:
* Source/WebCore/loader/EmptyClients.cpp:
* Source/WebCore/page/SocketProvider.h:
* Source/WebKit/WebProcess/Network/WebSocketProvider.cpp:
(WebKit::WebSocketProvider::initializeWebTransportSession):
* Source/WebKit/WebProcess/Network/WebSocketProvider.h:
* Source/WebKit/WebProcess/Network/WebTransportSession.cpp:
(WebKit::WebTransportSession::initialize):
(WebKit::WebTransportSession::WebTransportSession):
* Source/WebKit/WebProcess/Network/WebTransportSession.h:
* Source/WebKitLegacy/WebCoreSupport/LegacySocketProvider.cpp:
(LegacySocketProvider::initializeWebTransportSession):
* Source/WebKitLegacy/WebCoreSupport/LegacySocketProvider.h:
Canonical link: https://commits.webkit.org/288469@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list