Title: [215238] trunk
Revision
215238
Author
[email protected]
Date
2017-04-11 10:06:53 -0700 (Tue, 11 Apr 2017)

Log Message

MediaStream id should be equal to msid
https://bugs.webkit.org/show_bug.cgi?id=170712

Patch by Youenn Fablet <[email protected]> on 2017-04-11
Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

* web-platform-tests/webrtc/datachannel-emptystring-expected.txt:
* web-platform-tests/webrtc/no-media-call-expected.txt:
* web-platform-tests/webrtc/promises-call-expected.txt:
* web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt:

Source/WebCore:

Covered by rebased tests.

Setting MediaStream id to libwebrtc mediastream label.
Refactoring to use more Ref<> in MediaStream code.

Making PeerConnection use the libwebrtc backend by default for layout tests instead of the mock.

* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::create):
(WebCore::createTrackPrivateVector):
(WebCore::MediaStream::MediaStream):
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/MediaStreamRegistry.cpp:
(WebCore::MediaStreamRegistry::lookUp):
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::allow):
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream):
(WebCore::LibWebRTCMediaEndpoint::addRemoteStream):
(WebCore::LibWebRTCMediaEndpoint::addRemoteTrack):
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::load):
* platform/graphics/MediaPlayer.h:
* platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::MediaStreamPrivate):
* platform/mediastream/MediaStreamPrivate.h:
(WebCore::MediaStreamPrivate::create):
* testing/Internals.cpp:
(WebCore::Internals::Internals):

LayoutTests:

Removing no longer needed/Adding needed calls to useMockRTCPeerConnectionFactory.

* fast/mediastream/RTCPeerConnection-inspect-answer.html:
* fast/mediastream/RTCPeerConnection-inspect-offer.html:
* fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html:
* fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html:
* fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html:
* fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html:
* fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html:
* webrtc/audio-peer-connection-webaudio.html:
* webrtc/audio-replace-track.html:
* webrtc/connection-state.html:
* webrtc/datachannel/basic.html:
* webrtc/datachannel/bufferedAmountLowThreshold.html:
* webrtc/datachannel/datachannel-gc.html:
* webrtc/datachannel/datachannel-stats.html:
* webrtc/datachannel/filter-ice-candidate.html:
* webrtc/ephemeral-certificates-and-cnames.html:
* webrtc/libwebrtc/descriptionGetters.html:
* webrtc/negotiatedneeded-event-addStream.html:
* webrtc/no-port-zero-in-upd-candidates.html:
* webrtc/peer-connection-audio-mute.html:
* webrtc/peer-connection-audio-mute2.html:
* webrtc/peer-connection-remote-audio-mute.html:
* webrtc/peer-connection-remote-audio-mute2.html:
* webrtc/release-after-getting-track.html:
* webrtc/video-disabled-black.html:
* webrtc/video-getParameters.html:
* webrtc/video-mediastreamtrack-stats.html:
* webrtc/video-mute.html:
* webrtc/video-remote-mute.html:
* webrtc/video-replace-track-to-null.html:
* webrtc/video-replace-track.html:
* webrtc/video-stats.html:
* webrtc/video-with-receiver.html:
* webrtc/video.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (215237 => 215238)


--- trunk/LayoutTests/ChangeLog	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/ChangeLog	2017-04-11 17:06:53 UTC (rev 215238)
@@ -1,3 +1,47 @@
+2017-04-11  Youenn Fablet  <[email protected]>
+
+        MediaStream id should be equal to msid
+        https://bugs.webkit.org/show_bug.cgi?id=170712
+
+        Reviewed by Eric Carlson.
+
+        Removing no longer needed/Adding needed calls to useMockRTCPeerConnectionFactory.
+
+        * fast/mediastream/RTCPeerConnection-inspect-answer.html:
+        * fast/mediastream/RTCPeerConnection-inspect-offer.html:
+        * fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html:
+        * fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html:
+        * fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html:
+        * fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html:
+        * fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html:
+        * webrtc/audio-peer-connection-webaudio.html:
+        * webrtc/audio-replace-track.html:
+        * webrtc/connection-state.html:
+        * webrtc/datachannel/basic.html:
+        * webrtc/datachannel/bufferedAmountLowThreshold.html:
+        * webrtc/datachannel/datachannel-gc.html:
+        * webrtc/datachannel/datachannel-stats.html:
+        * webrtc/datachannel/filter-ice-candidate.html:
+        * webrtc/ephemeral-certificates-and-cnames.html:
+        * webrtc/libwebrtc/descriptionGetters.html:
+        * webrtc/negotiatedneeded-event-addStream.html:
+        * webrtc/no-port-zero-in-upd-candidates.html:
+        * webrtc/peer-connection-audio-mute.html:
+        * webrtc/peer-connection-audio-mute2.html:
+        * webrtc/peer-connection-remote-audio-mute.html:
+        * webrtc/peer-connection-remote-audio-mute2.html:
+        * webrtc/release-after-getting-track.html:
+        * webrtc/video-disabled-black.html:
+        * webrtc/video-getParameters.html:
+        * webrtc/video-mediastreamtrack-stats.html:
+        * webrtc/video-mute.html:
+        * webrtc/video-remote-mute.html:
+        * webrtc/video-replace-track-to-null.html:
+        * webrtc/video-replace-track.html:
+        * webrtc/video-stats.html:
+        * webrtc/video-with-receiver.html:
+        * webrtc/video.html:
+
 2017-04-11  Chris Fleizach  <[email protected]>
 
         AX: Web article navigation does not work (article rotor for Facebook, Twitter, Messages etc.)

Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-inspect-answer.html (215237 => 215238)


