Modernize RTCPeerConnection handling of pendingActivity
authoryouenn@apple.com <youenn@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Nov 2018 18:25:49 +0000 (18:25 +0000)
committeryouenn@apple.com <youenn@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Nov 2018 18:25:49 +0000 (18:25 +0000)
https://bugs.webkit.org/show_bug.cgi?id=191661

Reviewed by Eric Carlson.

makePendingActivity is the modern way to handle set/unset of pending activity.
No change of behavior.

* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::create):
(WebCore::RTCPeerConnection::doStop):
* Modules/mediastream/RTCPeerConnection.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@238232 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp
Source/WebCore/Modules/mediastream/RTCPeerConnection.h

index 666eb7c..c7c2ba9 100644 (file)
@@ -1,3 +1,18 @@
+2018-11-15  Youenn Fablet  <youenn@apple.com>
+
+        Modernize RTCPeerConnection handling of pendingActivity
+        https://bugs.webkit.org/show_bug.cgi?id=191661
+
+        Reviewed by Eric Carlson.
+
+        makePendingActivity is the modern way to handle set/unset of pending activity.
+        No change of behavior.
+
+        * Modules/mediastream/RTCPeerConnection.cpp:
+        (WebCore::RTCPeerConnection::create):
+        (WebCore::RTCPeerConnection::doStop):
+        * Modules/mediastream/RTCPeerConnection.h:
+
 2018-11-15  Keith Rollin  <krollin@apple.com>
 
         Delete old .xcfilelist files
 2018-11-15  Keith Rollin  <krollin@apple.com>
 
         Delete old .xcfilelist files
index 62840e6..0945562 100644 (file)
@@ -69,7 +69,7 @@ Ref<RTCPeerConnection> RTCPeerConnection::create(ScriptExecutionContext& context
     // RTCPeerConnection may send events at about any time during its lifetime.
     // Let's make it uncollectable until the pc is closed by JS or the page stops it.
     if (!peerConnection->isClosed()) {
     // RTCPeerConnection may send events at about any time during its lifetime.
     // Let's make it uncollectable until the pc is closed by JS or the page stops it.
     if (!peerConnection->isClosed()) {
-        peerConnection->setPendingActivity(peerConnection.ptr());
+        peerConnection->m_pendingActivity = peerConnection->makePendingActivity(peerConnection.get());
         if (auto* page = downcast<Document>(context).page())
             peerConnection->registerToController(page->rtcController());
     }
         if (auto* page = downcast<Document>(context).page())
             peerConnection->registerToController(page->rtcController());
     }
@@ -463,8 +463,7 @@ void RTCPeerConnection::doStop()
     m_isStopped = true;
 
     m_backend->stop();
     m_isStopped = true;
 
     m_backend->stop();
-
-    unsetPendingActivity(this);
+    m_pendingActivity = nullptr;
 }
 
 void RTCPeerConnection::registerToController(RTCController& controller)
 }
 
 void RTCPeerConnection::registerToController(RTCController& controller)
index 2c85401..d671d05 100644 (file)
@@ -228,6 +228,7 @@ private:
     RTCConfiguration m_configuration;
     RTCController* m_controller { nullptr };
     Vector<RefPtr<RTCCertificate>> m_certificates;
     RTCConfiguration m_configuration;
     RTCController* m_controller { nullptr };
     Vector<RefPtr<RTCCertificate>> m_certificates;
+    RefPtr<PendingActivity<RTCPeerConnection>> m_pendingActivity;
 };
 
 } // namespace WebCore
 };
 
 } // namespace WebCore