[webkit-changes] [WebKit/WebKit] d09b3b: WebTransport should send network errors to JS for ...

Commit Queue noreply at github.com
Mon Jan 6 17:18:46 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d09b3b34e3e94ff6842abb400d692f156173edfb
      https://github.com/WebKit/WebKit/commit/d09b3b34e3e94ff6842abb400d692f156173edfb
  Author: Ankshit Jain <ankshit_jain at apple.com>
  Date:   2025-01-06 (Mon, 06 Jan 2025)

  Changed paths:
    M Source/WebCore/Modules/streams/ReadableStreamSource.h
    M Source/WebCore/Modules/webtransport/DatagramSink.cpp
    M Source/WebCore/Modules/webtransport/DatagramSink.h
    M Source/WebCore/Modules/webtransport/DatagramSource.cpp
    M Source/WebCore/Modules/webtransport/DatagramSource.h
    M Source/WebCore/Modules/webtransport/WebTransport.cpp
    M Source/WebCore/Modules/webtransport/WebTransport.h
    M Source/WebCore/Modules/webtransport/WebTransportBidirectionalStreamSource.cpp
    M Source/WebCore/Modules/webtransport/WebTransportBidirectionalStreamSource.h
    M Source/WebCore/Modules/webtransport/WebTransportReceiveStreamSource.cpp
    M Source/WebCore/Modules/webtransport/WebTransportReceiveStreamSource.h
    M Source/WebCore/Modules/webtransport/WebTransportSession.h
    M Source/WebCore/Modules/webtransport/WebTransportSessionClient.h
    M Source/WebCore/Modules/webtransport/WorkerWebTransportSession.cpp
    M Source/WebCore/Modules/webtransport/WorkerWebTransportSession.h
    M Source/WebCore/PAL/pal/cocoa/NetworkSoftLink.h
    M Source/WebCore/PAL/pal/cocoa/NetworkSoftLink.mm
    M Source/WebCore/PAL/pal/spi/cocoa/NetworkSPI.h
    M Source/WebCore/bindings/js/ReadableStreamDefaultController.h
    M Source/WebKit/NetworkProcess/webtransport/NetworkTransportSession.cpp
    M Source/WebKit/NetworkProcess/webtransport/NetworkTransportSession.h
    M Source/WebKit/NetworkProcess/webtransport/NetworkTransportSession.messages.in
    M Source/WebKit/NetworkProcess/webtransport/NetworkTransportStream.cpp
    M Source/WebKit/NetworkProcess/webtransport/NetworkTransportStream.h
    M Source/WebKit/NetworkProcess/webtransport/cocoa/NetworkTransportSessionCocoa.mm
    M Source/WebKit/NetworkProcess/webtransport/cocoa/NetworkTransportStreamCocoa.mm
    M Source/WebKit/WebProcess/Network/WebTransportSendStreamSink.cpp
    M Source/WebKit/WebProcess/Network/WebTransportSendStreamSink.h
    M Source/WebKit/WebProcess/Network/WebTransportSession.cpp
    M Source/WebKit/WebProcess/Network/WebTransportSession.h
    M Source/WebKit/WebProcess/Network/WebTransportSession.messages.in
    M Source/WebKit/WebProcess/WebProcess.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WebTransport.mm

  Log Message:
  -----------
  WebTransport should send network errors to JS for failure points
https://bugs.webkit.org/show_bug.cgi?id=285087
rdar://136263051

Reviewed by Alex Christensen.

Network connections are canceled when the session is terminated.
Streams handle completion and error for reads and writes.
Incoming connections are canceled if the incoming streams reader is closed.

