| Index: extensions/browser/api/socket/udp_socket.cc
|
| diff --git a/extensions/browser/api/socket/udp_socket.cc b/extensions/browser/api/socket/udp_socket.cc
|
| index 6e58ac3a2ea623a3be494805d5f282f98c4de5eb..a5b924567425ca8362cb15910c65f449b117cf95 100644
|
| --- a/extensions/browser/api/socket/udp_socket.cc
|
| +++ b/extensions/browser/api/socket/udp_socket.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include <algorithm>
|
|
|
| +#include "base/callback_helpers.h"
|
| #include "base/lazy_instance.h"
|
| #include "extensions/browser/api/api_resource.h"
|
| #include "net/base/ip_address.h"
|
| @@ -83,7 +84,11 @@ void UDPSocket::Disconnect() {
|
| is_connected_ = false;
|
| socket_.Close();
|
| read_callback_.Reset();
|
| - recv_from_callback_.Reset();
|
| + // TODO(devlin): Should we do this for all callbacks?
|
| + if (!recv_from_callback_.is_null()) {
|
| + base::ResetAndReturn(&recv_from_callback_)
|
| + .Run(net::ERR_CONNECTION_CLOSED, nullptr, std::string(), 0);
|
| + }
|
| send_to_callback_.Reset();
|
| multicast_groups_.clear();
|
| }
|
|
|