Skip to content

Commit 360746b

Browse files
committed
Run pending connect and accept callbacks immediately when socket disconnected.
Solve DCHECK erorr in ~UIThreadExtensionFunction where SocketsTcpConnectFunction is destructed before any responses were made.
1 parent 7f205a0 commit 360746b

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
diff --git a/extensions/browser/api/socket/tcp_socket.cc b/extensions/browser/api/socket/tcp_socket.cc
2+
index e80bd7718bee608d4805d8d5ff63642296f20335..d0661a666757d0440b636e0177454e41675abbf6 100644
3+
--- a/extensions/browser/api/socket/tcp_socket.cc
4+
+++ b/extensions/browser/api/socket/tcp_socket.cc
5+
@@ -149,8 +149,16 @@ void TCPSocket::Disconnect(bool socket_destroying) {
6+
client_socket_.reset();
7+
server_socket_.reset();
8+
listen_callback_.Reset();
9+
- connect_callback_.Reset();
10+
- accept_callback_.Reset();
11+
+ if (connect_callback_) {
12+
+ std::move(connect_callback_)
13+
+ .Run(net::ERR_CONNECTION_CLOSED);
14+
+ }
15+
+ if (accept_callback_) {
16+
+ std::move(accept_callback_)
17+
+ .Run(net::ERR_CONNECTION_CLOSED, nullptr, base::nullopt,
18+
+ mojo::ScopedDataPipeConsumerHandle(),
19+
+ mojo::ScopedDataPipeProducerHandle());
20+
+ }
21+
// TODO(devlin): Should we do this for all callbacks?
22+
if (read_callback_) {
23+
std::move(read_callback_)

0 commit comments

Comments
 (0)