* Source/WebCore/Modules/streams/ReadableStreamSource.h:
* Source/WebCore/Modules/webtransport/DatagramSink.cpp:
(WebCore::DatagramSink::write):
(WebCore::DatagramSink::send):
* Source/WebCore/Modules/webtransport/DatagramSink.h:
* Source/WebCore/Modules/webtransport/DatagramSource.cpp:
(WebCore::DatagramSource::receiveDatagram):
(WebCore::DatagramSource::doCancel):
* Source/WebCore/Modules/webtransport/DatagramSource.h:
* Source/WebCore/Modules/webtransport/WebTransport.cpp:
(WebCore::WebTransport::receiveDatagram):
(WebCore::WebTransport::receiveIncomingUnidirectionalStream):
(WebCore::WebTransport::receiveBidirectionalStream):
* Source/WebCore/Modules/webtransport/WebTransport.h:
* Source/WebCore/Modules/webtransport/WebTransportBidirectionalStreamSource.cpp:
(WebCore::WebTransportBidirectionalStreamSource::receiveIncomingStream):
* Source/WebCore/Modules/webtransport/WebTransportBidirectionalStreamSource.h:
* Source/WebCore/Modules/webtransport/WebTransportReceiveStreamSource.cpp:
(WebCore::WebTransportReceiveStreamSource::receiveIncomingStream):
* Source/WebCore/Modules/webtransport/WebTransportReceiveStreamSource.h:
* Source/WebCore/Modules/webtransport/WebTransportSession.h:
* Source/WebCore/Modules/webtransport/WebTransportSessionClient.h:
* Source/WebCore/PAL/pal/cocoa/NetworkSoftLink.h:
* Source/WebCore/PAL/pal/cocoa/NetworkSoftLink.mm:
* Source/WebCore/PAL/pal/spi/cocoa/NetworkSPI.h:
* Source/WebCore/bindings/js/ReadableStreamDefaultController.h:
* Source/WebKit/NetworkProcess/webtransport/NetworkTransportSession.cpp:
(WebKit::NetworkTransportSession::sendDatagram):
(WebKit::NetworkTransportSession::streamSendBytes):
(WebKit::NetworkTransportSession::terminate):
(WebKit::NetworkTransportSession::receiveDatagram):
(WebKit::NetworkTransportSession::streamReceiveBytes):
(WebKit::NetworkTransportSession::receiveIncomingUnidirectionalStream):
(WebKit::NetworkTransportSession::receiveBidirectionalStream):
(WebKit::NetworkTransportSession::cancelReceiveStream):
(WebKit::NetworkTransportSession::cancelSendStream):
(WebKit::NetworkTransportSession::destroyStream):
(WebKit::NetworkTransportSession::sendStreamSendBytes): Deleted.
(WebKit::NetworkTransportSession::destroyOutgoingUnidirectionalStream): Deleted.
(WebKit::NetworkTransportSession::destroyBidirectionalStream): Deleted.
* Source/WebKit/NetworkProcess/webtransport/NetworkTransportSession.h:
* Source/WebKit/NetworkProcess/webtransport/NetworkTransportSession.messages.in:
* Source/WebKit/NetworkProcess/webtransport/NetworkTransportStream.cpp:
(WebKit::NetworkTransportStream::NetworkTransportStream):
(WebKit::NetworkTransportStream::sendBytes):
(WebKit::NetworkTransportStream::cancelReceive):
(WebKit::NetworkTransportStream::cancelSend):
(WebKit::NetworkTransportStream::cancel):
* Source/WebKit/NetworkProcess/webtransport/NetworkTransportStream.h:
* Source/WebKit/NetworkProcess/webtransport/cocoa/NetworkTransportSessionCocoa.mm:
(WebKit::NetworkTransportSession::initialize):
(WebKit::NetworkTransportSession::setupDatagramConnection):
(WebKit::NetworkTransportSession::sendDatagram):
(WebKit::NetworkTransportSession::setupConnectionHandler):
(WebKit::NetworkTransportSession::createStream):
(WebKit::NetworkTransportSession::receiveDatagramLoop):
(WebKit::NetworkTransportSession::terminate):
* Source/WebKit/NetworkProcess/webtransport/cocoa/NetworkTransportStreamCocoa.mm:
(WebKit::NetworkTransportStream::NetworkTransportStream):
(WebKit::NetworkTransportStream::sendBytes):
(WebKit::NetworkTransportStream::receiveLoop):
(WebKit::NetworkTransportStream::setErrorCodeForStream):
(WebKit::NetworkTransportStream::cancel):
(WebKit::NetworkTransportStream::cancelReceive):
(WebKit::NetworkTransportStream::cancelSend):
* Source/WebKit/WebProcess/Network/WebTransportReceiveStreamSource.cpp:
(WebKit::WebTransportReceiveStreamSource::receiveBytes):
(WebKit::WebTransportReceiveStreamSource::doCancel):
* Source/WebKit/WebProcess/Network/WebTransportReceiveStreamSource.h:
* Source/WebKit/WebProcess/Network/WebTransportSendStreamSink.cpp:
(WebKit::WebTransportSendStreamSink::write):
(WebKit::WebTransportSendStreamSink::close):
(WebKit::WebTransportSendStreamSink::error):
(WebKit::WebTransportSendStreamSink::sendBytes):
* Source/WebKit/WebProcess/Network/WebTransportSendStreamSink.h:
* Source/WebKit/WebProcess/Network/WebTransportSession.cpp:
(WebKit::WebTransportSession::receiveDatagram):
(WebKit::WebTransportSession::receiveIncomingUnidirectionalStream):
(WebKit::WebTransportSession::receiveBidirectionalStream):
(WebKit::WebTransportSession::streamReceiveBytes):
(WebKit::WebTransportSession::sendDatagram):
(WebKit::WebTransportSession::streamSendBytes):
(WebKit::WebTransportSession::cancelReceiveStream):
(WebKit::WebTransportSession::cancelSendStream):
(WebKit::WebTransportSession::destroyStream):
* Source/WebKit/WebProcess/Network/WebTransportSession.h:
* Source/WebKit/WebProcess/Network/WebTransportSession.messages.in:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WebTransport.mm:
(TestWebKitAPI::TEST(WebTransport, DISABLED_ClientBidirectional)):
(TestWebKitAPI::TEST(WebTransport, DISABLED_Datagram)):
(TestWebKitAPI::TEST(WebTransport, DISABLED_Unidirectional)):
(TestWebKitAPI::TEST(WebTransport, DISABLED_ServerBidirectional)):

Canonical link: https://commits.webkit.org/288498@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