--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-inspect-answer.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-inspect-answer.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -6,6 +6,9 @@
     </head>
     <body>
         <script>
+            if (window.internals)
+                internals.useMockRTCPeerConnectionFactory("");
+
             let remoteStream;
             let remotePcAudioTrack;
             let remotePcVideoTrack;

Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-inspect-offer.html (215237 => 215238)


--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-inspect-offer.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-inspect-offer.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -6,6 +6,9 @@
     </head>
     <body>
         <script>
+            if (window.internals)
+                internals.useMockRTCPeerConnectionFactory("");
+
             var stream;
             var audioTrack;
             var videoTrack;

Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html (215237 => 215238)


--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -5,6 +5,9 @@
     </head>
     <body>
         <script>
+            if (window.internals)
+                internals.useMockRTCPeerConnectionFactory("");
+
             description("Test RTCPeerConnection's legacy MediaStream-based API");
 
             let stream;

Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html (215237 => 215238)


--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -6,6 +6,9 @@
     </head>
     <body>
         <script>
+            if (window.internals)
+                internals.useMockRTCPeerConnectionFactory("");
+
             let stream;
             let offer;
 

Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html (215237 => 215238)


--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -6,6 +6,9 @@
     </head>
     <body>
         <script>
+            if (window.internals)
+                internals.useMockRTCPeerConnectionFactory("");
+
             let stream;
             let midAssignedByA;
             let event;

Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html (215237 => 215238)


--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -6,6 +6,9 @@
     </head>
     <body>
         <script>
+            if (window.internals)
+                internals.useMockRTCPeerConnectionFactory("");
+
             var stream;
             var audioTrack;
             var videoTrack;

Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html (215237 => 215238)


--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -6,6 +6,9 @@
     </head>
     <body>
         <script>
+            if (window.internals)
+                internals.useMockRTCPeerConnectionFactory("");
+
             var stream;
             var remotePcAudioTrack;
             var remotePcVideoTrack;

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (215237 => 215238)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2017-04-11 17:06:53 UTC (rev 215238)
@@ -1,3 +1,15 @@
+2017-04-11  Youenn Fablet  <[email protected]>
+
+        MediaStream id should be equal to msid
+        https://bugs.webkit.org/show_bug.cgi?id=170712
+
+        Reviewed by Eric Carlson.
+
+        * web-platform-tests/webrtc/datachannel-emptystring-expected.txt:
+        * web-platform-tests/webrtc/no-media-call-expected.txt:
+        * web-platform-tests/webrtc/promises-call-expected.txt:
+        * web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt:
+
 2017-04-09  Youenn Fablet  <[email protected]>
 
         Resync WPT tests up to 23cd07d4685d81024b7440e042f8bbdb33e7ddec

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/datachannel-emptystring-expected.txt (215237 => 215238)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/datachannel-emptystring-expected.txt	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/datachannel-emptystring-expected.txt	2017-04-11 17:06:53 UTC (rev 215238)
@@ -1,5 +1,8 @@
 
-FAIL Can send empty strings across a WebRTC data channel. assert_unreached: Error TypeError: Argument 1 ('description') to RTCPeerConnection.setRemoteDescription must be an instance of RTCSessionDescription Reached unreachable code
+FAIL Can send empty strings across a WebRTC data channel. assert_equals: Empty message not received expected "" but got "done"
 Messages exchanged
 
+Sent: [empty string]
+Sent: "done"
+Received: "done"
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/no-media-call-expected.txt (215237 => 215238)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/no-media-call-expected.txt	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/no-media-call-expected.txt	2017-04-11 17:06:53 UTC (rev 215238)
@@ -1,5 +1,8 @@
 
-FAIL Can set up a basic WebRTC call with no data. assert_unreached: WebRTC called error callback for setRemoteDescription first Reached unreachable code
+Harness Error (TIMEOUT), message = null
+
+TIMEOUT Can set up a basic WebRTC call with no data. Test timed out
 iceConnectionState info
 
-
+First: checking
+Second: new

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/promises-call-expected.txt (215237 => 215238)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/promises-call-expected.txt	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/promises-call-expected.txt	2017-04-11 17:06:53 UTC (rev 215238)
@@ -1,5 +1,6 @@
 
-FAIL Can set up a basic WebRTC call with only data using promises. assert_unreached: Error TypeError: Argument 1 ('description') to RTCPeerConnection.setRemoteDescription must be an instance of RTCSessionDescription happened at step Set remote description at second Reached unreachable code
+PASS Can set up a basic WebRTC call with only data using promises. 
 iceConnectionState info
 
-
+First: completed
+Second: connected

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt (215237 => 215238)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/webrtc/rtcpeerconnection/setRemoteDescription-expected.txt	2017-04-11 17:06:53 UTC (rev 215238)
@@ -1,5 +1,3 @@
 
-Harness Error (TIMEOUT), message = null
+PASS Triggers onaddstream when called with a remote description and the MSID is parsed. 
 
-TIMEOUT Triggers onaddstream when called with a remote description and the MSID is parsed. Test timed out
-

