Title: [239030] trunk/Source/WebCore
Revision
239030
Author
[email protected]
Date
2018-12-10 08:30:53 -0800 (Mon, 10 Dec 2018)

Log Message

MockLibWebRTCPeerConnectionFactory should isolate copy its test case
https://bugs.webkit.org/show_bug.cgi?id=192545

Reviewed by Eric Carlson.

Isolate copy the test case member so that it can be destroyed on another thread.
Covered by existing test that should no longer crash.

* testing/MockLibWebRTCPeerConnection.cpp:
(WebCore::useMockRTCPeerConnectionFactory):
(WebCore::MockLibWebRTCPeerConnectionFactory::MockLibWebRTCPeerConnectionFactory):
* testing/MockLibWebRTCPeerConnection.h:
(WebCore::MockLibWebRTCPeerConnectionFactory::create):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (239029 => 239030)


--- trunk/Source/WebCore/ChangeLog	2018-12-10 16:07:28 UTC (rev 239029)
+++ trunk/Source/WebCore/ChangeLog	2018-12-10 16:30:53 UTC (rev 239030)
@@ -1,3 +1,19 @@
+2018-12-10  Youenn Fablet  <[email protected]>
+
+        MockLibWebRTCPeerConnectionFactory should isolate copy its test case
+        https://bugs.webkit.org/show_bug.cgi?id=192545
+
+        Reviewed by Eric Carlson.
+
+        Isolate copy the test case member so that it can be destroyed on another thread.
+        Covered by existing test that should no longer crash.
+
+        * testing/MockLibWebRTCPeerConnection.cpp:
+        (WebCore::useMockRTCPeerConnectionFactory):
+        (WebCore::MockLibWebRTCPeerConnectionFactory::MockLibWebRTCPeerConnectionFactory):
+        * testing/MockLibWebRTCPeerConnection.h:
+        (WebCore::MockLibWebRTCPeerConnectionFactory::create):
+
 2018-12-09  Youenn Fablet  <[email protected]>
 
         Move capture manager from RealtimeMediaSourceCenter to capture factory

Modified: trunk/Source/WebCore/testing/MockLibWebRTCPeerConnection.cpp (239029 => 239030)


--- trunk/Source/WebCore/testing/MockLibWebRTCPeerConnection.cpp	2018-12-10 16:07:28 UTC (rev 239029)
+++ trunk/Source/WebCore/testing/MockLibWebRTCPeerConnection.cpp	2018-12-10 16:30:53 UTC (rev 239030)
@@ -66,7 +66,7 @@
         auto& factory = getRealPeerConnectionFactory();
         factory = provider->factory();
     }
-    provider->setPeerConnectionFactory(MockLibWebRTCPeerConnectionFactory::create(String(testCase)));
+    provider->setPeerConnectionFactory(MockLibWebRTCPeerConnectionFactory::create(testCase));
 }
 
 MockLibWebRTCPeerConnection::~MockLibWebRTCPeerConnection()
@@ -167,8 +167,8 @@
     void SetLocalDescription(webrtc::SetSessionDescriptionObserver* observer, webrtc::SessionDescriptionInterface*) final { releaseInNetworkThread(*this, *observer); }
 };
 
-MockLibWebRTCPeerConnectionFactory::MockLibWebRTCPeerConnectionFactory(String&& testCase)
-    : m_testCase(WTFMove(testCase))
+MockLibWebRTCPeerConnectionFactory::MockLibWebRTCPeerConnectionFactory(const String& testCase)
+    : m_testCase(testCase.isolatedCopy())
 {
 }
 

Modified: trunk/Source/WebCore/testing/MockLibWebRTCPeerConnection.h (239029 => 239030)


--- trunk/Source/WebCore/testing/MockLibWebRTCPeerConnection.h	2018-12-10 16:07:28 UTC (rev 239029)
+++ trunk/Source/WebCore/testing/MockLibWebRTCPeerConnection.h	2018-12-10 16:30:53 UTC (rev 239030)
@@ -235,10 +235,10 @@
     
 class MockLibWebRTCPeerConnectionFactory : public webrtc::PeerConnectionFactoryInterface {
 public:
-    static rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> create(String&& testCase) { return new rtc::RefCountedObject<MockLibWebRTCPeerConnectionFactory>(WTFMove(testCase)); }
+    static rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> create(const String& testCase) { return new rtc::RefCountedObject<MockLibWebRTCPeerConnectionFactory>(testCase); }
 
 protected:
-    MockLibWebRTCPeerConnectionFactory(String&&);
+    explicit MockLibWebRTCPeerConnectionFactory(const String&);
 
 private:
     rtc::scoped_refptr<webrtc::PeerConnectionInterface> CreatePeerConnection(const webrtc::PeerConnectionInterface::RTCConfiguration&, webrtc::PeerConnectionDependencies) final;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to