Title: [212733] trunk/Source/WebKit2
Revision
212733
Author
[email protected]
Date
2017-02-21 11:34:50 -0800 (Tue, 21 Feb 2017)

Log Message

[WebRTC] NetworkRTCMonitor should ensure clearing its manager only once
https://bugs.webkit.org/show_bug.cgi?id=168661

Patch by Youenn Fablet <[email protected]> on 2017-02-21
Reviewed by Alex Christensen.

Making sure NetworkRTCMonitor manager is cleared only once.
ALso ensuring that manager does not get destroyed as part of NetworkRTCMonitor destructor.
The manager needs to be destroyed in the RTC network thread.

* NetworkProcess/webrtc/NetworkRTCMonitor.cpp:
(WebKit::NetworkRTCMonitor::~NetworkRTCMonitor):
(WebKit::NetworkRTCMonitor::stopUpdating):
* NetworkProcess/webrtc/NetworkRTCMonitor.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (212732 => 212733)


--- trunk/Source/WebKit2/ChangeLog	2017-02-21 19:29:10 UTC (rev 212732)
+++ trunk/Source/WebKit2/ChangeLog	2017-02-21 19:34:50 UTC (rev 212733)
@@ -1,3 +1,19 @@
+2017-02-21  Youenn Fablet  <[email protected]>
+
+        [WebRTC] NetworkRTCMonitor should ensure clearing its manager only once
+        https://bugs.webkit.org/show_bug.cgi?id=168661
+
+        Reviewed by Alex Christensen.
+
+        Making sure NetworkRTCMonitor manager is cleared only once.
+        ALso ensuring that manager does not get destroyed as part of NetworkRTCMonitor destructor.
+        The manager needs to be destroyed in the RTC network thread.
+
+        * NetworkProcess/webrtc/NetworkRTCMonitor.cpp:
+        (WebKit::NetworkRTCMonitor::~NetworkRTCMonitor):
+        (WebKit::NetworkRTCMonitor::stopUpdating):
+        * NetworkProcess/webrtc/NetworkRTCMonitor.h:
+
 2017-02-21  Brent Fulgham  <[email protected]>
 
         [WebRTC][Mac][WebKit2] Revise sandbox to limit connections to UDP and TCP

Modified: trunk/Source/WebKit2/NetworkProcess/webrtc/NetworkRTCMonitor.cpp (212732 => 212733)


--- trunk/Source/WebKit2/NetworkProcess/webrtc/NetworkRTCMonitor.cpp	2017-02-21 19:29:10 UTC (rev 212732)
+++ trunk/Source/WebKit2/NetworkProcess/webrtc/NetworkRTCMonitor.cpp	2017-02-21 19:34:50 UTC (rev 212733)
@@ -35,6 +35,11 @@
 
 namespace WebKit {
 
+NetworkRTCMonitor::~NetworkRTCMonitor()
+{
+    ASSERT(!m_manager);
+}
+
 void NetworkRTCMonitor::startUpdating()
 {
     m_isStarted = true;
@@ -49,6 +54,8 @@
 {
     m_isStarted = false;
     m_rtcProvider.callOnRTCNetworkThread([this]() {
+        if (!m_manager)
+            return;
         m_manager->StopUpdating();
         m_manager = nullptr;
     });

Modified: trunk/Source/WebKit2/NetworkProcess/webrtc/NetworkRTCMonitor.h (212732 => 212733)


--- trunk/Source/WebKit2/NetworkProcess/webrtc/NetworkRTCMonitor.h	2017-02-21 19:29:10 UTC (rev 212732)
+++ trunk/Source/WebKit2/NetworkProcess/webrtc/NetworkRTCMonitor.h	2017-02-21 19:34:50 UTC (rev 212733)
@@ -44,6 +44,7 @@
 class NetworkRTCMonitor final : public sigslot::has_slots<> {
 public:
     explicit NetworkRTCMonitor(NetworkRTCProvider& rtcProvider) : m_rtcProvider(rtcProvider) { }
+    ~NetworkRTCMonitor();
 
     void didReceiveMessage(IPC::Connection&, IPC::Decoder&);
     void stopUpdating();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to