Modified: trunk/LayoutTests/webrtc/audio-peer-connection-webaudio.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/audio-peer-connection-webaudio.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/audio-peer-connection-webaudio.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -12,8 +12,6 @@
             testRunner.setUserMediaPermission(true);
 
         return navigator.mediaDevices.getUserMedia({audio: true}).then((stream) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
             return new Promise((resolve, reject) => {
                 createConnections((firstConnection) => {
                     firstConnection.addStream(stream);

Modified: trunk/LayoutTests/webrtc/audio-replace-track.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/audio-replace-track.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/audio-replace-track.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -20,8 +20,6 @@
             return navigator.mediaDevices.getUserMedia({ audio: { sampleRate: { exact: 48000 } } });
         }).then((stream) => {
             secondStream = stream;
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
             return new Promise((resolve, reject) => {
                 createConnections((firstConnection) => {
                     sender = firstConnection.addTrack(firstStream.getAudioTracks()[0], firstStream);

Modified: trunk/LayoutTests/webrtc/connection-state.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/connection-state.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/connection-state.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -22,9 +22,6 @@
     var remoteGatheringStates = ["new"];
     return navigator.mediaDevices.getUserMedia({ video: true}).then((stream) => {
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             createConnections((connection) => {
                 firstConnection = connection;
                 firstConnection.addTrack(stream.getVideoTracks()[0], stream);

Modified: trunk/LayoutTests/webrtc/datachannel/basic.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/datachannel/basic.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/datachannel/basic.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -45,9 +45,6 @@
 promise_test((test) => {
     counter = 0;
     return new Promise((resolve, reject) => {
-        if (window.internals)
-            internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
         finishTest = resolve;
         createConnections((localConnection) => {
             localChannel = localConnection.createDataChannel('sendDataChannel');
@@ -64,9 +61,6 @@
 promise_test((test) => {
     counter = 0;
     return new Promise((resolve, reject) => {
-        if (window.internals)
-            internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
         finishTest = resolve;
         createConnections((localConnection) => {
             localChannel = localConnection.createDataChannel('sendDataChannel');
@@ -83,9 +77,6 @@
 promise_test((test) => {
     counter = 0;
     return new Promise((resolve, reject) => {
-        if (window.internals)
-            internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
         finishTest = resolve;
         createConnections((localConnection) => {
             localChannel = localConnection.createDataChannel('sendDataChannel');
@@ -103,7 +94,6 @@
     counter = 0;
     return new Promise((resolve, reject) => {
         if (window.internals) {
-            internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
             internals.setEnumeratingAllNetworkInterfacesEnabled(true);
         }
 
@@ -123,9 +113,6 @@
 promise_test((test) => {
     counter = 0;
     return new Promise((resolve, reject) => {
-        if (window.internals)
-            internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
         var checkDataChannelOptions = (channel, init) => {
             assert_equals(channel.ordered, init.ordered, "ordered");
             assert_equals(channel.maxPacketLifeTime, init.maxPacketLifeTime, "maxPacketLifeTime");
@@ -155,15 +142,11 @@
     longString += longString;
 
 test(() => {
-    if (window.internals)
-        internals.useMockRTCPeerConnectionFactory("OneRealPeerConnections");
     var pc = new RTCPeerConnection();
     assert_throws(new TypeError, () => { pc.createDataChannel(longString); });
 }, "Creating data channel with very long label");
 
 test(() => {
-    if (window.internals)
-        internals.useMockRTCPeerConnectionFactory("OneRealPeerConnections");
     var pc = new RTCPeerConnection();
     pc.close();
     assert_throws("InvalidStateError", () => { pc.createDataChannel('sendDataChannel'); });
@@ -172,8 +155,6 @@
 function testWrongDataChannelInit(init, title)
 {
     return test(() => {
-        if (window.internals)
-            internals.useMockRTCPeerConnectionFactory("OneRealPeerConnections");
         var pc = new RTCPeerConnection();
         assert_throws(new TypeError, () => { pc.createDataChannel('sendDataChannel', init); });
     }, "Wrong data channel init: " + title);
@@ -182,8 +163,6 @@
 function testRightDataChannelInit(init, title)
 {
     return test(() => {
-        if (window.internals)
-            internals.useMockRTCPeerConnectionFactory("OneRealPeerConnections");
         var pc = new RTCPeerConnection();
         channel = pc.createDataChannel('sendDataChannel', init);
 

Modified: trunk/LayoutTests/webrtc/datachannel/bufferedAmountLowThreshold-expected.txt (215237 => 215238)


--- trunk/LayoutTests/webrtc/datachannel/bufferedAmountLowThreshold-expected.txt	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/datachannel/bufferedAmountLowThreshold-expected.txt	2017-04-11 17:06:53 UTC (rev 215238)
@@ -1,5 +1,5 @@
-CONSOLE MESSAGE: line 76: channel send is throwing
-CONSOLE MESSAGE: line 76: channel send is throwing
+CONSOLE MESSAGE: line 73: channel send is throwing
+CONSOLE MESSAGE: line 73: channel send is throwing
 
 PASS Default buffer threshold 
 PASS Large buffer threshold reached 

Modified: trunk/LayoutTests/webrtc/datachannel/bufferedAmountLowThreshold.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/datachannel/bufferedAmountLowThreshold.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/datachannel/bufferedAmountLowThreshold.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -40,9 +40,6 @@
     counter = 0;
     var gotEvent = false;
     return new Promise((resolve, reject) => {
-        if (window.internals)
-            internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
         finishTest = resolve;
         createConnections((localConnection) => {
             localChannel = localConnection.createDataChannel('sendDataChannel');
@@ -81,9 +78,6 @@
     counter = 0;
     var gotEvent = false;
     return new Promise((resolve, reject) => {
-        if (window.internals)
-            internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
         finishTest = resolve;
         createConnections((localConnection) => {
             localChannel = localConnection.createDataChannel('sendDataChannel');
@@ -112,9 +106,6 @@
     counter = 0;
     var gotEvent = false;
     return new Promise((resolve, reject) => {
-        if (window.internals)
-            internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
         finishTest = resolve;
         createConnections((localConnection) => {
             localChannel = localConnection.createDataChannel('sendDataChannel');

Modified: trunk/LayoutTests/webrtc/datachannel/datachannel-gc.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/datachannel/datachannel-gc.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/datachannel/datachannel-gc.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -13,9 +13,6 @@
 promise_test((test) => {
     counter = 0;
     return new Promise((resolve, reject) => {
-        if (window.internals)
-            internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
         createConnections((localConnection) => {
             localConnection.createDataChannel('sendDataChannel')._onclose_ = resolve;
         }, (remoteConnection) => {

Modified: trunk/LayoutTests/webrtc/datachannel/datachannel-stats.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/datachannel/datachannel-stats.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/datachannel/datachannel-stats.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -51,9 +51,6 @@
 promise_test((test) => {
     counter = 0;
     return new Promise((resolve, reject) => {
-        if (window.internals)
-            internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
         var localConnection, remoteConnection;
         finishTest = () => {
             getDataChannelStats(localConnection).then((stats) => {

Modified: trunk/LayoutTests/webrtc/datachannel/filter-ice-candidate.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/datachannel/filter-ice-candidate.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/datachannel/filter-ice-candidate.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -12,7 +12,6 @@
     return new Promise((resolve, reject) => {
         var counter = 0;
         if (window.internals) {
-            internals.useMockRTCPeerConnectionFactory("OneRealPeerConnection");
             internals.setICECandidateFiltering(false);
         }
         var pc = new RTCPeerConnection();
@@ -36,11 +35,7 @@
 
 promise_test(function() {
     return new Promise((resolve, reject) => {
-        if (window.internals)
-            internals.useMockRTCPeerConnectionFactory("OneRealPeerConnection");
         var counter = 0;
-        if (window.internals)
-            internals.useMockRTCPeerConnectionFactory("OneRealPeerConnection");
         var pc = new RTCPeerConnection();
         pc.createDataChannel('sendDataChannel');
         pc._onicecandidate_ = (event) => {

Modified: trunk/LayoutTests/webrtc/ephemeral-certificates-and-cnames.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/ephemeral-certificates-and-cnames.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/ephemeral-certificates-and-cnames.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -40,9 +40,6 @@
     var offerCName;
     return navigator.mediaDevices.getUserMedia({ video: true, audio: true}).then((stream) => {
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             createConnections((firstConnection) => {
                 firstConnection.addTrack(stream.getVideoTracks()[0], stream);
             }, (secondConnection) => {
@@ -58,9 +55,6 @@
     }).then(() => {
         return navigator.mediaDevices.getUserMedia({ video: true, audio: true}).then((stream) => {
             return new Promise((resolve, reject) => {
-                if (window.internals)
-                    internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
                 createConnections((firstConnection) => {
                     firstConnection.addTrack(stream.getVideoTracks()[0], stream);
                 }, (secondConnection) => {

Modified: trunk/LayoutTests/webrtc/libwebrtc/descriptionGetters.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/libwebrtc/descriptionGetters.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/libwebrtc/descriptionGetters.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -12,9 +12,6 @@
     testRunner.setUserMediaPermission(true);
 
 promise_test((test) => {
-     if (window.internals)
-     internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
      var localConnection = new RTCPeerConnection();
      var remoteConnection = new RTCPeerConnection();
      var currentSDP;

Modified: trunk/LayoutTests/webrtc/negotiatedneeded-event-addStream.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/negotiatedneeded-event-addStream.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/negotiatedneeded-event-addStream.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -18,8 +18,6 @@
 
     return navigator.mediaDevices.getUserMedia({ video: true}).then((stream) => {
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("OneRealPeerConnection");
             var pc = new RTCPeerConnection();
             pc._onnegotiationneeded_ = () => { resolve(); };
             pc.addStream(stream);
@@ -33,8 +31,6 @@
 
     return navigator.mediaDevices.getUserMedia({ video: true}).then((stream) => {
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("OneRealPeerConnection");
             var pc = new RTCPeerConnection();
             pc._onnegotiationneeded_ = () => { reject(); };
             pc.addStream(stream);

Modified: trunk/LayoutTests/webrtc/no-port-zero-in-upd-candidates.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/no-port-zero-in-upd-candidates.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/no-port-zero-in-upd-candidates.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -8,10 +8,6 @@
     </head>
     <body>
         <script>
-
-if (window.internals)
-    internals.useMockRTCPeerConnectionFactory("OneRealPeerConnection");
-
 function gatherCandidates(pc)
 {
     var candidates = [];

Modified: trunk/LayoutTests/webrtc/peer-connection-audio-mute.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/peer-connection-audio-mute.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/peer-connection-audio-mute.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -15,9 +15,6 @@
 
         var localTrack;
         return navigator.mediaDevices.getUserMedia({audio: true}).then((localStream) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             localTrack = localStream.getAudioTracks()[0];
             var remoteStream;
             return new Promise((resolve, reject) => {

Modified: trunk/LayoutTests/webrtc/peer-connection-audio-mute2.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/peer-connection-audio-mute2.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/peer-connection-audio-mute2.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -15,9 +15,6 @@
 
         var localTrack;
         return navigator.mediaDevices.getUserMedia({audio: true}).then((localStream) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             localTrack = localStream.getAudioTracks()[0];
             var remoteStream;
             return new Promise((resolve, reject) => {

Modified: trunk/LayoutTests/webrtc/peer-connection-remote-audio-mute.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/peer-connection-remote-audio-mute.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/peer-connection-remote-audio-mute.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -14,9 +14,6 @@
             testRunner.setUserMediaPermission(true);
 
         return navigator.mediaDevices.getUserMedia({audio: true}).then((localStream) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             var remoteTrack;
             var remoteStream;
             return new Promise((resolve, reject) => {

Modified: trunk/LayoutTests/webrtc/peer-connection-remote-audio-mute2.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/peer-connection-remote-audio-mute2.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/peer-connection-remote-audio-mute2.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -14,9 +14,6 @@
             testRunner.setUserMediaPermission(true);
 
         return navigator.mediaDevices.getUserMedia({audio: true}).then((localStream) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             var remoteTrack;
             var remoteStream;
             return new Promise((resolve, reject) => {

Modified: trunk/LayoutTests/webrtc/release-after-getting-track.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/release-after-getting-track.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/release-after-getting-track.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -15,9 +15,6 @@
 
     return navigator.mediaDevices.getUserMedia({ video: true, audio: true}).then((stream) => {
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             createConnections((firstConnection) => {
                 firstConnection.addStream(stream);
             }, (secondConnection) => {

Modified: trunk/LayoutTests/webrtc/video-disabled-black.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/video-disabled-black.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/video-disabled-black.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -11,9 +11,6 @@
         <canvas id="canvas" width="640" height="480"></canvas>
         <script src =""
         <script>
-if (window.internals)
-    internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
 if (window.testRunner)
     testRunner.setUserMediaPermission(true);
 

Modified: trunk/LayoutTests/webrtc/video-getParameters.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/video-getParameters.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/video-getParameters.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -19,9 +19,6 @@
     return navigator.mediaDevices.getUserMedia({ video: true}).then((stream) => {
         localStream = stream;
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             createConnections((connection) => {
                 firstConnection = connection;
                 sender = firstConnection.addTrack(stream.getVideoTracks()[0], stream);

Modified: trunk/LayoutTests/webrtc/video-mediastreamtrack-stats.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/video-mediastreamtrack-stats.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/video-mediastreamtrack-stats.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -31,9 +31,6 @@
     return navigator.mediaDevices.getUserMedia({ video: true}).then((stream) => {
         localStream = stream;
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             createConnections((connection) => {
                 firstConnection = connection;
                 firstConnection.addTrack(stream.getVideoTracks()[0], stream);

Modified: trunk/LayoutTests/webrtc/video-mute.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/video-mute.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/video-mute.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -38,9 +38,6 @@
 
     return navigator.mediaDevices.getUserMedia({ video: true}).then((localStream) => {
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             track = localStream.getVideoTracks()[0];
 
             createConnections((firstConnection) => {

Modified: trunk/LayoutTests/webrtc/video-remote-mute.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/video-remote-mute.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/video-remote-mute.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -37,9 +37,6 @@
 
     return navigator.mediaDevices.getUserMedia({ video: true}).then((localStream) => {
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             createConnections((firstConnection) => {
                 firstConnection.addStream(localStream);
             }, (secondConnection) => {

Modified: trunk/LayoutTests/webrtc/video-replace-track-to-null.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/video-replace-track-to-null.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/video-replace-track-to-null.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -65,9 +65,6 @@
         frontStream = stream;
     }).then(() => {
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             createConnections((firstConnection) => {
                 sender = firstConnection.addTrack(frontStream.getVideoTracks()[0], frontStream);
             }, (secondConnection) => {

Modified: trunk/LayoutTests/webrtc/video-replace-track.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/video-replace-track.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/video-replace-track.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -61,9 +61,6 @@
         backStream = stream;
     }).then(() => {
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             createConnections((firstConnection) => {
                 sender = firstConnection.addTrack(frontStream.getVideoTracks()[0], frontStream);
             }, (secondConnection) => {
@@ -108,9 +105,6 @@
         assert_true(backStream.getVideoTracks()[0].getSettings().height < 400, "backStream should be smaller");
     }).then(() => {
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             createConnections((firstConnection) => {
                 sender = firstConnection.addTrack(frontStream.getVideoTracks()[0], frontStream);
             }, (secondConnection) => {
@@ -151,9 +145,6 @@
         assert_true(backStream.getVideoTracks()[0].getSettings().height >= 400, "back stream should be bigger");
     }).then(() => {
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             createConnections((firstConnection) => {
                 sender = firstConnection.addTrack(frontStream.getVideoTracks()[0], frontStream);
             }, (secondConnection) => {

Modified: trunk/LayoutTests/webrtc/video-stats.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/video-stats.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/video-stats.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -45,9 +45,6 @@
     return navigator.mediaDevices.getUserMedia({ video: true}).then((stream) => {
         localStream = stream;
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             createConnections((connection) => {
                 firstConnection = connection;
                 firstConnection.addTrack(stream.getVideoTracks()[0], stream);

Modified: trunk/LayoutTests/webrtc/video-with-receiver.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/video-with-receiver.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/video-with-receiver.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -45,9 +45,6 @@
 
     return navigator.mediaDevices.getUserMedia({ video: true}).then((stream) => {
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             createConnections((firstConnection) => {
                 firstConnection.addStream(stream);
             }, (secondConnection) => {

Modified: trunk/LayoutTests/webrtc/video.html (215237 => 215238)


--- trunk/LayoutTests/webrtc/video.html	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/LayoutTests/webrtc/video.html	2017-04-11 17:06:53 UTC (rev 215238)
@@ -45,9 +45,6 @@
 
     return navigator.mediaDevices.getUserMedia({ video: true}).then((stream) => {
         return new Promise((resolve, reject) => {
-            if (window.internals)
-                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
-
             createConnections((firstConnection) => {
                 firstConnection.addStream(stream);
             }, (secondConnection) => {

Modified: trunk/Source/WebCore/ChangeLog (215237 => 215238)


--- trunk/Source/WebCore/ChangeLog	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/Source/WebCore/ChangeLog	2017-04-11 17:06:53 UTC (rev 215238)
@@ -1,3 +1,41 @@
+2017-04-11  Youenn Fablet  <[email protected]>
+
+        MediaStream id should be equal to msid
+        https://bugs.webkit.org/show_bug.cgi?id=170712
+
+        Reviewed by Eric Carlson.
+
+        Covered by rebased tests.
+
+        Setting MediaStream id to libwebrtc mediastream label.
+        Refactoring to use more Ref<> in MediaStream code.
+
+        Making PeerConnection use the libwebrtc backend by default for layout tests instead of the mock.
+
+        * Modules/mediastream/MediaStream.cpp:
+        (WebCore::MediaStream::create):
+        (WebCore::createTrackPrivateVector):
+        (WebCore::MediaStream::MediaStream):
+        * Modules/mediastream/MediaStream.h:
+        * Modules/mediastream/MediaStreamRegistry.cpp:
+        (WebCore::MediaStreamRegistry::lookUp):
+        * Modules/mediastream/UserMediaRequest.cpp:
+        (WebCore::UserMediaRequest::allow):
+        * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
+        (WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream):
+        (WebCore::LibWebRTCMediaEndpoint::addRemoteStream):
+        (WebCore::LibWebRTCMediaEndpoint::addRemoteTrack):
+        * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
+        * platform/graphics/MediaPlayer.cpp:
+        (WebCore::MediaPlayer::load):
+        * platform/graphics/MediaPlayer.h:
+        * platform/mediastream/MediaStreamPrivate.cpp:
+        (WebCore::MediaStreamPrivate::MediaStreamPrivate):
+        * platform/mediastream/MediaStreamPrivate.h:
+        (WebCore::MediaStreamPrivate::create):
+        * testing/Internals.cpp:
+        (WebCore::Internals::Internals):
+
 2017-04-11  Chris Fleizach  <[email protected]>
 
         AX: Web article navigation does not work (article rotor for Facebook, Twitter, Messages etc.)

Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp (215237 => 215238)


--- trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp	2017-04-11 17:06:53 UTC (rev 215238)
@@ -57,27 +57,33 @@
     return adoptRef(*new MediaStream(context, tracks));
 }
 
-Ref<MediaStream> MediaStream::create(ScriptExecutionContext& context, RefPtr<MediaStreamPrivate>&& streamPrivate)
+Ref<MediaStream> MediaStream::create(ScriptExecutionContext& context, Ref<MediaStreamPrivate>&& streamPrivate)
 {
     return adoptRef(*new MediaStream(context, WTFMove(streamPrivate)));
 }
 
+static inline MediaStreamTrackPrivateVector createTrackPrivateVector(const MediaStreamTrackVector& tracks)
+{
+    MediaStreamTrackPrivateVector trackPrivates;
+    trackPrivates.reserveCapacity(tracks.size());
+    for (auto& track : tracks)
+        trackPrivates.append(&track->privateTrack());
+    return trackPrivates;
+}
+
 MediaStream::MediaStream(ScriptExecutionContext& context, const MediaStreamTrackVector& tracks)
     : ContextDestructionObserver(&context)
+    , m_private(MediaStreamPrivate::create(createTrackPrivateVector(tracks)))
     , m_activityEventTimer(*this, &MediaStream::activityEventTimerFired)
 {
     // This constructor preserves MediaStreamTrack instances and must be used by calls originating
     // from the _javascript_ MediaStream constructor.
-    MediaStreamTrackPrivateVector trackPrivates;
-    trackPrivates.reserveCapacity(tracks.size());
 
     for (auto& track : tracks) {
         track->addObserver(*this);
         m_trackSet.add(track->id(), track);
-        trackPrivates.append(&track->privateTrack());
     }
 
-    m_private = MediaStreamPrivate::create(trackPrivates);
     setIsActive(m_private->active());
     m_private->addObserver(*this);
     MediaStreamRegistry::shared().registerStream(*this);
@@ -84,13 +90,11 @@
     document()->addAudioProducer(this);
 }
 
-MediaStream::MediaStream(ScriptExecutionContext& context, RefPtr<MediaStreamPrivate>&& streamPrivate)
+MediaStream::MediaStream(ScriptExecutionContext& context, Ref<MediaStreamPrivate>&& streamPrivate)
     : ContextDestructionObserver(&context)
-    , m_private(streamPrivate)
+    , m_private(WTFMove(streamPrivate))
     , m_activityEventTimer(*this, &MediaStream::activityEventTimerFired)
 {
-    ASSERT(m_private);
-
     setIsActive(m_private->active());
     if (document()->page() && document()->page()->isMediaCaptureMuted())
         m_private->setCaptureTracksMuted(true);
@@ -124,10 +128,10 @@
 RefPtr<MediaStream> MediaStream::clone()
 {
     MediaStreamTrackVector clonedTracks;
-    clonedTracks.reserveCapacity(m_trackSet.size());
+    clonedTracks.reserveInitialCapacity(m_trackSet.size());
 
     for (auto& track : m_trackSet.values())
-        clonedTracks.append(track->clone());
+        clonedTracks.uncheckedAppend(track->clone());
 
     return MediaStream::create(*scriptExecutionContext(), clonedTracks);
 }

Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.h (215237 => 215238)


--- trunk/Source/WebCore/Modules/mediastream/MediaStream.h	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.h	2017-04-11 17:06:53 UTC (rev 215238)
@@ -66,7 +66,7 @@
     static Ref<MediaStream> create(ScriptExecutionContext&);
     static Ref<MediaStream> create(ScriptExecutionContext&, MediaStream&);
     static Ref<MediaStream> create(ScriptExecutionContext&, const MediaStreamTrackVector&);
-    static Ref<MediaStream> create(ScriptExecutionContext&, RefPtr<MediaStreamPrivate>&&);
+    static Ref<MediaStream> create(ScriptExecutionContext&, Ref<MediaStreamPrivate>&&);
     virtual ~MediaStream();
 
     String id() const { return m_private->id(); }
@@ -84,7 +84,7 @@
     bool active() const { return m_isActive; }
     bool muted() const { return m_isMuted; }
 
-    MediaStreamPrivate* privateStream() const { return m_private.get(); }
+    MediaStreamPrivate& privateStream() { return m_private.get(); }
 
     void startProducingData();
     void stopProducingData();
@@ -106,7 +106,7 @@
 
 protected:
     MediaStream(ScriptExecutionContext&, const MediaStreamTrackVector&);
-    MediaStream(ScriptExecutionContext&, RefPtr<MediaStreamPrivate>&&);
+    MediaStream(ScriptExecutionContext&, Ref<MediaStreamPrivate>&&);
 
     // ContextDestructionObserver
     void contextDestroyed() final;
@@ -146,7 +146,7 @@
 
     MediaStreamTrackVector trackVectorForType(RealtimeMediaSource::Type) const;
 
-    RefPtr<MediaStreamPrivate> m_private;
+    Ref<MediaStreamPrivate> m_private;
 
     HashMap<String, RefPtr<MediaStreamTrack>> m_trackSet;
 

Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamRegistry.cpp (215237 => 215238)


--- trunk/Source/WebCore/Modules/mediastream/MediaStreamRegistry.cpp	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamRegistry.cpp	2017-04-11 17:06:53 UTC (rev 215238)
@@ -94,7 +94,7 @@
 {
     Vector<MediaStream*>& allStreams = mediaStreams();
     for (auto& stream : allStreams) {
-        if (stream->privateStream() == &privateStream)
+        if (&stream->privateStream() == &privateStream)
             return stream;
     }
 

Modified: trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp (215237 => 215238)


--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp	2017-04-11 17:06:53 UTC (rev 215238)
@@ -168,7 +168,7 @@
             return;
         }
 
-        auto stream = MediaStream::create(*m_scriptExecutionContext, WTFMove(privateStream));
+        auto stream = MediaStream::create(*m_scriptExecutionContext, privateStream.releaseNonNull());
         if (stream->getTracks().isEmpty()) {
             deny(MediaAccessDenialReason::HardwareError, emptyString());
             return;

Modified: trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp (215237 => 215238)


--- trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp	2017-04-11 17:06:53 UTC (rev 215238)
@@ -450,10 +450,11 @@
     return String(videoTrack.id().data(), videoTrack.id().size());
 }
 
-MediaStream& LibWebRTCMediaEndpoint::mediaStreamFromRTCStream(webrtc::MediaStreamInterface* rtcStream)
+MediaStream& LibWebRTCMediaEndpoint::mediaStreamFromRTCStream(webrtc::MediaStreamInterface& rtcStream)
 {
-    auto mediaStream = m_streams.ensure(rtcStream, [this] {
-        auto stream = MediaStream::create(*m_peerConnectionBackend.connection().scriptExecutionContext());
+    auto mediaStream = m_streams.ensure(&rtcStream, [&rtcStream, this] {
+        auto label = rtcStream.label();
+        auto stream = MediaStream::create(*m_peerConnectionBackend.connection().scriptExecutionContext(), MediaStreamPrivate::create({ }, String(label.data(), label.size())));
         auto streamPointer = stream.ptr();
         m_peerConnectionBackend.addRemoteStream(WTFMove(stream));
         return streamPointer;
@@ -466,7 +467,7 @@
     if (!RuntimeEnabledFeatures::sharedFeatures().webRTCLegacyAPIEnabled())
         return;
 
-    auto& mediaStream = mediaStreamFromRTCStream(&rtcStream);
+    auto& mediaStream = mediaStreamFromRTCStream(rtcStream);
     m_peerConnectionBackend.connection().fireEvent(MediaStreamEvent::create(eventNames().addstreamEvent, false, false, &mediaStream));
 }
 
@@ -516,7 +517,7 @@
 
     Vector<RefPtr<MediaStream>> streams;
     for (auto& rtcStream : rtcStreams) {
-        auto& mediaStream = mediaStreamFromRTCStream(rtcStream.get());
+        auto& mediaStream = mediaStreamFromRTCStream(*rtcStream.get());
         streams.append(&mediaStream);
         mediaStream.addTrackFromPlatform(*track);
     }

Modified: trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h (215237 => 215238)


--- trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h	2017-04-11 17:06:53 UTC (rev 215238)
@@ -109,7 +109,7 @@
     void removeRemoteStream(webrtc::MediaStreamInterface&);
     void addDataChannel(rtc::scoped_refptr<webrtc::DataChannelInterface>&&);
 
-    MediaStream& mediaStreamFromRTCStream(webrtc::MediaStreamInterface*);
+    MediaStream& mediaStreamFromRTCStream(webrtc::MediaStreamInterface&);
 
     int AddRef() const { ref(); return static_cast<int>(refCount()); }
     int Release() const { deref(); return static_cast<int>(refCount()); }

Modified: trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp (215237 => 215238)


--- trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp	2017-04-11 17:06:53 UTC (rev 215238)
@@ -428,12 +428,11 @@
 #endif
 
 #if ENABLE(MEDIA_STREAM)
-bool MediaPlayer::load(MediaStreamPrivate* mediaStream)
+bool MediaPlayer::load(MediaStreamPrivate& mediaStream)
 {
     ASSERT(!m_reloadTimer.isActive());
-    ASSERT(mediaStream);
 
-    m_mediaStream = mediaStream;
+    m_mediaStream = &mediaStream;
     m_keySystem = emptyString();
     m_contentMIMEType = emptyString();
     m_contentMIMETypeWasInferredFromExtension = false;

Modified: trunk/Source/WebCore/platform/graphics/MediaPlayer.h (215237 => 215238)


--- trunk/Source/WebCore/platform/graphics/MediaPlayer.h	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/Source/WebCore/platform/graphics/MediaPlayer.h	2017-04-11 17:06:53 UTC (rev 215238)
@@ -338,7 +338,7 @@
     bool load(const URL&, const ContentType&, MediaSourcePrivateClient*);
 #endif
 #if ENABLE(MEDIA_STREAM)
-    bool load(MediaStreamPrivate*);
+    bool load(MediaStreamPrivate&);
 #endif
     void cancelLoad();
 

Modified: trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp (215237 => 215238)


--- trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp	2017-04-11 17:06:53 UTC (rev 215238)
@@ -38,7 +38,6 @@
 
 #include "GraphicsContext.h"
 #include "IntRect.h"
-#include "UUID.h"
 #include <wtf/MainThread.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
@@ -59,14 +58,9 @@
     return MediaStreamPrivate::create(tracks);
 }
 
-Ref<MediaStreamPrivate> MediaStreamPrivate::create(const MediaStreamTrackPrivateVector& tracks)
-{
-    return adoptRef(*new MediaStreamPrivate(createCanonicalUUIDString(), tracks));
-}
-
-MediaStreamPrivate::MediaStreamPrivate(const String& id, const MediaStreamTrackPrivateVector& tracks)
+MediaStreamPrivate::MediaStreamPrivate(const MediaStreamTrackPrivateVector& tracks, String&& id)
     : m_weakPtrFactory(this)
-    , m_id(id)
+    , m_id(WTFMove(id))
 {
     ASSERT(!m_id.isEmpty());
 

Modified: trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.h (215237 => 215238)


--- trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.h	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.h	2017-04-11 17:06:53 UTC (rev 215238)
@@ -39,6 +39,7 @@
 #include "FloatSize.h"
 #include "MediaStreamTrack.h"
 #include "MediaStreamTrackPrivate.h"
+#include "UUID.h"
 #include <wtf/Function.h>
 #include <wtf/HashMap.h>
 #include <wtf/MediaTime.h>
@@ -69,7 +70,7 @@
     };
 
     static Ref<MediaStreamPrivate> create(const Vector<Ref<RealtimeMediaSource>>& audioSources, const Vector<Ref<RealtimeMediaSource>>& videoSources);
-    static Ref<MediaStreamPrivate> create(const MediaStreamTrackPrivateVector&);
+    static Ref<MediaStreamPrivate> create(const MediaStreamTrackPrivateVector& tracks, String&& id = createCanonicalUUIDString()) { return adoptRef(*new MediaStreamPrivate(tracks, WTFMove(id))); }
 
     virtual ~MediaStreamPrivate();
 
@@ -116,7 +117,7 @@
 #endif
 
 private:
-    MediaStreamPrivate(const String&, const MediaStreamTrackPrivateVector&);
+    MediaStreamPrivate(const MediaStreamTrackPrivateVector&, String&&);
 
     // MediaStreamTrackPrivate::Observer
     void trackEnded(MediaStreamTrackPrivate&) override;

Modified: trunk/Source/WebCore/testing/Internals.cpp (215237 => 215238)


--- trunk/Source/WebCore/testing/Internals.cpp	2017-04-11 17:03:59 UTC (rev 215237)
+++ trunk/Source/WebCore/testing/Internals.cpp	2017-04-11 17:06:53 UTC (rev 215238)
@@ -468,8 +468,9 @@
 #endif
 
 #if ENABLE(WEB_RTC)
+#if PLATFORM(GTK)
     enableMockMediaEndpoint();
-    useMockRTCPeerConnectionFactory(String());
+#endif
 #if USE(LIBWEBRTC)
     if (document.page())
         document.page()->rtcController().disableICECandidateFiltering();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to