summaryrefslogtreecommitdiff
path: root/chromium/services/network/web_transport.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/services/network/web_transport.cc')
-rw-r--r--chromium/services/network/web_transport.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/chromium/services/network/web_transport.cc b/chromium/services/network/web_transport.cc
index 1b965987295..8da140c80a9 100644
--- a/chromium/services/network/web_transport.cc
+++ b/chromium/services/network/web_transport.cc
@@ -177,7 +177,7 @@ class WebTransport::Stream final {
~Stream() {
auto* stream = incoming_ ? incoming_.get() : outgoing_.get();
- if (!stream) {
+ if (!stream || transport_->closing_ || transport_->torn_down_) {
return;
}
stream->MaybeResetDueToStreamObjectGone();
@@ -399,7 +399,10 @@ WebTransport::WebTransport(
transport_->Connect();
}
-WebTransport::~WebTransport() = default;
+WebTransport::~WebTransport() {
+ // Ensure that we ignore all callbacks while mid-destruction.
+ torn_down_ = true;
+}
void WebTransport::SendDatagram(base::span<const uint8_t> data,
base::OnceCallback<void(bool)> callback) {