Index: content/renderer/p2p/socket_dispatcher.cc |
diff --git a/content/renderer/p2p/socket_dispatcher.cc b/content/renderer/p2p/socket_dispatcher.cc |
index 4317725b7af9e753fde2dabca79db4daa7acdbc0..c9a494b29eeced63c721cd698623df9a3c3be30f 100644 |
--- a/content/renderer/p2p/socket_dispatcher.cc |
+++ b/content/renderer/p2p/socket_dispatcher.cc |
@@ -59,6 +59,8 @@ P2PSocketDispatcher::P2PSocketDispatcher(RenderViewImpl* render_view) |
} |
P2PSocketDispatcher::~P2PSocketDispatcher() { |
+ FOR_EACH_OBSERVER(P2PSocketDispatcherObserver, deletion_observers_, |
+ SocketDispatcherGone()); |
network_list_observers_->AssertEmpty(); |
if (network_notifications_started_) |
Send(new P2PHostMsg_StopNetworkNotifications(routing_id())); |
@@ -82,6 +84,16 @@ void P2PSocketDispatcher::RemoveNetworkListObserver( |
network_list_observers_->RemoveObserver(network_list_observer); |
} |
+void P2PSocketDispatcher::AddDeletionObserver( |
+ P2PSocketDispatcherObserver* observer) { |
+ deletion_observers_.AddObserver(observer); |
+} |
+ |
+void P2PSocketDispatcher::RemoveDeletionObserver( |
+ P2PSocketDispatcherObserver* observer) { |
+ deletion_observers_.RemoveObserver(observer); |
+} |
+ |
bool P2PSocketDispatcher::OnMessageReceived(const IPC::Message& message) { |
bool handled = true; |
IPC_BEGIN_MESSAGE_MAP(P2PSocketDispatcher, message) |