<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[181371] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/181371">181371</a></dd>
<dt>Author</dt> <dd>philn@webkit.org</dd>
<dt>Date</dt> <dd>2015-03-11 01:10:07 -0700 (Wed, 11 Mar 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Rename MediaStreamCenter to RealtimeMediaSourceCenter
https://bugs.webkit.org/show_bug.cgi?id=142535

Reviewed by Eric Carlson.

As per bug title, rename MediaStreamCenter to
RealtimeMediaSourceCenter, this class manages
RealtimeMediaSources, not MediaStreams. Some un-needed includes of
the header were also removed.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamcpp">trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamh">trunk/Source/WebCore/Modules/mediastream/MediaStream.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamTrackcpp">trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamUserMediaRequestcpp">trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamMediaStreamPrivatecpp">trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamRealtimeMediaSourcecpp">trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamgstreamerMediaStreamCenterGStreamercpp">trunk/Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamgstreamerMediaStreamCenterGStreamerh">trunk/Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVCaptureDeviceManagerh">trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h</a></li>
<li><a href="#trunkSourceWebCoretestingInternalscpp">trunk/Source/WebCore/testing/Internals.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceCentercpp">trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceCenterh">trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacRealtimeMediaSourceCenterMaccpp">trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacRealtimeMediaSourceCenterMach">trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmockMockRealtimeMediaSourceCentercpp">trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmockMockRealtimeMediaSourceCenterh">trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreplatformmediastreamMediaStreamCentercpp">trunk/Source/WebCore/platform/mediastream/MediaStreamCenter.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamMediaStreamCenterh">trunk/Source/WebCore/platform/mediastream/MediaStreamCenter.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacMediaStreamCenterMaccpp">trunk/Source/WebCore/platform/mediastream/mac/MediaStreamCenterMac.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacMediaStreamCenterMach">trunk/Source/WebCore/platform/mediastream/mac/MediaStreamCenterMac.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmockMockMediaStreamCentercpp">trunk/Source/WebCore/platform/mock/MockMediaStreamCenter.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmockMockMediaStreamCenterh">trunk/Source/WebCore/platform/mock/MockMediaStreamCenter.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/CMakeLists.txt        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -2166,10 +2166,10 @@
</span><span class="cx">     platform/graphics/transforms/TransformationMatrix.cpp
</span><span class="cx">     platform/graphics/transforms/TranslateTransformOperation.cpp
</span><span class="cx"> 
</span><del>-    platform/mediastream/MediaStreamCenter.cpp
</del><span class="cx">     platform/mediastream/MediaStreamPrivate.cpp
</span><span class="cx">     platform/mediastream/MediaStreamTrackPrivate.cpp
</span><span class="cx">     platform/mediastream/RealtimeMediaSource.cpp
</span><ins>+    platform/mediastream/RealtimeMediaSourceCenter.cpp
</ins><span class="cx">     platform/mediastream/RealtimeMediaSourceStates.cpp
</span><span class="cx">     platform/mediastream/RTCIceCandidateDescriptor.cpp
</span><span class="cx">     platform/mediastream/RTCPeerConnectionHandler.cpp
</span><span class="lines">@@ -2179,7 +2179,7 @@
</span><span class="cx">     platform/mock/DeviceOrientationClientMock.cpp
</span><span class="cx">     platform/mock/GeolocationClientMock.cpp
</span><span class="cx">     platform/mock/MediaConstraintsMock.cpp
</span><del>-    platform/mock/MockMediaStreamCenter.cpp
</del><ins>+    platform/mock/MockRealtimeMediaSourceCenter.cpp
</ins><span class="cx">     platform/mock/RTCDataChannelHandlerMock.cpp
</span><span class="cx">     platform/mock/RTCDTMFSenderHandlerMock.cpp
</span><span class="cx">     platform/mock/RTCNotifiersMock.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/ChangeLog        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2015-03-10  Philippe Normand  &lt;pnormand@igalia.com&gt;
+
+        Rename MediaStreamCenter to RealtimeMediaSourceCenter
+        https://bugs.webkit.org/show_bug.cgi?id=142535
+
+        Reviewed by Eric Carlson.
+
+        As per bug title, rename MediaStreamCenter to
+        RealtimeMediaSourceCenter, this class manages
+        RealtimeMediaSources, not MediaStreams. Some un-needed includes of
+        the header were also removed.
+
</ins><span class="cx"> 2015-03-11  Gyuyoung Kim  &lt;gyuyoung.kim@samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove unnecessary create() factory functions
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -33,7 +33,6 @@
</span><span class="cx"> #include &quot;AudioStreamTrack.h&quot;
</span><span class="cx"> #include &quot;Event.h&quot;
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><del>-#include &quot;MediaStreamCenter.h&quot;
</del><span class="cx"> #include &quot;MediaStreamRegistry.h&quot;
</span><span class="cx"> #include &quot;MediaStreamTrackEvent.h&quot;
</span><span class="cx"> #include &quot;RealtimeMediaSource.h&quot;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.h (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStream.h        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.h        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -43,8 +43,6 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-class MediaStreamCenter;
-
</del><span class="cx"> class MediaStream final : public RefCounted&lt;MediaStream&gt;, public URLRegistrable, public ScriptWrappable, public MediaStreamPrivateClient, public EventTargetWithInlineData, public ContextDestructionObserver {
</span><span class="cx"> public:
</span><span class="cx">     class Observer {
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamTrackcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -40,12 +40,12 @@
</span><span class="cx"> #include &quot;MediaConstraintsImpl.h&quot;
</span><span class="cx"> #include &quot;MediaSourceStates.h&quot;
</span><span class="cx"> #include &quot;MediaStream.h&quot;
</span><del>-#include &quot;MediaStreamCenter.h&quot;
</del><span class="cx"> #include &quot;MediaStreamPrivate.h&quot;
</span><span class="cx"> #include &quot;MediaStreamTrackSourcesCallback.h&quot;
</span><span class="cx"> #include &quot;MediaStreamTrackSourcesRequest.h&quot;
</span><span class="cx"> #include &quot;MediaTrackConstraints.h&quot;
</span><span class="cx"> #include &quot;NotImplemented.h&quot;
</span><ins>+#include &quot;RealtimeMediaSourceCenter.h&quot;
</ins><span class="cx"> #include &quot;VideoStreamTrack.h&quot;
</span><span class="cx"> #include &lt;wtf/Functional.h&gt;
</span><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="lines">@@ -151,7 +151,7 @@
</span><span class="cx"> void MediaStreamTrack::getSources(ScriptExecutionContext* context, PassRefPtr&lt;MediaStreamTrackSourcesCallback&gt; callback, ExceptionCode&amp; ec)
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;MediaStreamTrackSourcesRequest&gt; request = MediaStreamTrackSourcesRequest::create(context, callback);
</span><del>-    if (!MediaStreamCenter::singleton().getMediaStreamTrackSources(request.release()))
</del><ins>+    if (!RealtimeMediaSourceCenter::singleton().getMediaStreamTrackSources(request.release()))
</ins><span class="cx">         ec = NOT_SUPPORTED_ERR;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamUserMediaRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -43,8 +43,8 @@
</span><span class="cx"> #include &quot;Frame.h&quot;
</span><span class="cx"> #include &quot;MediaConstraintsImpl.h&quot;
</span><span class="cx"> #include &quot;MediaStream.h&quot;
</span><del>-#include &quot;MediaStreamCenter.h&quot;
</del><span class="cx"> #include &quot;MediaStreamPrivate.h&quot;
</span><ins>+#include &quot;RealtimeMediaSourceCenter.h&quot;
</ins><span class="cx"> #include &quot;SecurityOrigin.h&quot;
</span><span class="cx"> #include &quot;UserMediaController.h&quot;
</span><span class="cx"> #include &lt;wtf/Functional.h&gt;
</span><span class="lines">@@ -114,7 +114,7 @@
</span><span class="cx"> {
</span><span class="cx">     // 1 - make sure the system is capable of supporting the audio and video constraints. We don't want to ask for
</span><span class="cx">     // user permission if the constraints can not be suported.
</span><del>-    MediaStreamCenter::singleton().validateRequestConstraints(this, m_audioConstraints, m_videoConstraints);
</del><ins>+    RealtimeMediaSourceCenter::singleton().validateRequestConstraints(this, m_audioConstraints, m_videoConstraints);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx">     
</span><span class="lines">@@ -133,7 +133,7 @@
</span><span class="cx">     RefPtr&lt;UserMediaRequest&gt; protectedThis(this);
</span><span class="cx">     callOnMainThread([protectedThis] {
</span><span class="cx">         // 3 - the user granted access, ask platform to create the media stream descriptors.
</span><del>-        MediaStreamCenter::singleton().createMediaStream(protectedThis.get(), protectedThis-&gt;m_audioConstraints, protectedThis-&gt;m_videoConstraints);
</del><ins>+        RealtimeMediaSourceCenter::singleton().createMediaStream(protectedThis.get(), protectedThis-&gt;m_audioConstraints, protectedThis-&gt;m_videoConstraints);
</ins><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -252,10 +252,6 @@
</span><span class="cx">                 078E092E17D14D1C00420AA1 /* UserMediaClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B8D17CEC32700848E51 /* UserMediaClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 078E092F17D14D1C00420AA1 /* UserMediaController.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B8F17CEC32700848E51 /* UserMediaController.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 078E093017D14D1C00420AA1 /* UserMediaRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B9117CEC32700848E51 /* UserMediaRequest.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                078E093117D1684200420AA1 /* MediaStreamCenterMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0729B14E17CFCCA0004F1D60 /* MediaStreamCenterMac.cpp */; };
-                078E093217D1684600420AA1 /* MediaStreamCenterMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 0729B14F17CFCCA0004F1D60 /* MediaStreamCenterMac.h */; settings = {ATTRIBUTES = (Private, ); }; };
-                078E093317D16B0600420AA1 /* MediaStreamCenter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07221B9A17CF0AD400848E51 /* MediaStreamCenter.cpp */; };
-                078E093417D16B0B00420AA1 /* MediaStreamCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B9B17CF0AD400848E51 /* MediaStreamCenter.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 078E093717D16B2C00420AA1 /* MediaStreamPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B9D17CF0AD400848E51 /* MediaStreamPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 078E093917D16B2C00420AA1 /* MediaStreamCreationClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221BA017CF0AD400848E51 /* MediaStreamCreationClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 078E093A17D16E1C00420AA1 /* MediaConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B9917CF0AD400848E51 /* MediaConstraints.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -330,8 +326,6 @@
</span><span class="cx">                 07C59B5E17F4B208000FBCBB /* JSAudioStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C59B5A17F4B208000FBCBB /* JSAudioStreamTrack.h */; };
</span><span class="cx">                 07C59B5F17F4B208000FBCBB /* JSVideoStreamTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C59B5B17F4B208000FBCBB /* JSVideoStreamTrack.cpp */; };
</span><span class="cx">                 07C59B6017F4B208000FBCBB /* JSVideoStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C59B5C17F4B208000FBCBB /* JSVideoStreamTrack.h */; };
</span><del>-                07C59B6317F4D1BF000FBCBB /* MockMediaStreamCenter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C59B6117F4CF87000FBCBB /* MockMediaStreamCenter.cpp */; };
-                07C59B6417F4D1C4000FBCBB /* MockMediaStreamCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C59B6217F4CF87000FBCBB /* MockMediaStreamCenter.h */; };
</del><span class="cx">                 07C59B6817F784BA000FBCBB /* MediaSourceStates.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C59B6517F784BA000FBCBB /* MediaSourceStates.cpp */; };
</span><span class="cx">                 07C59B6917F784BA000FBCBB /* MediaSourceStates.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C59B6617F784BA000FBCBB /* MediaSourceStates.h */; };
</span><span class="cx">                 07C59B6E17F794F6000FBCBB /* JSMediaSourceStatesCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C59B6D17F794F6000FBCBB /* JSMediaSourceStatesCustom.cpp */; };
</span><span class="lines">@@ -1768,6 +1762,12 @@
</span><span class="cx">                 49FFBF4011C93EE3006A7118 /* WebGLLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 49FFBF3E11C93EE3006A7118 /* WebGLLayer.mm */; };
</span><span class="cx">                 4A0DA2FE129B241900AB61E1 /* FormAssociatedElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A0DA2FC129B241900AB61E1 /* FormAssociatedElement.cpp */; };
</span><span class="cx">                 4A0DA2FF129B241900AB61E1 /* FormAssociatedElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A0DA2FD129B241900AB61E1 /* FormAssociatedElement.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><ins>+                4A0FFA9D1AAF5E750062803B /* MockRealtimeMediaSourceCenter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A0FFA9B1AAF5E6C0062803B /* MockRealtimeMediaSourceCenter.cpp */; };
+                4A0FFA9E1AAF5E7E0062803B /* MockRealtimeMediaSourceCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A0FFA9C1AAF5E6C0062803B /* MockRealtimeMediaSourceCenter.h */; };
+                4A0FFAA11AAF5EA20062803B /* RealtimeMediaSourceCenter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A0FFA9F1AAF5EA20062803B /* RealtimeMediaSourceCenter.cpp */; };
+                4A0FFAA21AAF5EA20062803B /* RealtimeMediaSourceCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A0FFAA01AAF5EA20062803B /* RealtimeMediaSourceCenter.h */; settings = {ATTRIBUTES = (Private, ); }; };
+                4A0FFAA51AAF5EF60062803B /* RealtimeMediaSourceCenterMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A0FFAA31AAF5EF60062803B /* RealtimeMediaSourceCenterMac.cpp */; };
+                4A0FFAA61AAF5EF60062803B /* RealtimeMediaSourceCenterMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A0FFAA41AAF5EF60062803B /* RealtimeMediaSourceCenterMac.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 4A38BF5014FE1C0900612512 /* WebSocketDeflateFramer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A38BF4E14FE1C0900612512 /* WebSocketDeflateFramer.cpp */; };
</span><span class="cx">                 4A38BF5114FE1C0900612512 /* WebSocketDeflateFramer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A38BF4F14FE1C0900612512 /* WebSocketDeflateFramer.h */; };
</span><span class="cx">                 4A4F48A916B0DFC000EDBB29 /* DocumentRuleSets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A4F48A716B0DFC000EDBB29 /* DocumentRuleSets.cpp */; };
</span><span class="lines">@@ -7157,8 +7157,6 @@
</span><span class="cx">                 07221B9017CEC32700848E51 /* UserMediaRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UserMediaRequest.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07221B9117CEC32700848E51 /* UserMediaRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserMediaRequest.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07221B9917CF0AD400848E51 /* MediaConstraints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaConstraints.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                07221B9A17CF0AD400848E51 /* MediaStreamCenter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStreamCenter.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                07221B9B17CF0AD400848E51 /* MediaStreamCenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamCenter.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 07221B9D17CF0AD400848E51 /* MediaStreamPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamPrivate.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07221BA017CF0AD400848E51 /* MediaStreamCreationClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamCreationClient.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07221BA217CF0AD400848E51 /* RTCDataChannelHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCDataChannelHandler.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -7188,8 +7186,6 @@
</span><span class="cx">                 07277E4917D018CC0015534D /* JSMediaStreamTrackEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMediaStreamTrackEvent.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 072847E216EBC5B00043CFA4 /* PlatformTextTrack.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformTextTrack.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 072847E316EBC5B00043CFA4 /* PlatformTextTrackMenu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformTextTrackMenu.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                0729B14E17CFCCA0004F1D60 /* MediaStreamCenterMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStreamCenterMac.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                0729B14F17CFCCA0004F1D60 /* MediaStreamCenterMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamCenterMac.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 072AE1DF183C0741000A5988 /* PluginReplacement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PluginReplacement.h; path = plugins/PluginReplacement.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 072AE1E0183C0741000A5988 /* QuickTimePluginReplacement.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = QuickTimePluginReplacement.mm; path = plugins/QuickTimePluginReplacement.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 072AE1E1183C0741000A5988 /* QuickTimePluginReplacement.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; name = QuickTimePluginReplacement.css; path = plugins/QuickTimePluginReplacement.css; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -7330,8 +7326,6 @@
</span><span class="cx">                 07C59B5A17F4B208000FBCBB /* JSAudioStreamTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSAudioStreamTrack.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07C59B5B17F4B208000FBCBB /* JSVideoStreamTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSVideoStreamTrack.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07C59B5C17F4B208000FBCBB /* JSVideoStreamTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSVideoStreamTrack.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                07C59B6117F4CF87000FBCBB /* MockMediaStreamCenter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MockMediaStreamCenter.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                07C59B6217F4CF87000FBCBB /* MockMediaStreamCenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MockMediaStreamCenter.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 07C59B6517F784BA000FBCBB /* MediaSourceStates.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaSourceStates.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07C59B6617F784BA000FBCBB /* MediaSourceStates.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaSourceStates.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07C59B6717F784BA000FBCBB /* MediaSourceStates.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaSourceStates.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -8903,6 +8897,12 @@
</span><span class="cx">                 49FFBF3E11C93EE3006A7118 /* WebGLLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebGLLayer.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 4A0DA2FC129B241900AB61E1 /* FormAssociatedElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FormAssociatedElement.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 4A0DA2FD129B241900AB61E1 /* FormAssociatedElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FormAssociatedElement.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                4A0FFA9B1AAF5E6C0062803B /* MockRealtimeMediaSourceCenter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MockRealtimeMediaSourceCenter.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                4A0FFA9C1AAF5E6C0062803B /* MockRealtimeMediaSourceCenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MockRealtimeMediaSourceCenter.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                4A0FFA9F1AAF5EA20062803B /* RealtimeMediaSourceCenter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RealtimeMediaSourceCenter.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                4A0FFAA01AAF5EA20062803B /* RealtimeMediaSourceCenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RealtimeMediaSourceCenter.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                4A0FFAA31AAF5EF60062803B /* RealtimeMediaSourceCenterMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RealtimeMediaSourceCenterMac.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                4A0FFAA41AAF5EF60062803B /* RealtimeMediaSourceCenterMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RealtimeMediaSourceCenterMac.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 4A38BF4E14FE1C0900612512 /* WebSocketDeflateFramer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebSocketDeflateFramer.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 4A38BF4F14FE1C0900612512 /* WebSocketDeflateFramer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSocketDeflateFramer.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 4A4F48A716B0DFC000EDBB29 /* DocumentRuleSets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DocumentRuleSets.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -14592,6 +14592,8 @@
</span><span class="cx">                 07221B9217CF0AD400848E51 /* mediastream */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                4A0FFA9F1AAF5EA20062803B /* RealtimeMediaSourceCenter.cpp */,
+                                4A0FFAA01AAF5EA20062803B /* RealtimeMediaSourceCenter.h */,
</ins><span class="cx">                                 4A4F656B1AA997F100E38CDD /* RealtimeMediaSource.cpp */,
</span><span class="cx">                                 4A4F656C1AA997F100E38CDD /* RealtimeMediaSource.h */,
</span><span class="cx">                                 4A4F656D1AA997F100E38CDD /* RealtimeMediaSourceCapabilities.h */,
</span><span class="lines">@@ -14599,8 +14601,6 @@
</span><span class="cx">                                 4A4F656F1AA997F100E38CDD /* RealtimeMediaSourceStates.h */,
</span><span class="cx">                                 0729B14D17CFCCA0004F1D60 /* mac */,
</span><span class="cx">                                 07221B9917CF0AD400848E51 /* MediaConstraints.h */,
</span><del>-                                07221B9A17CF0AD400848E51 /* MediaStreamCenter.cpp */,
-                                07221B9B17CF0AD400848E51 /* MediaStreamCenter.h */,
</del><span class="cx">                                 070F549717F12F6B00169E04 /* MediaStreamConstraintsValidationClient.h */,
</span><span class="cx">                                 07221BA017CF0AD400848E51 /* MediaStreamCreationClient.h */,
</span><span class="cx">                                 0711588F17DF633700EDFE2B /* MediaStreamPrivate.cpp */,
</span><span class="lines">@@ -14632,6 +14632,8 @@
</span><span class="cx">                 0729B14D17CFCCA0004F1D60 /* mac */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                4A0FFAA31AAF5EF60062803B /* RealtimeMediaSourceCenterMac.cpp */,
+                                4A0FFAA41AAF5EF60062803B /* RealtimeMediaSourceCenterMac.h */,
</ins><span class="cx">                                 070363D8181A1CDC00C074A5 /* AVAudioCaptureSource.h */,
</span><span class="cx">                                 070363D9181A1CDC00C074A5 /* AVAudioCaptureSource.mm */,
</span><span class="cx">                                 070363DA181A1CDC00C074A5 /* AVCaptureDeviceManager.h */,
</span><span class="lines">@@ -14640,8 +14642,6 @@
</span><span class="cx">                                 070363DD181A1CDC00C074A5 /* AVMediaCaptureSource.mm */,
</span><span class="cx">                                 070363DE181A1CDC00C074A5 /* AVVideoCaptureSource.h */,
</span><span class="cx">                                 070363DF181A1CDC00C074A5 /* AVVideoCaptureSource.mm */,
</span><del>-                                0729B14E17CFCCA0004F1D60 /* MediaStreamCenterMac.cpp */,
-                                0729B14F17CFCCA0004F1D60 /* MediaStreamCenterMac.h */,
</del><span class="cx">                         );
</span><span class="cx">                         path = mac;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="lines">@@ -16291,13 +16291,13 @@
</span><span class="cx">                 59C77F101054591C00506104 /* mock */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                4A0FFA9B1AAF5E6C0062803B /* MockRealtimeMediaSourceCenter.cpp */,
+                                4A0FFA9C1AAF5E6C0062803B /* MockRealtimeMediaSourceCenter.h */,
</ins><span class="cx">                                 CDF2B005182053DF00F2B424 /* mediasource */,
</span><span class="cx">                                 59309A1011F4AE5800250603 /* DeviceOrientationClientMock.cpp */,
</span><span class="cx">                                 59309A1211F4AE6A00250603 /* DeviceOrientationClientMock.h */,
</span><span class="cx">                                 073794DF19EE2D1B00E5A045 /* MediaConstraintsMock.cpp */,
</span><span class="cx">                                 073794E019EE2D1B00E5A045 /* MediaConstraintsMock.h */,
</span><del>-                                07C59B6117F4CF87000FBCBB /* MockMediaStreamCenter.cpp */,
-                                07C59B6217F4CF87000FBCBB /* MockMediaStreamCenter.h */,
</del><span class="cx">                                 AAE27B7416CBFC0D00623043 /* PlatformSpeechSynthesizerMock.cpp */,
</span><span class="cx">                                 AAE27B7516CBFC0D00623043 /* PlatformSpeechSynthesizerMock.h */,
</span><span class="cx">                                 073794F319F5864E00E5A045 /* RTCDataChannelHandlerMock.cpp */,
</span><span class="lines">@@ -23869,6 +23869,7 @@
</span><span class="cx">                                 E1FE136B183FE1AB00892F13 /* CryptoAlgorithmRSA_OAEP.h in Headers */,
</span><span class="cx">                                 E1233F0D185A3E3B008DFAF5 /* CryptoAlgorithmRSAES_PKCS1_v1_5.h in Headers */,
</span><span class="cx">                                 E1BD331E182D8F4200C05D9F /* CryptoAlgorithmRsaKeyGenParams.h in Headers */,
</span><ins>+                                4A0FFAA61AAF5EF60062803B /* RealtimeMediaSourceCenterMac.h in Headers */,
</ins><span class="cx">                                 E1C266DB18319935003F8B33 /* CryptoAlgorithmRsaKeyParamsWithHash.h in Headers */,
</span><span class="cx">                                 E1FE1377184D1E3300892F13 /* CryptoAlgorithmRsaOaepParams.h in Headers */,
</span><span class="cx">                                 E1BD331A182D8DDD00C05D9F /* CryptoAlgorithmRSASSA_PKCS1_v1_5.h in Headers */,
</span><span class="lines">@@ -23997,6 +23998,7 @@
</span><span class="cx">                                 45FEA5D0156DDE8C00654101 /* Decimal.h in Headers */,
</span><span class="cx">                                 A8C228A111D5722E00D5A7D3 /* DecodedDataDocumentParser.h in Headers */,
</span><span class="cx">                                 CECCFC3B141973D5002A0AC1 /* DecodeEscapeSequences.h in Headers */,
</span><ins>+                                4A0FFAA21AAF5EA20062803B /* RealtimeMediaSourceCenter.h in Headers */,
</ins><span class="cx">                                 4162A451101145AE00DFF3ED /* DedicatedWorkerGlobalScope.h in Headers */,
</span><span class="cx">                                 41A3D58F101C152D00316D07 /* DedicatedWorkerThread.h in Headers */,
</span><span class="cx">                                 FD06DFA6134A4DEF006F5D7D /* DefaultAudioDestinationNode.h in Headers */,
</span><span class="lines">@@ -25625,8 +25627,6 @@
</span><span class="cx">                                 0783228518013ED800999E0C /* MediaStreamAudioSource.h in Headers */,
</span><span class="cx">                                 FD671A78159BB07000197559 /* MediaStreamAudioSourceNode.h in Headers */,
</span><span class="cx">                                 0705850B17FA4827005F2BCB /* MediaStreamCapabilities.h in Headers */,
</span><del>-                                078E093417D16B0B00420AA1 /* MediaStreamCenter.h in Headers */,
-                                078E093217D1684600420AA1 /* MediaStreamCenterMac.h in Headers */,
</del><span class="cx">                                 070F549817F12F6B00169E04 /* MediaStreamConstraintsValidationClient.h in Headers */,
</span><span class="cx">                                 078E093917D16B2C00420AA1 /* MediaStreamCreationClient.h in Headers */,
</span><span class="cx">                                 078E091617D14D1C00420AA1 /* MediaStreamEvent.h in Headers */,
</span><span class="lines">@@ -25662,7 +25662,6 @@
</span><span class="cx">                                 CDF2B0111820540600F2B424 /* MockBox.h in Headers */,
</span><span class="cx">                                 CDF2B0131820540600F2B424 /* MockMediaPlayerMediaSource.h in Headers */,
</span><span class="cx">                                 CDF2B0151820540600F2B424 /* MockMediaSourcePrivate.h in Headers */,
</span><del>-                                07C59B6417F4D1C4000FBCBB /* MockMediaStreamCenter.h in Headers */,
</del><span class="cx">                                 CDF2B0171820540700F2B424 /* MockSourceBufferPrivate.h in Headers */,
</span><span class="cx">                                 CDF2B0191820540700F2B424 /* MockTracks.h in Headers */,
</span><span class="cx">                                 C6D74AD509AA282E000B0A52 /* ModifySelectionListLevel.h in Headers */,
</span><span class="lines">@@ -27021,6 +27020,7 @@
</span><span class="cx">                                 1AB7FC7D0A8B92EC00D9D37B /* XPathPredicate.h in Headers */,
</span><span class="cx">                                 1AB7FC7F0A8B92EC00D9D37B /* XPathResult.h in Headers */,
</span><span class="cx">                                 1AB7FC820A8B92EC00D9D37B /* XPathStep.h in Headers */,
</span><ins>+                                4A0FFA9E1AAF5E7E0062803B /* MockRealtimeMediaSourceCenter.h in Headers */,
</ins><span class="cx">                                 1AB7FC840A8B92EC00D9D37B /* XPathUtil.h in Headers */,
</span><span class="cx">                                 1AB7FC860A8B92EC00D9D37B /* XPathValue.h in Headers */,
</span><span class="cx">                                 1AB7FC880A8B92EC00D9D37B /* XPathVariableReference.h in Headers */,
</span><span class="lines">@@ -27959,6 +27959,7 @@
</span><span class="cx">                                 9766504F144FBFFE00F6BB51 /* EventFactory.cpp in Sources */,
</span><span class="cx">                                 93C09A810B064F00005ABD4D /* EventHandler.cpp in Sources */,
</span><span class="cx">                                 FE6938B61045D67E008EABB6 /* EventHandlerIOS.mm in Sources */,
</span><ins>+                                4A0FFAA11AAF5EA20062803B /* RealtimeMediaSourceCenter.cpp in Sources */,
</ins><span class="cx">                                 93C09A7F0B064EEF005ABD4D /* EventHandlerMac.mm in Sources */,
</span><span class="cx">                                 AD4495F3141FC08900541EDF /* EventListenerMap.cpp in Sources */,
</span><span class="cx">                                 C400D10918F1C8F60090D863 /* EventLoopInput.cpp in Sources */,
</span><span class="lines">@@ -29172,8 +29173,6 @@
</span><span class="cx">                                 0783228418013ED800999E0C /* MediaStreamAudioSource.cpp in Sources */,
</span><span class="cx">                                 FD671A77159BB07000197559 /* MediaStreamAudioSourceNode.cpp in Sources */,
</span><span class="cx">                                 0705851517FB0EEA005F2BCB /* MediaStreamCapabilities.cpp in Sources */,
</span><del>-                                078E093317D16B0600420AA1 /* MediaStreamCenter.cpp in Sources */,
-                                078E093117D1684200420AA1 /* MediaStreamCenterMac.cpp in Sources */,
</del><span class="cx">                                 078E090017D14CEE00420AA1 /* MediaStreamEvent.cpp in Sources */,
</span><span class="cx">                                 0711589117DF6F6600EDFE2B /* MediaStreamPrivate.cpp in Sources */,
</span><span class="cx">                                 078E090117D14CEE00420AA1 /* MediaStreamRegistry.cpp in Sources */,
</span><span class="lines">@@ -29204,7 +29203,6 @@
</span><span class="cx">                                 724ED3311A3A8B2300F5F13C /* JSEXTBlendMinMax.cpp in Sources */,
</span><span class="cx">                                 CDF2B0121820540600F2B424 /* MockMediaPlayerMediaSource.cpp in Sources */,
</span><span class="cx">                                 CDF2B0141820540600F2B424 /* MockMediaSourcePrivate.cpp in Sources */,
</span><del>-                                07C59B6317F4D1BF000FBCBB /* MockMediaStreamCenter.cpp in Sources */,
</del><span class="cx">                                 CDF2B0161820540700F2B424 /* MockSourceBufferPrivate.cpp in Sources */,
</span><span class="cx">                                 CDF2B0181820540700F2B424 /* MockTracks.cpp in Sources */,
</span><span class="cx">                                 C6D74AE409AA290A000B0A52 /* ModifySelectionListLevel.cpp in Sources */,
</span><span class="lines">@@ -29702,6 +29700,7 @@
</span><span class="cx">                                 AA2A5ACD16A485FA00975A25 /* SpeechSynthesisVoice.cpp in Sources */,
</span><span class="cx">                                 A78FE13B12366B1000ACE8D0 /* SpellChecker.cpp in Sources */,
</span><span class="cx">                                 B8DBDB4D130B0F8A00F5CDB1 /* SpellingCorrectionCommand.cpp in Sources */,
</span><ins>+                                4A0FFAA51AAF5EF60062803B /* RealtimeMediaSourceCenterMac.cpp in Sources */,
</ins><span class="cx">                                 4512502215DCE37D002F84E2 /* SpinButtonElement.cpp in Sources */,
</span><span class="cx">                                 93309E11099E64920056E581 /* SplitElementCommand.cpp in Sources */,
</span><span class="cx">                                 93309E13099E64920056E581 /* SplitTextNodeCommand.cpp in Sources */,
</span><span class="lines">@@ -30032,6 +30031,7 @@
</span><span class="cx">                                 F55B3DDB1251F12D003EF269 /* TimeInputType.cpp in Sources */,
</span><span class="cx">                                 7553CFE9108F473F00EA281E /* TimelineRecordFactory.cpp in Sources */,
</span><span class="cx">                                 93309EA4099EB78C0056E581 /* Timer.cpp in Sources */,
</span><ins>+                                4A0FFA9D1AAF5E750062803B /* MockRealtimeMediaSourceCenter.cpp in Sources */,
</ins><span class="cx">                                 585D6E031A1A792E00FA4F12 /* SimpleLineLayoutFlowContents.cpp in Sources */,
</span><span class="cx">                                 E44613AF0CD6331000FADA75 /* TimeRanges.cpp in Sources */,
</span><span class="cx">                                 A1DE71321861322200734192 /* TouchConstructors.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamMediaStreamCentercpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mediastream/MediaStreamCenter.cpp (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/MediaStreamCenter.cpp        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/platform/mediastream/MediaStreamCenter.cpp        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -1,72 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Ericsson AB. All rights reserved.
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer
- *    in the documentation and/or other materials provided with the
- *    distribution.
- * 3. Neither the name of Ericsson nor the names of its contributors
- *    may be used to endorse or promote products derived from this
- *    software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-
-#if ENABLE(MEDIA_STREAM)
-
-#include &quot;MediaStreamCenter.h&quot;
-
-#include &quot;MediaStreamPrivate.h&quot;
-
-namespace WebCore {
-
-static MediaStreamCenter*&amp; mediaStreamCenterOverride()
-{
-    static MediaStreamCenter* override;
-    return override;
-}
-
-MediaStreamCenter&amp; MediaStreamCenter::singleton()
-{
-    MediaStreamCenter* override = mediaStreamCenterOverride();
-    if (override)
-        return *override;
-    
-    return MediaStreamCenter::platformCenter();
-}
-
-void MediaStreamCenter::setSharedStreamCenter(MediaStreamCenter* center)
-{
-    mediaStreamCenterOverride() = center;
-}
-
-MediaStreamCenter::MediaStreamCenter()
-{
-}
-
-MediaStreamCenter::~MediaStreamCenter()
-{
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamMediaStreamCenterh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mediastream/MediaStreamCenter.h (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/MediaStreamCenter.h        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/platform/mediastream/MediaStreamCenter.h        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -1,71 +0,0 @@
</span><del>-/*
- * Copyright (C) 2011 Ericsson AB. All rights reserved.
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer
- *    in the documentation and/or other materials provided with the
- *    distribution.
- * 3. Neither the name of Ericsson nor the names of its contributors
- *    may be used to endorse or promote products derived from this
- *    software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef MediaStreamCenter_h
-#define MediaStreamCenter_h
-
-#if ENABLE(MEDIA_STREAM)
-
-#include &quot;RealtimeMediaSource.h&quot;
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-namespace WebCore {
-
-class MediaConstraints;
-class MediaStreamCreationClient;
-class RealtimeMediaSourceStates;
-class MediaStreamTrackSourcesRequestClient;
-
-class MediaStreamCenter {
-public:
-    virtual ~MediaStreamCenter();
-
-    static MediaStreamCenter&amp; singleton();
-    static void setSharedStreamCenter(MediaStreamCenter*);
-
-    virtual void validateRequestConstraints(PassRefPtr&lt;MediaStreamCreationClient&gt;, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints) = 0;
-
-    virtual void createMediaStream(PassRefPtr&lt;MediaStreamCreationClient&gt;, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints) = 0;
-
-    virtual bool getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt;) = 0;
-
-protected:
-    MediaStreamCenter();
-
-    static MediaStreamCenter&amp; platformCenter();
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
-
-#endif // MediaStreamCenter_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamMediaStreamPrivatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;MediaStreamPrivate.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;MediaStreamCenter.h&quot;
</del><span class="cx"> #include &quot;UUID.h&quot;
</span><span class="cx"> #include &lt;wtf/RefCounted.h&gt;
</span><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamRealtimeMediaSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -35,7 +35,6 @@
</span><span class="cx"> #if ENABLE(MEDIA_STREAM)
</span><span class="cx"> #include &quot;RealtimeMediaSource.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;MediaStreamCenter.h&quot;
</del><span class="cx"> #include &quot;RealtimeMediaSourceCapabilities.h&quot;
</span><span class="cx"> #include &quot;UUID.h&quot;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceCentercppfromrev181368trunkSourceWebCoreplatformmediastreamMediaStreamCentercpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp (from rev 181368, trunk/Source/WebCore/platform/mediastream/MediaStreamCenter.cpp) (0 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp                                (rev 0)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -0,0 +1,71 @@
</span><ins>+/*
+ * Copyright (C) 2011 Ericsson AB. All rights reserved.
+ * Copyright (C) 2012 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer
+ *    in the documentation and/or other materials provided with the
+ *    distribution.
+ * 3. Neither the name of Ericsson nor the names of its contributors
+ *    may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+
+#if ENABLE(MEDIA_STREAM)
+#include &quot;RealtimeMediaSourceCenter.h&quot;
+
+#include &quot;MediaStreamPrivate.h&quot;
+
+namespace WebCore {
+
+static RealtimeMediaSourceCenter*&amp; mediaStreamCenterOverride()
+{
+    static RealtimeMediaSourceCenter* override;
+    return override;
+}
+
+RealtimeMediaSourceCenter&amp; RealtimeMediaSourceCenter::singleton()
+{
+    RealtimeMediaSourceCenter* override = mediaStreamCenterOverride();
+    if (override)
+        return *override;
+    
+    return RealtimeMediaSourceCenter::platformCenter();
+}
+
+void RealtimeMediaSourceCenter::setSharedStreamCenter(RealtimeMediaSourceCenter* center)
+{
+    mediaStreamCenterOverride() = center;
+}
+
+RealtimeMediaSourceCenter::RealtimeMediaSourceCenter()
+{
+}
+
+RealtimeMediaSourceCenter::~RealtimeMediaSourceCenter()
+{
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(MEDIA_STREAM)
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceCenterhfromrev181368trunkSourceWebCoreplatformmediastreamMediaStreamCenterh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h (from rev 181368, trunk/Source/WebCore/platform/mediastream/MediaStreamCenter.h) (0 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h                                (rev 0)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -0,0 +1,71 @@
</span><ins>+/*
+ * Copyright (C) 2011 Ericsson AB. All rights reserved.
+ * Copyright (C) 2012 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer
+ *    in the documentation and/or other materials provided with the
+ *    distribution.
+ * 3. Neither the name of Ericsson nor the names of its contributors
+ *    may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef RealtimeMediaSourceCenter_h
+#define RealtimeMediaSourceCenter_h
+
+#if ENABLE(MEDIA_STREAM)
+
+#include &quot;RealtimeMediaSource.h&quot;
+#include &lt;wtf/PassRefPtr.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace WebCore {
+
+class MediaConstraints;
+class MediaStreamCreationClient;
+class RealtimeMediaSourceStates;
+class MediaStreamTrackSourcesRequestClient;
+
+class RealtimeMediaSourceCenter {
+public:
+    virtual ~RealtimeMediaSourceCenter();
+
+    static RealtimeMediaSourceCenter&amp; singleton();
+    static void setSharedStreamCenter(RealtimeMediaSourceCenter*);
+
+    virtual void validateRequestConstraints(PassRefPtr&lt;MediaStreamCreationClient&gt;, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints) = 0;
+
+    virtual void createMediaStream(PassRefPtr&lt;MediaStreamCreationClient&gt;, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints) = 0;
+
+    virtual bool getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt;) = 0;
+
+protected:
+    RealtimeMediaSourceCenter();
+
+    static RealtimeMediaSourceCenter&amp; platformCenter();
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(MEDIA_STREAM)
+
+#endif // RealtimeMediaSourceCenter_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamgstreamerMediaStreamCenterGStreamercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-MediaStreamCenter&amp; MediaStreamCenter::platformCenter()
</del><ins>+RealtimeMediaSourceCenter&amp; RealtimeMediaSourceCenter::platformCenter()
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(isMainThread());
</span><span class="cx">     DEPRECATED_DEFINE_STATIC_LOCAL(MediaStreamCenterGStreamer, center, ());
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamgstreamerMediaStreamCenterGStreamerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_STREAM)
</span><span class="cx"> 
</span><del>-#include &quot;MediaStreamCenter.h&quot;
</del><ins>+#include &quot;RealtimeMediaSourceCenter.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> #include &lt;wtf/PassRefPtr.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx"> class RealtimeMediaSource;
</span><span class="cx"> class MediaStreamSourcesQueryClient;
</span><span class="cx"> 
</span><del>-class MediaStreamCenterGStreamer : public MediaStreamCenter {
</del><ins>+class MediaStreamCenterGStreamer : public RealtimeMediaSourceCenter {
</ins><span class="cx"> public:
</span><span class="cx">     MediaStreamCenterGStreamer();
</span><span class="cx">     ~MediaStreamCenterGStreamer();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVCaptureDeviceManagerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_STREAM) &amp;&amp; USE(AVFOUNDATION)
</span><span class="cx"> 
</span><del>-#include &quot;MediaStreamCenter.h&quot;
</del><span class="cx"> #include &quot;MediaStreamTrackSourcesRequestClient.h&quot;
</span><span class="cx"> #include &quot;RealtimeMediaSource.h&quot;
</span><span class="cx"> #include &lt;wtf/RetainPtr.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacMediaStreamCenterMaccpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mediastream/mac/MediaStreamCenterMac.cpp (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/MediaStreamCenterMac.cpp        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/platform/mediastream/mac/MediaStreamCenterMac.cpp        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -1,139 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Apple, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer
- *    in the documentation and/or other materials provided with the
- *    distribution.
- * 3. Neither the name of Ericsson nor the names of its contributors
- *    may be used to endorse or promote products derived from this
- *    software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-
-#if ENABLE(MEDIA_STREAM)
-
-#include &quot;MediaStreamCenterMac.h&quot;
-
-#include &quot;AVCaptureDeviceManager.h&quot;
-#include &quot;MediaStreamCreationClient.h&quot;
-#include &quot;MediaStreamPrivate.h&quot;
-#include &quot;MediaStreamTrackSourcesRequestClient.h&quot;
-#include &lt;wtf/MainThread.h&gt;
-
-namespace WebCore {
-
-MediaStreamCenter&amp; MediaStreamCenter::platformCenter()
-{
-    ASSERT(isMainThread());
-    DEPRECATED_DEFINE_STATIC_LOCAL(MediaStreamCenterMac, center, ());
-    return center;
-}
-
-MediaStreamCenterMac::MediaStreamCenterMac()
-{
-}
-
-MediaStreamCenterMac::~MediaStreamCenterMac()
-{
-}
-
-void MediaStreamCenterMac::validateRequestConstraints(PassRefPtr&lt;MediaStreamCreationClient&gt; prpQueryClient, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints)
-{
-    RefPtr&lt;MediaStreamCreationClient&gt; client = prpQueryClient;
-    
-    ASSERT(client);
-
-    if (audioConstraints) {
-        String invalidConstraint;
-        AVCaptureDeviceManager::singleton().verifyConstraintsForMediaType(RealtimeMediaSource::Audio, audioConstraints.get(), invalidConstraint);
-        if (!invalidConstraint.isEmpty()) {
-            client-&gt;constraintsInvalid(invalidConstraint);
-            return;
-        }
-    }
-
-    if (videoConstraints) {
-        String invalidConstraint;
-        AVCaptureDeviceManager::singleton().verifyConstraintsForMediaType(RealtimeMediaSource::Video, videoConstraints.get(), invalidConstraint);
-        if (!invalidConstraint.isEmpty()) {
-            client-&gt;constraintsInvalid(invalidConstraint);
-            return;
-        }
-    }
-
-    client-&gt;constraintsValidated();
-}
-    
-void MediaStreamCenterMac::createMediaStream(PassRefPtr&lt;MediaStreamCreationClient&gt; prpQueryClient, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints)
-{
-    RefPtr&lt;MediaStreamCreationClient&gt; client = prpQueryClient;
-    
-    ASSERT(client);
-    
-    Vector&lt;RefPtr&lt;RealtimeMediaSource&gt;&gt; audioSources;
-    Vector&lt;RefPtr&lt;RealtimeMediaSource&gt;&gt; videoSources;
-    
-    if (audioConstraints) {
-        String invalidConstraint;
-        AVCaptureDeviceManager::singleton().verifyConstraintsForMediaType(RealtimeMediaSource::Audio, audioConstraints.get(), invalidConstraint);
-        if (!invalidConstraint.isEmpty()) {
-            client-&gt;failedToCreateStreamWithConstraintsError(invalidConstraint);
-            return;
-        }
-        
-        RefPtr&lt;RealtimeMediaSource&gt; audioSource = AVCaptureDeviceManager::singleton().bestSourceForTypeAndConstraints(RealtimeMediaSource::Audio, audioConstraints.get());
-        ASSERT(audioSource);
-        
-        audioSources.append(audioSource.release());
-    }
-    
-    if (videoConstraints) {
-        String invalidConstraint;
-        AVCaptureDeviceManager::singleton().verifyConstraintsForMediaType(RealtimeMediaSource::Video, videoConstraints.get(), invalidConstraint);
-        if (!invalidConstraint.isEmpty()) {
-            client-&gt;failedToCreateStreamWithConstraintsError(invalidConstraint);
-            return;
-        }
-        
-        RefPtr&lt;RealtimeMediaSource&gt; videoSource = AVCaptureDeviceManager::singleton().bestSourceForTypeAndConstraints(RealtimeMediaSource::Video, videoConstraints.get());
-        ASSERT(videoSource);
-        
-        videoSources.append(videoSource.release());
-    }
-    
-    client-&gt;didCreateStream(MediaStreamPrivate::create(audioSources, videoSources));
-}
-
-bool MediaStreamCenterMac::getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt; prpClient)
-{
-    RefPtr&lt;MediaStreamTrackSourcesRequestClient&gt; requestClient = prpClient;
-
-    Vector&lt;RefPtr&lt;TrackSourceInfo&gt;&gt; sources = AVCaptureDeviceManager::singleton().getSourcesInfo(requestClient-&gt;requestOrigin());
-
-    requestClient-&gt;didCompleteRequest(sources);
-    return true;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacMediaStreamCenterMach"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mediastream/mac/MediaStreamCenterMac.h (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/MediaStreamCenterMac.h        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/platform/mediastream/mac/MediaStreamCenterMac.h        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -1,58 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Apple, Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer
- *    in the documentation and/or other materials provided with the
- *    distribution.
- * 3. Neither the name of Ericsson nor the names of its contributors
- *    may be used to endorse or promote products derived from this
- *    software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef MediaStreamCenterMac_h
-#define MediaStreamCenterMac_h
-
-#if ENABLE(MEDIA_STREAM)
-
-#include &quot;MediaStreamCenter.h&quot;
-
-#include &quot;RealtimeMediaSource.h&quot;
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-namespace WebCore {
-
-class MediaStreamCenterMac final : public MediaStreamCenter {
-public:
-    MediaStreamCenterMac();
-    ~MediaStreamCenterMac();
-
-    virtual void validateRequestConstraints(PassRefPtr&lt;MediaStreamCreationClient&gt;, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints);
-    virtual void createMediaStream(PassRefPtr&lt;MediaStreamCreationClient&gt;, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints);
-    virtual bool getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt;) override;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
-
-#endif // MediaStreamCenterMac_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacRealtimeMediaSourceCenterMaccppfromrev181368trunkSourceWebCoreplatformmediastreammacMediaStreamCenterMaccpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp (from rev 181368, trunk/Source/WebCore/platform/mediastream/mac/MediaStreamCenterMac.cpp) (0 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp                                (rev 0)
+++ trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -0,0 +1,138 @@
</span><ins>+/*
+ * Copyright (C) 2013 Apple, Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer
+ *    in the documentation and/or other materials provided with the
+ *    distribution.
+ * 3. Neither the name of Ericsson nor the names of its contributors
+ *    may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+
+#if ENABLE(MEDIA_STREAM)
+#include &quot;RealtimeMediaSourceCenterMac.h&quot;
+
+#include &quot;AVCaptureDeviceManager.h&quot;
+#include &quot;MediaStreamCreationClient.h&quot;
+#include &quot;MediaStreamPrivate.h&quot;
+#include &quot;MediaStreamTrackSourcesRequestClient.h&quot;
+#include &lt;wtf/MainThread.h&gt;
+
+namespace WebCore {
+
+RealtimeMediaSourceCenter&amp; RealtimeMediaSourceCenter::platformCenter()
+{
+    ASSERT(isMainThread());
+    DEPRECATED_DEFINE_STATIC_LOCAL(RealtimeMediaSourceCenterMac, center, ());
+    return center;
+}
+
+RealtimeMediaSourceCenterMac::RealtimeMediaSourceCenterMac()
+{
+}
+
+RealtimeMediaSourceCenterMac::~RealtimeMediaSourceCenterMac()
+{
+}
+
+void RealtimeMediaSourceCenterMac::validateRequestConstraints(PassRefPtr&lt;MediaStreamCreationClient&gt; prpQueryClient, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints)
+{
+    RefPtr&lt;MediaStreamCreationClient&gt; client = prpQueryClient;
+    
+    ASSERT(client);
+
+    if (audioConstraints) {
+        String invalidConstraint;
+        AVCaptureDeviceManager::singleton().verifyConstraintsForMediaType(RealtimeMediaSource::Audio, audioConstraints.get(), invalidConstraint);
+        if (!invalidConstraint.isEmpty()) {
+            client-&gt;constraintsInvalid(invalidConstraint);
+            return;
+        }
+    }
+
+    if (videoConstraints) {
+        String invalidConstraint;
+        AVCaptureDeviceManager::singleton().verifyConstraintsForMediaType(RealtimeMediaSource::Video, videoConstraints.get(), invalidConstraint);
+        if (!invalidConstraint.isEmpty()) {
+            client-&gt;constraintsInvalid(invalidConstraint);
+            return;
+        }
+    }
+
+    client-&gt;constraintsValidated();
+}
+    
+void RealtimeMediaSourceCenterMac::createMediaStream(PassRefPtr&lt;MediaStreamCreationClient&gt; prpQueryClient, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints)
+{
+    RefPtr&lt;MediaStreamCreationClient&gt; client = prpQueryClient;
+    
+    ASSERT(client);
+    
+    Vector&lt;RefPtr&lt;RealtimeMediaSource&gt;&gt; audioSources;
+    Vector&lt;RefPtr&lt;RealtimeMediaSource&gt;&gt; videoSources;
+    
+    if (audioConstraints) {
+        String invalidConstraint;
+        AVCaptureDeviceManager::singleton().verifyConstraintsForMediaType(RealtimeMediaSource::Audio, audioConstraints.get(), invalidConstraint);
+        if (!invalidConstraint.isEmpty()) {
+            client-&gt;failedToCreateStreamWithConstraintsError(invalidConstraint);
+            return;
+        }
+        
+        RefPtr&lt;RealtimeMediaSource&gt; audioSource = AVCaptureDeviceManager::singleton().bestSourceForTypeAndConstraints(RealtimeMediaSource::Audio, audioConstraints.get());
+        ASSERT(audioSource);
+        
+        audioSources.append(audioSource.release());
+    }
+    
+    if (videoConstraints) {
+        String invalidConstraint;
+        AVCaptureDeviceManager::singleton().verifyConstraintsForMediaType(RealtimeMediaSource::Video, videoConstraints.get(), invalidConstraint);
+        if (!invalidConstraint.isEmpty()) {
+            client-&gt;failedToCreateStreamWithConstraintsError(invalidConstraint);
+            return;
+        }
+        
+        RefPtr&lt;RealtimeMediaSource&gt; videoSource = AVCaptureDeviceManager::singleton().bestSourceForTypeAndConstraints(RealtimeMediaSource::Video, videoConstraints.get());
+        ASSERT(videoSource);
+        
+        videoSources.append(videoSource.release());
+    }
+    
+    client-&gt;didCreateStream(MediaStreamPrivate::create(audioSources, videoSources));
+}
+
+bool RealtimeMediaSourceCenterMac::getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt; prpClient)
+{
+    RefPtr&lt;MediaStreamTrackSourcesRequestClient&gt; requestClient = prpClient;
+
+    Vector&lt;RefPtr&lt;TrackSourceInfo&gt;&gt; sources = AVCaptureDeviceManager::singleton().getSourcesInfo(requestClient-&gt;requestOrigin());
+
+    requestClient-&gt;didCompleteRequest(sources);
+    return true;
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(MEDIA_STREAM)
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacRealtimeMediaSourceCenterMachfromrev181368trunkSourceWebCoreplatformmediastreammacMediaStreamCenterMach"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.h (from rev 181368, trunk/Source/WebCore/platform/mediastream/mac/MediaStreamCenterMac.h) (0 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.h                                (rev 0)
+++ trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.h        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -0,0 +1,57 @@
</span><ins>+/*
+ * Copyright (C) 2013 Apple, Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer
+ *    in the documentation and/or other materials provided with the
+ *    distribution.
+ * 3. Neither the name of Ericsson nor the names of its contributors
+ *    may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef RealtimeMediaSourceCenterMac_h
+#define RealtimeMediaSourceCenterMac_h
+
+#if ENABLE(MEDIA_STREAM)
+
+#include &quot;RealtimeMediaSource.h&quot;
+#include &quot;RealtimeMediaSourceCenter.h&quot;
+#include &lt;wtf/PassRefPtr.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace WebCore {
+
+class RealtimeMediaSourceCenterMac final : public RealtimeMediaSourceCenter {
+public:
+    RealtimeMediaSourceCenterMac();
+    ~RealtimeMediaSourceCenterMac();
+
+    virtual void validateRequestConstraints(PassRefPtr&lt;MediaStreamCreationClient&gt;, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints);
+    virtual void createMediaStream(PassRefPtr&lt;MediaStreamCreationClient&gt;, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints);
+    virtual bool getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt;) override;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(MEDIA_STREAM)
+
+#endif // RealtimeMediaSourceCenterMac_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformmockMockMediaStreamCentercpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mock/MockMediaStreamCenter.cpp (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/MockMediaStreamCenter.cpp        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/platform/mock/MockMediaStreamCenter.cpp        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -1,220 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- * Copyright (C) 2013 Apple Inc.  All rights reserved.
- * Copyright (C) 2013 Nokia Corporation and/or its subsidiary(-ies).
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-
-#if ENABLE(MEDIA_STREAM)
-
-#include &quot;MockMediaStreamCenter.h&quot;
-
-#include &quot;MediaConstraintsMock.h&quot;
-#include &quot;MediaStream.h&quot;
-#include &quot;MediaStreamCreationClient.h&quot;
-#include &quot;MediaStreamPrivate.h&quot;
-#include &quot;MediaStreamTrack.h&quot;
-#include &quot;MediaStreamTrackSourcesRequestClient.h&quot;
-#include &quot;RealtimeMediaSource.h&quot;
-#include &quot;RealtimeMediaSourceCapabilities.h&quot;
-#include &lt;wtf/NeverDestroyed.h&gt;
-
-namespace WebCore {
-
-class MockSource : public RealtimeMediaSource {
-public:
-    MockSource(const AtomicString&amp; id, const AtomicString&amp; name, RealtimeMediaSource::Type type)
-        : RealtimeMediaSource(id, type, name)
-    {
-    }
-
-    virtual ~MockSource() { }
-
-    virtual RefPtr&lt;RealtimeMediaSourceCapabilities&gt; capabilities() const { return m_capabilities; }
-    virtual const RealtimeMediaSourceStates&amp; states() { return m_currentStates; }
-
-    RefPtr&lt;RealtimeMediaSourceCapabilities&gt; m_capabilities;
-    RealtimeMediaSourceStates m_currentStates;
-};
-    
-typedef HashMap&lt;String, RefPtr&lt;MockSource&gt;&gt; MockSourceMap;
-
-static MockSourceMap&amp; mockSourceMap()
-{
-    DEPRECATED_DEFINE_STATIC_LOCAL(MockSourceMap, mockSourceMap, ());
-    return mockSourceMap;
-}
-
-static const AtomicString&amp; mockAudioSourceID()
-{
-    static NeverDestroyed&lt;AtomicString&gt; id(&quot;239c24b1-2b15-11e3-8224-0800200c9a66&quot;, AtomicString::ConstructFromLiteral);
-    return id;
-}
-
-static const AtomicString&amp; mockVideoSourceID()
-{
-    static NeverDestroyed&lt;AtomicString&gt; id(&quot;239c24b0-2b15-11e3-8224-0800200c9a66&quot;, AtomicString::ConstructFromLiteral);
-    return id;
-}
-
-static void initializeMockSources()
-{
-    RefPtr&lt;MockSource&gt; mockSource1 = adoptRef(new MockSource(mockVideoSourceID(), &quot;Mock video device&quot;, RealtimeMediaSource::Video));
-    mockSource1-&gt;m_capabilities = RealtimeMediaSourceCapabilities::create();
-    mockSource1-&gt;m_capabilities-&gt;setSourceId(mockSource1-&gt;id());
-    mockSource1-&gt;m_capabilities-&gt;addSourceType(RealtimeMediaSourceStates::Camera);
-    mockSource1-&gt;m_capabilities-&gt;addSourceType(RealtimeMediaSourceStates::Microphone);
-    mockSource1-&gt;m_capabilities-&gt;addFacingMode(RealtimeMediaSourceStates::User);
-    mockSource1-&gt;m_capabilities-&gt;addFacingMode(RealtimeMediaSourceStates::Environment);
-    mockSource1-&gt;m_capabilities-&gt;setWidthRange(RealtimeMediaSourceCapabilityRange(320UL, 1920UL, true));
-    mockSource1-&gt;m_capabilities-&gt;setHeightRange(RealtimeMediaSourceCapabilityRange(240UL, 1080UL, true));
-    mockSource1-&gt;m_capabilities-&gt;setFrameRateRange(RealtimeMediaSourceCapabilityRange(15.0f, 60.0f, true));
-    mockSource1-&gt;m_capabilities-&gt;setAspectRatioRange(RealtimeMediaSourceCapabilityRange(4 / 3.0f, 16 / 9.0f, true));
-    mockSource1-&gt;m_capabilities-&gt;setVolumeRange(RealtimeMediaSourceCapabilityRange(10UL, 90UL, true));
-
-    mockSource1-&gt;m_currentStates.setSourceType(RealtimeMediaSourceStates::Camera);
-    mockSource1-&gt;m_currentStates.setSourceId(mockSource1-&gt;id());
-    mockSource1-&gt;m_currentStates.setFacingMode(RealtimeMediaSourceStates::User);
-    mockSource1-&gt;m_currentStates.setWidth(1920);
-    mockSource1-&gt;m_currentStates.setHeight(1080);
-    mockSource1-&gt;m_currentStates.setFrameRate(30);
-    mockSource1-&gt;m_currentStates.setAspectRatio(16 / 9.0f);
-    mockSource1-&gt;m_currentStates.setVolume(70);
-    String mockSource1id = mockSource1-&gt;id();
-    mockSourceMap().add(mockSource1id, mockSource1.release());
-
-    RefPtr&lt;MockSource&gt; mockSource2 = adoptRef(new MockSource(mockAudioSourceID(), &quot;Mock audio device&quot;, RealtimeMediaSource::Audio));
-    mockSource2-&gt;m_capabilities = RealtimeMediaSourceCapabilities::create();
-    mockSource2-&gt;m_capabilities-&gt;setSourceId(mockSource2-&gt;id());
-    mockSource2-&gt;m_capabilities-&gt;setVolumeRange(RealtimeMediaSourceCapabilityRange(0UL, 100UL, true));
-
-    mockSource2-&gt;m_currentStates.setSourceType(RealtimeMediaSourceStates::Microphone);
-    mockSource2-&gt;m_currentStates.setSourceId(mockSource2-&gt;id());
-    mockSource2-&gt;m_currentStates.setVolume(50);
-    String mockSource2id = mockSource2-&gt;id();
-    mockSourceMap().add(mockSource2id, mockSource2.release());
-}
-
-void MockMediaStreamCenter::registerMockMediaStreamCenter()
-{
-    DEPRECATED_DEFINE_STATIC_LOCAL(MockMediaStreamCenter, center, ());
-    static bool registered = false;
-    if (!registered) {
-        registered = true;
-        MediaStreamCenter::setSharedStreamCenter(&amp;center);
-        initializeMockSources();
-    }
-}
-
-void MockMediaStreamCenter::validateRequestConstraints(PassRefPtr&lt;MediaStreamCreationClient&gt; prpQueryClient, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints)
-{
-    RefPtr&lt;MediaStreamCreationClient&gt; client = prpQueryClient;
-    
-    ASSERT(client);
-    
-    if (audioConstraints) {
-        String invalidQuery = MediaConstraintsMock::verifyConstraints(audioConstraints);
-        if (!invalidQuery.isEmpty()) {
-            client-&gt;constraintsInvalid(invalidQuery);
-            return;
-        }
-    }
-    
-    if (videoConstraints) {
-        String invalidQuery = MediaConstraintsMock::verifyConstraints(videoConstraints);
-        if (!invalidQuery.isEmpty()) {
-            client-&gt;constraintsInvalid(invalidQuery);
-            return;
-        }
-    }
-
-    client-&gt;constraintsValidated();
-}
-
-void MockMediaStreamCenter::createMediaStream(PassRefPtr&lt;MediaStreamCreationClient&gt; prpQueryClient, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints)
-{
-    RefPtr&lt;MediaStreamCreationClient&gt; client = prpQueryClient;
-
-    ASSERT(client);
-    
-    Vector&lt;RefPtr&lt;RealtimeMediaSource&gt;&gt; audioSources;
-    Vector&lt;RefPtr&lt;RealtimeMediaSource&gt;&gt; videoSources;
-    MockSourceMap&amp; map = mockSourceMap();
-
-    if (audioConstraints) {
-        String invalidQuery = MediaConstraintsMock::verifyConstraints(audioConstraints);
-        if (!invalidQuery.isEmpty()) {
-            client-&gt;failedToCreateStreamWithConstraintsError(invalidQuery);
-            return;
-        }
-
-        MockSourceMap::iterator it = map.find(mockAudioSourceID());
-        ASSERT(it != map.end());
-
-        RefPtr&lt;RealtimeMediaSource&gt; audioSource = it-&gt;value;
-        audioSource-&gt;reset();
-        audioSource-&gt;setReadyState(RealtimeMediaSource::Live);
-        audioSources.append(audioSource.release());
-    }
-
-    if (videoConstraints) {
-        String invalidQuery = MediaConstraintsMock::verifyConstraints(videoConstraints);
-        if (!invalidQuery.isEmpty()) {
-            client-&gt;failedToCreateStreamWithConstraintsError(invalidQuery);
-            return;
-        }
-
-        MockSourceMap::iterator it = map.find(mockVideoSourceID());
-        ASSERT(it != map.end());
-
-        RefPtr&lt;RealtimeMediaSource&gt; videoSource = it-&gt;value;
-        videoSource-&gt;reset();
-        videoSource-&gt;setReadyState(RealtimeMediaSource::Live);
-        videoSources.append(videoSource.release());
-    }
-    
-    client-&gt;didCreateStream(MediaStreamPrivate::create(audioSources, videoSources));
-}
-
-bool MockMediaStreamCenter::getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt; prpClient)
-{
-    RefPtr&lt;MediaStreamTrackSourcesRequestClient&gt; requestClient = prpClient;
-    Vector&lt;RefPtr&lt;TrackSourceInfo&gt;&gt; sources;
-
-    MockSourceMap&amp; map = mockSourceMap();
-    MockSourceMap::iterator end = map.end();
-    for (MockSourceMap::iterator it = map.begin(); it != end; ++it) {
-        MockSource* source = it-&gt;value.get();
-
-        sources.append(TrackSourceInfo::create(source-&gt;id(), source-&gt;type() == RealtimeMediaSource::Video ? TrackSourceInfo::Video : TrackSourceInfo::Audio, source-&gt;name()));
-    }
-
-    requestClient-&gt;didCompleteRequest(sources);
-    return true;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmockMockMediaStreamCenterh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mock/MockMediaStreamCenter.h (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/MockMediaStreamCenter.h        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/platform/mock/MockMediaStreamCenter.h        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -1,52 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Google Inc. All rights reserved.
- * Copyright (C) 2013 Apple Inc.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef MockMediaStreamCenter_h
-#define MockMediaStreamCenter_h
-
-#if ENABLE(MEDIA_STREAM)
-
-#include &quot;MediaStreamCenter.h&quot;
-
-namespace WebCore {
-
-class MockMediaStreamCenter final : public MediaStreamCenter {
-public:
-    WEBCORE_EXPORT static void registerMockMediaStreamCenter();
-
-    virtual void validateRequestConstraints(PassRefPtr&lt;MediaStreamCreationClient&gt;, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints);
-    virtual void createMediaStream(PassRefPtr&lt;MediaStreamCreationClient&gt;, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints);
-    virtual bool getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt;) override;
-
-private:
-    MockMediaStreamCenter() { }
-};
-
-}
-
-#endif // MockMediaStreamCenter_h
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmockMockRealtimeMediaSourceCentercppfromrev181368trunkSourceWebCoreplatformmockMockMediaStreamCentercpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp (from rev 181368, trunk/Source/WebCore/platform/mock/MockMediaStreamCenter.cpp) (0 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp                                (rev 0)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -0,0 +1,219 @@
</span><ins>+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013 Apple Inc.  All rights reserved.
+ * Copyright (C) 2013 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+
+#if ENABLE(MEDIA_STREAM)
+#include &quot;MockRealtimeMediaSourceCenter.h&quot;
+
+#include &quot;MediaConstraintsMock.h&quot;
+#include &quot;MediaStream.h&quot;
+#include &quot;MediaStreamCreationClient.h&quot;
+#include &quot;MediaStreamPrivate.h&quot;
+#include &quot;MediaStreamTrack.h&quot;
+#include &quot;MediaStreamTrackSourcesRequestClient.h&quot;
+#include &quot;RealtimeMediaSource.h&quot;
+#include &quot;RealtimeMediaSourceCapabilities.h&quot;
+#include &lt;wtf/NeverDestroyed.h&gt;
+
+namespace WebCore {
+
+class MockSource : public RealtimeMediaSource {
+public:
+    MockSource(const AtomicString&amp; id, const AtomicString&amp; name, RealtimeMediaSource::Type type)
+        : RealtimeMediaSource(id, type, name)
+    {
+    }
+
+    virtual ~MockSource() { }
+
+    virtual RefPtr&lt;RealtimeMediaSourceCapabilities&gt; capabilities() const { return m_capabilities; }
+    virtual const RealtimeMediaSourceStates&amp; states() { return m_currentStates; }
+
+    RefPtr&lt;RealtimeMediaSourceCapabilities&gt; m_capabilities;
+    RealtimeMediaSourceStates m_currentStates;
+};
+    
+typedef HashMap&lt;String, RefPtr&lt;MockSource&gt;&gt; MockSourceMap;
+
+static MockSourceMap&amp; mockSourceMap()
+{
+    DEPRECATED_DEFINE_STATIC_LOCAL(MockSourceMap, mockSourceMap, ());
+    return mockSourceMap;
+}
+
+static const AtomicString&amp; mockAudioSourceID()
+{
+    static NeverDestroyed&lt;AtomicString&gt; id(&quot;239c24b1-2b15-11e3-8224-0800200c9a66&quot;, AtomicString::ConstructFromLiteral);
+    return id;
+}
+
+static const AtomicString&amp; mockVideoSourceID()
+{
+    static NeverDestroyed&lt;AtomicString&gt; id(&quot;239c24b0-2b15-11e3-8224-0800200c9a66&quot;, AtomicString::ConstructFromLiteral);
+    return id;
+}
+
+static void initializeMockSources()
+{
+    RefPtr&lt;MockSource&gt; mockSource1 = adoptRef(new MockSource(mockVideoSourceID(), &quot;Mock video device&quot;, RealtimeMediaSource::Video));
+    mockSource1-&gt;m_capabilities = RealtimeMediaSourceCapabilities::create();
+    mockSource1-&gt;m_capabilities-&gt;setSourceId(mockSource1-&gt;id());
+    mockSource1-&gt;m_capabilities-&gt;addSourceType(RealtimeMediaSourceStates::Camera);
+    mockSource1-&gt;m_capabilities-&gt;addSourceType(RealtimeMediaSourceStates::Microphone);
+    mockSource1-&gt;m_capabilities-&gt;addFacingMode(RealtimeMediaSourceStates::User);
+    mockSource1-&gt;m_capabilities-&gt;addFacingMode(RealtimeMediaSourceStates::Environment);
+    mockSource1-&gt;m_capabilities-&gt;setWidthRange(RealtimeMediaSourceCapabilityRange(320UL, 1920UL, true));
+    mockSource1-&gt;m_capabilities-&gt;setHeightRange(RealtimeMediaSourceCapabilityRange(240UL, 1080UL, true));
+    mockSource1-&gt;m_capabilities-&gt;setFrameRateRange(RealtimeMediaSourceCapabilityRange(15.0f, 60.0f, true));
+    mockSource1-&gt;m_capabilities-&gt;setAspectRatioRange(RealtimeMediaSourceCapabilityRange(4 / 3.0f, 16 / 9.0f, true));
+    mockSource1-&gt;m_capabilities-&gt;setVolumeRange(RealtimeMediaSourceCapabilityRange(10UL, 90UL, true));
+
+    mockSource1-&gt;m_currentStates.setSourceType(RealtimeMediaSourceStates::Camera);
+    mockSource1-&gt;m_currentStates.setSourceId(mockSource1-&gt;id());
+    mockSource1-&gt;m_currentStates.setFacingMode(RealtimeMediaSourceStates::User);
+    mockSource1-&gt;m_currentStates.setWidth(1920);
+    mockSource1-&gt;m_currentStates.setHeight(1080);
+    mockSource1-&gt;m_currentStates.setFrameRate(30);
+    mockSource1-&gt;m_currentStates.setAspectRatio(16 / 9.0f);
+    mockSource1-&gt;m_currentStates.setVolume(70);
+    String mockSource1id = mockSource1-&gt;id();
+    mockSourceMap().add(mockSource1id, mockSource1.release());
+
+    RefPtr&lt;MockSource&gt; mockSource2 = adoptRef(new MockSource(mockAudioSourceID(), &quot;Mock audio device&quot;, RealtimeMediaSource::Audio));
+    mockSource2-&gt;m_capabilities = RealtimeMediaSourceCapabilities::create();
+    mockSource2-&gt;m_capabilities-&gt;setSourceId(mockSource2-&gt;id());
+    mockSource2-&gt;m_capabilities-&gt;setVolumeRange(RealtimeMediaSourceCapabilityRange(0UL, 100UL, true));
+
+    mockSource2-&gt;m_currentStates.setSourceType(RealtimeMediaSourceStates::Microphone);
+    mockSource2-&gt;m_currentStates.setSourceId(mockSource2-&gt;id());
+    mockSource2-&gt;m_currentStates.setVolume(50);
+    String mockSource2id = mockSource2-&gt;id();
+    mockSourceMap().add(mockSource2id, mockSource2.release());
+}
+
+void MockRealtimeMediaSourceCenter::registerMockRealtimeMediaSourceCenter()
+{
+    DEPRECATED_DEFINE_STATIC_LOCAL(MockRealtimeMediaSourceCenter, center, ());
+    static bool registered = false;
+    if (!registered) {
+        registered = true;
+        RealtimeMediaSourceCenter::setSharedStreamCenter(&amp;center);
+        initializeMockSources();
+    }
+}
+
+void MockRealtimeMediaSourceCenter::validateRequestConstraints(PassRefPtr&lt;MediaStreamCreationClient&gt; prpQueryClient, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints)
+{
+    RefPtr&lt;MediaStreamCreationClient&gt; client = prpQueryClient;
+    
+    ASSERT(client);
+    
+    if (audioConstraints) {
+        String invalidQuery = MediaConstraintsMock::verifyConstraints(audioConstraints);
+        if (!invalidQuery.isEmpty()) {
+            client-&gt;constraintsInvalid(invalidQuery);
+            return;
+        }
+    }
+    
+    if (videoConstraints) {
+        String invalidQuery = MediaConstraintsMock::verifyConstraints(videoConstraints);
+        if (!invalidQuery.isEmpty()) {
+            client-&gt;constraintsInvalid(invalidQuery);
+            return;
+        }
+    }
+
+    client-&gt;constraintsValidated();
+}
+
+void MockRealtimeMediaSourceCenter::createMediaStream(PassRefPtr&lt;MediaStreamCreationClient&gt; prpQueryClient, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints)
+{
+    RefPtr&lt;MediaStreamCreationClient&gt; client = prpQueryClient;
+
+    ASSERT(client);
+    
+    Vector&lt;RefPtr&lt;RealtimeMediaSource&gt;&gt; audioSources;
+    Vector&lt;RefPtr&lt;RealtimeMediaSource&gt;&gt; videoSources;
+    MockSourceMap&amp; map = mockSourceMap();
+
+    if (audioConstraints) {
+        String invalidQuery = MediaConstraintsMock::verifyConstraints(audioConstraints);
+        if (!invalidQuery.isEmpty()) {
+            client-&gt;failedToCreateStreamWithConstraintsError(invalidQuery);
+            return;
+        }
+
+        MockSourceMap::iterator it = map.find(mockAudioSourceID());
+        ASSERT(it != map.end());
+
+        RefPtr&lt;RealtimeMediaSource&gt; audioSource = it-&gt;value;
+        audioSource-&gt;reset();
+        audioSource-&gt;setReadyState(RealtimeMediaSource::Live);
+        audioSources.append(audioSource.release());
+    }
+
+    if (videoConstraints) {
+        String invalidQuery = MediaConstraintsMock::verifyConstraints(videoConstraints);
+        if (!invalidQuery.isEmpty()) {
+            client-&gt;failedToCreateStreamWithConstraintsError(invalidQuery);
+            return;
+        }
+
+        MockSourceMap::iterator it = map.find(mockVideoSourceID());
+        ASSERT(it != map.end());
+
+        RefPtr&lt;RealtimeMediaSource&gt; videoSource = it-&gt;value;
+        videoSource-&gt;reset();
+        videoSource-&gt;setReadyState(RealtimeMediaSource::Live);
+        videoSources.append(videoSource.release());
+    }
+    
+    client-&gt;didCreateStream(MediaStreamPrivate::create(audioSources, videoSources));
+}
+
+bool MockRealtimeMediaSourceCenter::getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt; prpClient)
+{
+    RefPtr&lt;MediaStreamTrackSourcesRequestClient&gt; requestClient = prpClient;
+    Vector&lt;RefPtr&lt;TrackSourceInfo&gt;&gt; sources;
+
+    MockSourceMap&amp; map = mockSourceMap();
+    MockSourceMap::iterator end = map.end();
+    for (MockSourceMap::iterator it = map.begin(); it != end; ++it) {
+        MockSource* source = it-&gt;value.get();
+
+        sources.append(TrackSourceInfo::create(source-&gt;id(), source-&gt;type() == RealtimeMediaSource::Video ? TrackSourceInfo::Video : TrackSourceInfo::Audio, source-&gt;name()));
+    }
+
+    requestClient-&gt;didCompleteRequest(sources);
+    return true;
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(MEDIA_STREAM)
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformmockMockRealtimeMediaSourceCenterhfromrev181368trunkSourceWebCoreplatformmockMockMediaStreamCenterh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h (from rev 181368, trunk/Source/WebCore/platform/mock/MockMediaStreamCenter.h) (0 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h                                (rev 0)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -0,0 +1,52 @@
</span><ins>+/*
+ * Copyright (C) 2013 Google Inc. All rights reserved.
+ * Copyright (C) 2013 Apple Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef MockRealtimeMediaSourceCenter_h
+#define MockRealtimeMediaSourceCenter_h
+
+#if ENABLE(MEDIA_STREAM)
+
+#include &quot;RealtimeMediaSourceCenter.h&quot;
+
+namespace WebCore {
+
+class MockRealtimeMediaSourceCenter final : public RealtimeMediaSourceCenter {
+public:
+    WEBCORE_EXPORT static void registerMockRealtimeMediaSourceCenter();
+
+    virtual void validateRequestConstraints(PassRefPtr&lt;MediaStreamCreationClient&gt;, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints);
+    virtual void createMediaStream(PassRefPtr&lt;MediaStreamCreationClient&gt;, PassRefPtr&lt;MediaConstraints&gt; audioConstraints, PassRefPtr&lt;MediaConstraints&gt; videoConstraints);
+    virtual bool getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt;) override;
+
+private:
+    MockRealtimeMediaSourceCenter() { }
+};
+
+}
+
+#endif // MockRealtimeMediaSourceCenter_h
+
+#endif
</ins></span></pre></div>
<a id="trunkSourceWebCoretestingInternalscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/testing/Internals.cpp (181370 => 181371)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/testing/Internals.cpp        2015-03-11 07:45:26 UTC (rev 181370)
+++ trunk/Source/WebCore/testing/Internals.cpp        2015-03-11 08:10:07 UTC (rev 181371)
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_STREAM)
</span><del>-#include &quot;MockMediaStreamCenter.h&quot;
</del><ins>+#include &quot;MockRealtimeMediaSourceCenter.h&quot;
</ins><span class="cx"> #include &quot;RTCPeerConnection.h&quot;
</span><span class="cx"> #include &quot;RTCPeerConnectionHandlerMock.h&quot;
</span><span class="cx"> #include &quot;UserMediaClientMock.h&quot;
</span><span class="lines">@@ -333,7 +333,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_STREAM)
</span><del>-    MockMediaStreamCenter::registerMockMediaStreamCenter();
</del><ins>+    MockRealtimeMediaSourceCenter::registerMockRealtimeMediaSourceCenter();
</ins><span class="cx">     enableMockRTCPeerConnectionHandler();
</span><span class="cx">     WebCore::provideUserMediaTo(document-&gt;page(), new UserMediaClientMock());
</span><span class="cx"> #endif
</span></span></pre>
</div>
</div>

</body>
</html>