Commit 72ac0aae authored by Taylor Brandstetter's avatar Taylor Brandstetter Committed by Commit Bot

Reconnect P2P socket dispatcher if network service dies.

Bug: chromium:1113227
Change-Id: Ifc8e856fde4cf4eee25149f0a1e86a3cad71ea83
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2344747
Commit-Queue: Taylor <deadbeef@chromium.org>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#797125}
parent 36090057
......@@ -110,6 +110,18 @@ void P2PSocketDispatcher::RequestNetworkEventsIfNecessary() {
void P2PSocketDispatcher::OnConnectionError() {
base::AutoLock lock(p2p_socket_manager_lock_);
p2p_socket_manager_.reset();
// Attempt to reconnect in case the network service crashed in his being
// restarted.
PostCrossThreadTask(
*main_task_runner_.get(), FROM_HERE,
CrossThreadBindOnce(&P2PSocketDispatcher::ReconnectP2PSocketManager,
scoped_refptr<P2PSocketDispatcher>(this)));
}
void P2PSocketDispatcher::ReconnectP2PSocketManager() {
network_notification_client_receiver_.reset();
GetP2PSocketManager()->StartNetworkNotifications(
network_notification_client_receiver_.BindNewPipeAndPassRemote());
}
} // namespace blink
......@@ -82,6 +82,7 @@ class PLATFORM_EXPORT P2PSocketDispatcher
void RequestNetworkEventsIfNecessary();
void OnConnectionError();
void ReconnectP2PSocketManager();
scoped_refptr<base::SingleThreadTaskRunner> main_task_runner_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment