<!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>[205929] trunk/Source</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/205929">205929</a></dd>
<dt>Author</dt> <dd>eric.carlson@apple.com</dd>
<dt>Date</dt> <dd>2016-09-14 13:57:41 -0700 (Wed, 14 Sep 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>[MediaStream] Minor cleanup
https://bugs.webkit.org/show_bug.cgi?id=161976

Reviewed by Youenn Fablet and Dean Jackson.

Source/WebCore:

No new tests, no behavior change.

* CMakeLists.txt:
* DerivedSources.make:
* Modules/mediastream/CaptureDeviceInfo.h: Removed.
* Modules/mediastream/CaptureDeviceManager.cpp: Removed.
* Modules/mediastream/CaptureDeviceManager.h: Removed.
* Modules/mediastream/MediaDevicesRequest.cpp:
(WebCore::MediaDevicesRequest::didCompletePermissionCheck):
(WebCore::MediaDevicesRequest::didCompleteTrackSourceInfoRequest): Deleted.
(WebCore::MediaDevicesRequest::requestOrigin): Deleted.
* Modules/mediastream/MediaDevicesRequest.h:
* Modules/mediastream/MediaStreamTrackSourcesCallback.h: Removed.
* Modules/mediastream/MediaStreamTrackSourcesCallback.idl: Removed.
* Modules/mediastream/SourceInfo.cpp: Removed.
* Modules/mediastream/SourceInfo.h: Removed.
* Modules/mediastream/SourceInfo.idl: Removed.
* WebCore.xcodeproj/project.pbxproj:
* platform/mediastream/CaptureDevice.h: Copied from Source/WebCore/Modules/mediastream/CaptureDeviceInfo.h.
(WebCore::CaptureDevice::CaptureDevice):
(WebCore::CaptureDevice::persistentId):
(WebCore::CaptureDevice::label):
(WebCore::CaptureDevice::groupId):
(WebCore::CaptureDevice::kind):
(WebCore::CaptureSessionInfo::~CaptureSessionInfo): Deleted.
(WebCore::CaptureSessionInfo::supportsVideoSize): Deleted.
(WebCore::CaptureSessionInfo::bestSessionPresetForVideoDimensions): Deleted.
* platform/mediastream/CaptureDeviceManager.cpp: Copied from Source/WebCore/Modules/mediastream/CaptureDeviceManager.cpp.
(CaptureDeviceManager::getSourcesInfo):
* platform/mediastream/CaptureDeviceManager.h: Copied from Source/WebCore/Modules/mediastream/CaptureDeviceManager.h.
(WebCore::CaptureSessionInfo::~CaptureSessionInfo):
(WebCore::CaptureSessionInfo::supportsVideoSize):
(WebCore::CaptureSessionInfo::bestSessionPresetForVideoDimensions):
* platform/mediastream/MediaStreamTrackSourcesRequestClient.h: Removed.
* platform/mediastream/RealtimeMediaSourceCenter.h:
* platform/mediastream/mac/AVCaptureDeviceManager.h:
* platform/mediastream/mac/AVCaptureDeviceManager.mm:
(WebCore::AVCaptureDeviceManager::getSourcesInfo):
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenterMac::getMediaStreamDevices):
(WebCore::RealtimeMediaSourceCenterMac::getMediaStreamTrackSources): Deleted.
(WebCore::RealtimeMediaSourceCenterMac::sourceWithUID): Deleted.
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
* platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
(WebCore::RealtimeMediaSourceCenterOwr::getMediaStreamDevices):
(WebCore::RealtimeMediaSourceCenterOwr::getMediaStreamTrackSources): Deleted.
(WebCore::RealtimeMediaSourceCenterOwr::sourceWithUID): Deleted.
* platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h:
* platform/mock/MockRealtimeMediaSource.cpp:
(WebCore::MockRealtimeMediaSource::audioDeviceInfo):
(WebCore::MockRealtimeMediaSource::videoDeviceInfo):
(WebCore::MockRealtimeMediaSource::trackSourceWithUID): Deleted.
* platform/mock/MockRealtimeMediaSource.h:
* platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockRealtimeMediaSourceCenter::getMediaStreamDevices):
(WebCore::MockRealtimeMediaSourceCenter::getMediaStreamTrackSources): Deleted.
(WebCore::MockRealtimeMediaSourceCenter::sourceWithUID): Deleted.
* platform/mock/MockRealtimeMediaSourceCenter.h:

Source/WebKit2:

* UIProcess/UserMediaPermissionRequestProxy.cpp:</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="#trunkSourceWebCoreDerivedSourcesmake">trunk/Source/WebCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaDevicesRequestcpp">trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaDevicesRequesth">trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.h</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceCenterh">trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVCaptureDeviceManagerh">trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVCaptureDeviceManagermm">trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm</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="#trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeMediaSourceCenterOwrcpp">trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeMediaSourceCenterOwrh">trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmockMockRealtimeMediaSourcecpp">trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmockMockRealtimeMediaSourceh">trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.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>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessUserMediaPermissionRequestProxycpp">trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreplatformmediastreamCaptureDeviceh">trunk/Source/WebCore/platform/mediastream/CaptureDevice.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamCaptureDeviceManagercpp">trunk/Source/WebCore/platform/mediastream/CaptureDeviceManager.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamCaptureDeviceManagerh">trunk/Source/WebCore/platform/mediastream/CaptureDeviceManager.h</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreModulesmediastreamCaptureDeviceInfoh">trunk/Source/WebCore/Modules/mediastream/CaptureDeviceInfo.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamCaptureDeviceManagercpp">trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamCaptureDeviceManagerh">trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamTrackSourcesCallbackh">trunk/Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesCallback.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamTrackSourcesCallbackidl">trunk/Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesCallback.idl</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamSourceInfocpp">trunk/Source/WebCore/Modules/mediastream/SourceInfo.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamSourceInfoh">trunk/Source/WebCore/Modules/mediastream/SourceInfo.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamSourceInfoidl">trunk/Source/WebCore/Modules/mediastream/SourceInfo.idl</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamMediaStreamTrackSourcesRequestClienth">trunk/Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.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 (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/CMakeLists.txt        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -222,7 +222,6 @@
</span><span class="cx">     Modules/mediastream/MediaStreamEvent.idl
</span><span class="cx">     Modules/mediastream/MediaStreamTrack.idl
</span><span class="cx">     Modules/mediastream/MediaStreamTrackEvent.idl
</span><del>-    Modules/mediastream/MediaStreamTrackSourcesCallback.idl
</del><span class="cx">     Modules/mediastream/MediaTrackConstraint.idl
</span><span class="cx">     Modules/mediastream/MediaTrackConstraintSet.idl
</span><span class="cx">     Modules/mediastream/MediaTrackConstraints.idl
</span><span class="lines">@@ -247,7 +246,6 @@
</span><span class="cx">     Modules/mediastream/RTCStatsReport.idl
</span><span class="cx">     Modules/mediastream/RTCStatsResponse.idl
</span><span class="cx">     Modules/mediastream/RTCTrackEvent.idl
</span><del>-    Modules/mediastream/SourceInfo.idl
</del><span class="cx"> 
</span><span class="cx">     Modules/navigatorcontentutils/NavigatorContentUtils.idl
</span><span class="cx"> 
</span><span class="lines">@@ -900,7 +898,6 @@
</span><span class="cx">     Modules/mediastream/RTCStatsResponse.cpp
</span><span class="cx">     Modules/mediastream/RTCTrackEvent.cpp
</span><span class="cx">     Modules/mediastream/SDPProcessor.cpp
</span><del>-    Modules/mediastream/SourceInfo.cpp
</del><span class="cx">     Modules/mediastream/UserMediaController.cpp
</span><span class="cx">     Modules/mediastream/UserMediaPermissionCheck.cpp
</span><span class="cx">     Modules/mediastream/UserMediaRequest.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/ChangeLog        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -1,3 +1,69 @@
</span><ins>+2016-09-14  Eric Carlson  &lt;eric.carlson@apple.com&gt;
+
+        [MediaStream] Minor cleanup
+        https://bugs.webkit.org/show_bug.cgi?id=161976
+
+        Reviewed by Youenn Fablet and Dean Jackson.
+
+        No new tests, no behavior change.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * Modules/mediastream/CaptureDeviceInfo.h: Removed.
+        * Modules/mediastream/CaptureDeviceManager.cpp: Removed.
+        * Modules/mediastream/CaptureDeviceManager.h: Removed.
+        * Modules/mediastream/MediaDevicesRequest.cpp:
+        (WebCore::MediaDevicesRequest::didCompletePermissionCheck):
+        (WebCore::MediaDevicesRequest::didCompleteTrackSourceInfoRequest): Deleted.
+        (WebCore::MediaDevicesRequest::requestOrigin): Deleted.
+        * Modules/mediastream/MediaDevicesRequest.h:
+        * Modules/mediastream/MediaStreamTrackSourcesCallback.h: Removed.
+        * Modules/mediastream/MediaStreamTrackSourcesCallback.idl: Removed.
+        * Modules/mediastream/SourceInfo.cpp: Removed.
+        * Modules/mediastream/SourceInfo.h: Removed.
+        * Modules/mediastream/SourceInfo.idl: Removed.
+        * WebCore.xcodeproj/project.pbxproj:
+        * platform/mediastream/CaptureDevice.h: Copied from Source/WebCore/Modules/mediastream/CaptureDeviceInfo.h.
+        (WebCore::CaptureDevice::CaptureDevice):
+        (WebCore::CaptureDevice::persistentId):
+        (WebCore::CaptureDevice::label):
+        (WebCore::CaptureDevice::groupId):
+        (WebCore::CaptureDevice::kind):
+        (WebCore::CaptureSessionInfo::~CaptureSessionInfo): Deleted.
+        (WebCore::CaptureSessionInfo::supportsVideoSize): Deleted.
+        (WebCore::CaptureSessionInfo::bestSessionPresetForVideoDimensions): Deleted.
+        * platform/mediastream/CaptureDeviceManager.cpp: Copied from Source/WebCore/Modules/mediastream/CaptureDeviceManager.cpp.
+        (CaptureDeviceManager::getSourcesInfo):
+        * platform/mediastream/CaptureDeviceManager.h: Copied from Source/WebCore/Modules/mediastream/CaptureDeviceManager.h.
+        (WebCore::CaptureSessionInfo::~CaptureSessionInfo):
+        (WebCore::CaptureSessionInfo::supportsVideoSize):
+        (WebCore::CaptureSessionInfo::bestSessionPresetForVideoDimensions):
+        * platform/mediastream/MediaStreamTrackSourcesRequestClient.h: Removed.
+        * platform/mediastream/RealtimeMediaSourceCenter.h:
+        * platform/mediastream/mac/AVCaptureDeviceManager.h:
+        * platform/mediastream/mac/AVCaptureDeviceManager.mm:
+        (WebCore::AVCaptureDeviceManager::getSourcesInfo):
+        * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
+        (WebCore::RealtimeMediaSourceCenterMac::getMediaStreamDevices):
+        (WebCore::RealtimeMediaSourceCenterMac::getMediaStreamTrackSources): Deleted.
+        (WebCore::RealtimeMediaSourceCenterMac::sourceWithUID): Deleted.
+        * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
+        * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
+        (WebCore::RealtimeMediaSourceCenterOwr::getMediaStreamDevices):
+        (WebCore::RealtimeMediaSourceCenterOwr::getMediaStreamTrackSources): Deleted.
+        (WebCore::RealtimeMediaSourceCenterOwr::sourceWithUID): Deleted.
+        * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h:
+        * platform/mock/MockRealtimeMediaSource.cpp:
+        (WebCore::MockRealtimeMediaSource::audioDeviceInfo):
+        (WebCore::MockRealtimeMediaSource::videoDeviceInfo):
+        (WebCore::MockRealtimeMediaSource::trackSourceWithUID): Deleted.
+        * platform/mock/MockRealtimeMediaSource.h:
+        * platform/mock/MockRealtimeMediaSourceCenter.cpp:
+        (WebCore::MockRealtimeMediaSourceCenter::getMediaStreamDevices):
+        (WebCore::MockRealtimeMediaSourceCenter::getMediaStreamTrackSources): Deleted.
+        (WebCore::MockRealtimeMediaSourceCenter::sourceWithUID): Deleted.
+        * platform/mock/MockRealtimeMediaSourceCenter.h:
+
</ins><span class="cx"> 2016-09-14  Antti Koivisto  &lt;antti@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Move more code out from RenderObject
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/DerivedSources.make        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -139,7 +139,6 @@
</span><span class="cx">     $(WebCore)/Modules/mediastream/MediaStreamEvent.idl \
</span><span class="cx">     $(WebCore)/Modules/mediastream/MediaStreamTrack.idl \
</span><span class="cx">     $(WebCore)/Modules/mediastream/MediaStreamTrackEvent.idl \
</span><del>-    $(WebCore)/Modules/mediastream/MediaStreamTrackSourcesCallback.idl \
</del><span class="cx">     $(WebCore)/Modules/mediastream/MediaTrackConstraint.idl \
</span><span class="cx">     $(WebCore)/Modules/mediastream/MediaTrackConstraintSet.idl \
</span><span class="cx">     $(WebCore)/Modules/mediastream/MediaTrackConstraints.idl \
</span><span class="lines">@@ -163,7 +162,6 @@
</span><span class="cx">     $(WebCore)/Modules/mediastream/RTCStatsReport.idl \
</span><span class="cx">     $(WebCore)/Modules/mediastream/RTCStatsResponse.idl \
</span><span class="cx">     $(WebCore)/Modules/mediastream/RTCTrackEvent.idl \
</span><del>-    $(WebCore)/Modules/mediastream/SourceInfo.idl \
</del><span class="cx">     $(WebCore)/Modules/notifications/DOMWindowNotifications.idl \
</span><span class="cx">     $(WebCore)/Modules/notifications/Notification.idl \
</span><span class="cx">     $(WebCore)/Modules/notifications/NotificationCenter.idl \
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamCaptureDeviceInfoh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/CaptureDeviceInfo.h (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/CaptureDeviceInfo.h        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/Modules/mediastream/CaptureDeviceInfo.h        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -1,59 +0,0 @@
</span><del>-/*
- * Copyright (C) 2015 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 CaptureDeviceInfo_h
-#define CaptureDeviceInfo_h
-
-#if ENABLE(MEDIA_STREAM)
-
-#include &lt;RealtimeMediaSource.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-namespace WebCore {
-
-struct CaptureDeviceInfo {
-    String m_persistentDeviceID;
-    String m_localizedName;
-    String m_groupID;
-
-    String m_sourceId;
-
-    bool m_enabled { false };
-    RealtimeMediaSource::Type m_sourceType { RealtimeMediaSource::None };
-    RealtimeMediaSourceSettings::VideoFacingMode m_position { RealtimeMediaSourceSettings::Unknown };
-};
-
-class CaptureSessionInfo {
-public:
-    virtual ~CaptureSessionInfo() { }
-    virtual bool supportsVideoSize(const String&amp; /* videoSize */) const { return false; }
-    virtual String bestSessionPresetForVideoDimensions(int /* width */, int /* height */) const { return emptyString(); }
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
-
-#endif /* CaptureDeviceInfo_h */
</del></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamCaptureDeviceManagercpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.cpp (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.cpp        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.cpp        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -1,210 +0,0 @@
</span><del>-/*
- * Copyright (C) 2015 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.
- */
-
-#import &quot;config.h&quot;
-#import &quot;CaptureDeviceManager.h&quot;
-
-#if ENABLE(MEDIA_STREAM)
-
-#import &quot;Logging.h&quot;
-#import &quot;MediaConstraints.h&quot;
-#import &quot;RealtimeMediaSource.h&quot;
-#import &quot;RealtimeMediaSourceCenter.h&quot;
-#import &quot;RealtimeMediaSourceSettings.h&quot;
-#import &quot;UUID.h&quot;
-#import &lt;wtf/MainThread.h&gt;
-#import &lt;wtf/NeverDestroyed.h&gt;
-#import &lt;wtf/text/StringHash.h&gt;
-
-using namespace WebCore;
-
-CaptureDeviceManager::~CaptureDeviceManager()
-{
-}
-
-Vector&lt;RefPtr&lt;TrackSourceInfo&gt;&gt; CaptureDeviceManager::getSourcesInfo(const String&amp; requestOrigin)
-{
-    UNUSED_PARAM(requestOrigin);
-    Vector&lt;RefPtr&lt;TrackSourceInfo&gt;&gt; sourcesInfo;
-    for (auto captureDevice : captureDeviceList()) {
-        if (!captureDevice.m_enabled || captureDevice.m_sourceType == RealtimeMediaSource::None)
-            continue;
-
-        TrackSourceInfo::SourceKind trackSourceType = captureDevice.m_sourceType == RealtimeMediaSource::Video ? TrackSourceInfo::Video : TrackSourceInfo::Audio;
-        sourcesInfo.append(TrackSourceInfo::create(captureDevice.m_persistentDeviceID, captureDevice.m_sourceId, trackSourceType, captureDevice.m_localizedName, captureDevice.m_groupID));
-    }
-    LOG(Media, &quot;CaptureDeviceManager::getSourcesInfo(%p), found %zu active devices&quot;, this, sourcesInfo.size());
-    return sourcesInfo;
-}
-
-bool CaptureDeviceManager::captureDeviceFromDeviceID(const String&amp; captureDeviceID, CaptureDeviceInfo&amp; foundDevice)
-{
-    for (auto&amp; device : captureDeviceList()) {
-        if (device.m_persistentDeviceID == captureDeviceID) {
-            foundDevice = device;
-            return true;
-        }
-    }
-
-    return false;
-}
-
-bool CaptureDeviceManager::verifyConstraintsForMediaType(RealtimeMediaSource::Type type, const MediaConstraints&amp; constraints, const CaptureSessionInfo* session, String&amp; invalidConstraint)
-{
-    auto&amp; mandatoryConstraints = constraints.mandatoryConstraints();
-    for (auto&amp; nameConstraintPair : mandatoryConstraints) {
-        if (sessionSupportsConstraint(session, type, *nameConstraintPair.value))
-            continue;
-
-        invalidConstraint = nameConstraintPair.key;
-        return false;
-    }
-
-    return true;
-}
-
-Vector&lt;RefPtr&lt;RealtimeMediaSource&gt;&gt; CaptureDeviceManager::bestSourcesForTypeAndConstraints(RealtimeMediaSource::Type type, MediaConstraints&amp; constraints)
-{
-    Vector&lt;RefPtr&lt;RealtimeMediaSource&gt;&gt; bestSourcesList;
-
-    struct {
-        bool operator()(RefPtr&lt;RealtimeMediaSource&gt; a, RefPtr&lt;RealtimeMediaSource&gt; b)
-        {
-            return a-&gt;fitnessScore() &lt; b-&gt;fitnessScore();
-        }
-    } sortBasedOnFitnessScore;
-
-    for (auto&amp; captureDevice : captureDeviceList()) {
-        if (!captureDevice.m_enabled || captureDevice.m_sourceId.isEmpty() || captureDevice.m_sourceType == RealtimeMediaSource::None)
-            continue;
-
-        if (RefPtr&lt;RealtimeMediaSource&gt; captureSource = sourceWithUID(captureDevice.m_persistentDeviceID, type, &amp;constraints))
-            bestSourcesList.append(captureSource.leakRef());
-    }
-    std::sort(bestSourcesList.begin(), bestSourcesList.end(), sortBasedOnFitnessScore);
-    return bestSourcesList;
-}
-
-RefPtr&lt;RealtimeMediaSource&gt; CaptureDeviceManager::sourceWithUID(const String&amp; deviceUID, RealtimeMediaSource::Type type, MediaConstraints* constraints)
-{
-    for (auto&amp; captureDevice : captureDeviceList()) {
-        if (captureDevice.m_persistentDeviceID != deviceUID || captureDevice.m_sourceType != type)
-            continue;
-
-        if (!captureDevice.m_enabled || type == RealtimeMediaSource::None || captureDevice.m_sourceId.isEmpty())
-            continue;
-
-        if (RealtimeMediaSource* mediaSource = createMediaSourceForCaptureDeviceWithConstraints(captureDevice, constraints))
-            return mediaSource;
-    }
-    return nullptr;
-}
-
-CaptureDeviceInfo* CaptureDeviceManager::bestDeviceForFacingMode(RealtimeMediaSourceSettings::VideoFacingMode facingMode)
-{
-    if (facingMode == RealtimeMediaSourceSettings::Unknown)
-        return nullptr;
-
-    for (auto&amp; device : captureDeviceList()) {
-        if (device.m_sourceType == RealtimeMediaSource::Video &amp;&amp; device.m_position == facingMode)
-            return &amp;device;
-    }
-    return nullptr;
-}
-
-static inline RealtimeMediaSourceSettings::VideoFacingMode facingModeFromString(const String&amp; facingModeString)
-{
-    static NeverDestroyed&lt;AtomicString&gt; userFacingModeString(&quot;user&quot;, AtomicString::ConstructFromLiteral);
-    static NeverDestroyed&lt;AtomicString&gt; environmentFacingModeString(&quot;environment&quot;, AtomicString::ConstructFromLiteral);
-    static NeverDestroyed&lt;AtomicString&gt; leftFacingModeString(&quot;left&quot;, AtomicString::ConstructFromLiteral);
-    static NeverDestroyed&lt;AtomicString&gt; rightFacingModeString(&quot;right&quot;, AtomicString::ConstructFromLiteral);
-    if (facingModeString == userFacingModeString)
-        return RealtimeMediaSourceSettings::User;
-    if (facingModeString == environmentFacingModeString)
-        return RealtimeMediaSourceSettings::Environment;
-    if (facingModeString == leftFacingModeString)
-        return RealtimeMediaSourceSettings::Left;
-    if (facingModeString == rightFacingModeString)
-        return RealtimeMediaSourceSettings::Right;
-    return RealtimeMediaSourceSettings::Unknown;
-}
-
-bool CaptureDeviceManager::sessionSupportsConstraint(const CaptureSessionInfo*, RealtimeMediaSource::Type type, const MediaConstraint&amp; constraint)
-{
-    const RealtimeMediaSourceSupportedConstraints&amp; supportedConstraints = RealtimeMediaSourceCenter::singleton().supportedConstraints();
-    MediaConstraintType constraintType = constraint.type();
-    if (!supportedConstraints.supportsConstraint(constraintType))
-        return false;
-
-    switch (constraintType) {
-    case MediaConstraintType::Width:
-        return type == RealtimeMediaSource::Video;
-
-    case MediaConstraintType::Height:
-        return type == RealtimeMediaSource::Video;
-
-    case MediaConstraintType::FrameRate: {
-        if (type == RealtimeMediaSource::Audio)
-            return false;
-
-        return isSupportedFrameRate(constraint);
-    }
-    case MediaConstraintType::FacingMode: {
-        if (type == RealtimeMediaSource::Audio)
-            return false;
-
-        // FIXME: https://bugs.webkit.org/show_bug.cgi?id=160793. Handle sequence of facingMode constraints.
-        Vector&lt;String&gt; exactFacingMode;
-        if (!constraint.getExact(exactFacingMode))
-            return false;
-
-        return bestDeviceForFacingMode(facingModeFromString(exactFacingMode[0]));
-    }
-    default:
-        return false;
-    }
-}
-
-bool CaptureDeviceManager::isSupportedFrameRate(const MediaConstraint&amp; constraint) const
-{
-    // FIXME: https://bugs.webkit.org/show_bug.cgi?id=160794. Dynamically check media devices if frame rate is supported.
-    bool isSupported = true;
-
-    int min = 0;
-    if (constraint.getMin(min))
-        isSupported &amp;= min &gt; 60;
-
-    int max = 60;
-    if (constraint.getMax(max))
-        isSupported &amp;= max &lt; min;
-
-    int exact;
-    if (constraint.getExact(exact))
-        isSupported &amp;= (exact &lt; min || exact &gt; max);
-
-    return isSupported;
-}
-
-#endif // ENABLE(MEDIA_STREAM)
</del></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamCaptureDeviceManagerh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.h (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.h        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.h        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -1,64 +0,0 @@
</span><del>-/*
- * Copyright (C) 2015 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 CaptureDeviceManager_h
-#define CaptureDeviceManager_h
-
-#if ENABLE(MEDIA_STREAM)
-
-#include &quot;CaptureDeviceInfo.h&quot;
-#include &quot;MediaStreamTrackSourcesRequestClient.h&quot;
-#include &quot;RealtimeMediaSource.h&quot;
-#include &lt;wtf/text/WTFString.h&gt;
-
-namespace WebCore {
-
-class CaptureDeviceManager {
-public:
-    virtual Vector&lt;CaptureDeviceInfo&gt;&amp; captureDeviceList() = 0;
-    virtual void refreshCaptureDeviceList() { }
-    virtual TrackSourceInfoVector getSourcesInfo(const String&amp;);
-    virtual Vector&lt;RefPtr&lt;RealtimeMediaSource&gt;&gt; bestSourcesForTypeAndConstraints(RealtimeMediaSource::Type, MediaConstraints&amp;);
-    virtual RefPtr&lt;RealtimeMediaSource&gt; sourceWithUID(const String&amp;, RealtimeMediaSource::Type, MediaConstraints*);
-
-    virtual bool verifyConstraintsForMediaType(RealtimeMediaSource::Type, const MediaConstraints&amp;, const CaptureSessionInfo*, String&amp;);
-
-protected:
-    virtual ~CaptureDeviceManager();
-    virtual RealtimeMediaSource* createMediaSourceForCaptureDeviceWithConstraints(const CaptureDeviceInfo&amp;, MediaConstraints*) = 0;
-
-    virtual CaptureSessionInfo defaultCaptureSession() const { return CaptureSessionInfo(); }
-    virtual bool sessionSupportsConstraint(const CaptureSessionInfo*, RealtimeMediaSource::Type, const MediaConstraint&amp;);
-    virtual bool isSupportedFrameRate(const MediaConstraint&amp;) const;
-
-    bool captureDeviceFromDeviceID(const String&amp; captureDeviceID, CaptureDeviceInfo&amp; source);
-    CaptureDeviceInfo* bestDeviceForFacingMode(RealtimeMediaSourceSettings::VideoFacingMode);
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
-
-#endif /* CaptureDeviceManager_h */
</del></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaDevicesRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_STREAM)
</span><span class="cx"> 
</span><ins>+#include &quot;CaptureDevice.h&quot;
</ins><span class="cx"> #include &quot;Document.h&quot;
</span><span class="cx"> #include &quot;ExceptionCode.h&quot;
</span><span class="cx"> #include &quot;Frame.h&quot;
</span><span class="lines">@@ -83,20 +84,6 @@
</span><span class="cx">     m_permissionCheck-&gt;start();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaDevicesRequest::didCompletePermissionCheck(const String&amp; salt, bool canAccess)
-{
-    RefPtr&lt;UserMediaPermissionCheck&gt; permissionCheckProtector = m_permissionCheck;
-    m_permissionCheck-&gt;setClient(nullptr);
-    m_permissionCheck = nullptr;
-
-    m_idHashSalt = salt;
-    m_havePersistentPermission = canAccess;
-
-    callOnMainThread([this, permissionCheckProtector = WTFMove(permissionCheckProtector)] {
-        RealtimeMediaSourceCenter::singleton().getMediaStreamTrackSources(this);
-    });
-}
-
</del><span class="cx"> static void hashString(SHA1&amp; sha1, const String&amp; string)
</span><span class="cx"> {
</span><span class="cx">     if (string.isEmpty())
</span><span class="lines">@@ -129,8 +116,14 @@
</span><span class="cx">     return SHA1::hexDigest(digest).data();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaDevicesRequest::didCompleteTrackSourceInfoRequest(const TrackSourceInfoVector&amp; captureDevices)
</del><ins>+void MediaDevicesRequest::didCompletePermissionCheck(const String&amp; salt, bool canAccess)
</ins><span class="cx"> {
</span><ins>+    m_permissionCheck-&gt;setClient(nullptr);
+    m_permissionCheck = nullptr;
+
+    m_idHashSalt = salt;
+    m_havePersistentPermission = canAccess;
+
</ins><span class="cx">     if (!scriptExecutionContext()) {
</span><span class="cx">         m_protector = nullptr;
</span><span class="cx">         return;
</span><span class="lines">@@ -144,19 +137,18 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     Vector&lt;RefPtr&lt;MediaDeviceInfo&gt;&gt; devices;
</span><ins>+    auto captureDevices = RealtimeMediaSourceCenter::singleton().getMediaStreamDevices();
</ins><span class="cx">     for (auto&amp; deviceInfo : captureDevices) {
</span><del>-        String label = emptyString();
</del><ins>+        auto label = emptyString();
</ins><span class="cx">         if (m_havePersistentPermission || document.hasHadActiveMediaStreamTrack())
</span><del>-            label = deviceInfo-&gt;label();
</del><ins>+            label = deviceInfo.label();
</ins><span class="cx"> 
</span><del>-        String id = hashID(deviceInfo-&gt;persistentId());
</del><ins>+        auto id = hashID(deviceInfo.persistentId());
</ins><span class="cx">         if (id.isEmpty())
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        String groupId = hashID(deviceInfo-&gt;groupId());
-
-        auto deviceType = deviceInfo-&gt;kind() == TrackSourceInfo::SourceKind::Audio ? MediaDeviceInfo::Kind::Audioinput : MediaDeviceInfo::Kind::Videoinput;
-
</del><ins>+        auto groupId = hashID(deviceInfo.groupId());
+        auto deviceType = deviceInfo.kind() == CaptureDevice::SourceKind::Audio ? MediaDeviceInfo::Kind::Audioinput : MediaDeviceInfo::Kind::Videoinput;
</ins><span class="cx">         devices.append(MediaDeviceInfo::create(scriptExecutionContext(), label, id, groupId, deviceType));
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -166,17 +158,6 @@
</span><span class="cx">     m_protector = nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-const String&amp; MediaDevicesRequest::requestOrigin() const
-{
-    if (scriptExecutionContext()) {
-        Document* document = downcast&lt;Document&gt;(scriptExecutionContext());
-        if (document)
-            return document-&gt;url();
-    }
-
-    return emptyString();
-}
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(MEDIA_STREAM)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaDevicesRequesth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.h (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.h        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.h        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -32,7 +32,6 @@
</span><span class="cx"> #include &quot;ActiveDOMObject.h&quot;
</span><span class="cx"> #include &quot;MediaDevices.h&quot;
</span><span class="cx"> #include &quot;MediaStreamCreationClient.h&quot;
</span><del>-#include &quot;MediaStreamTrackSourcesRequestClient.h&quot;
</del><span class="cx"> #include &quot;UserMediaPermissionCheck.h&quot;
</span><span class="cx"> #include &lt;wtf/RefCounted.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="lines">@@ -45,7 +44,7 @@
</span><span class="cx"> 
</span><span class="cx"> typedef int ExceptionCode;
</span><span class="cx"> 
</span><del>-class MediaDevicesRequest : public MediaStreamTrackSourcesRequestClient, public UserMediaPermissionCheckClient, public ContextDestructionObserver {
</del><ins>+class MediaDevicesRequest : public RefCounted&lt;MediaDevicesRequest&gt;, public UserMediaPermissionCheckClient, public ContextDestructionObserver {
</ins><span class="cx"> public:
</span><span class="cx">     static RefPtr&lt;MediaDevicesRequest&gt; create(Document*, MediaDevices::EnumerateDevicesPromise&amp;&amp;, ExceptionCode&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -58,10 +57,6 @@
</span><span class="cx"> private:
</span><span class="cx">     MediaDevicesRequest(ScriptExecutionContext*, MediaDevices::EnumerateDevicesPromise&amp;&amp;);
</span><span class="cx"> 
</span><del>-    // MediaStreamTrackSourcesRequestClient
-    const String&amp; requestOrigin() const final;
-    void didCompleteTrackSourceInfoRequest(const TrackSourceInfoVector&amp;) final;
-
</del><span class="cx">     // ContextDestructionObserver
</span><span class="cx">     void contextDestroyed() final;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamTrackSourcesCallbackh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesCallback.h (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesCallback.h        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesCallback.h        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -1,46 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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.
- *
- * THIS SOFTWARE IS PROVIDED BY GOOGLE 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 GOOGLE 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 MediaStreamTrackSourcesCallback_h
-#define MediaStreamTrackSourcesCallback_h
-
-#if ENABLE(MEDIA_STREAM)
-
-#include &quot;SourceInfo.h&quot;
-#include &lt;wtf/RefCounted.h&gt;
-
-namespace WebCore {
-
-class MediaStreamTrackSourcesCallback : public RefCounted&lt;MediaStreamTrackSourcesCallback&gt; {
-public:
-    virtual ~MediaStreamTrackSourcesCallback() { }
-    virtual bool handleEvent(Vector&lt;RefPtr&lt;SourceInfo&gt;&gt;) = 0;
-};
-
-} // namespace WebCore
-
-#endif
-
-#endif // MediaStreamTrackSourcesCallback_h
</del></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamTrackSourcesCallbackidl"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesCallback.idl (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesCallback.idl        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesCallback.idl        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -1,32 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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.
- *
- * THIS SOFTWARE IS PROVIDED BY GOOGLE 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 GOOGLE 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.
- */
-
-[
-    Conditional=MEDIA_STREAM,
-    Callback=FunctionOnly,
-] callback interface MediaStreamTrackSourcesCallback {
-    boolean handleEvent(sequence&lt;SourceInfo&gt; sources);
-};
-
</del></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamSourceInfocpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/SourceInfo.cpp (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/SourceInfo.cpp        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/Modules/mediastream/SourceInfo.cpp        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -1,64 +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 GOOGLE 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 GOOGLE 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;
-#include &quot;SourceInfo.h&quot;
-
-#if ENABLE(MEDIA_STREAM)
-
-#include &lt;wtf/NeverDestroyed.h&gt;
-
-namespace WebCore {
-
-Ref&lt;SourceInfo&gt; SourceInfo::create(Ref&lt;TrackSourceInfo&gt;&amp;&amp; trackSourceInfo)
-{
-    return adoptRef(*new SourceInfo(WTFMove(trackSourceInfo)));
-}
-
-SourceInfo::SourceInfo(Ref&lt;TrackSourceInfo&gt;&amp;&amp; trackSourceInfo)
-    : m_trackSourceInfo(WTFMove(trackSourceInfo))
-{
-}
-
-const AtomicString&amp; SourceInfo::kind() const
-{
-    static NeverDestroyed&lt;AtomicString&gt; audioKind(&quot;audio&quot;, AtomicString::ConstructFromLiteral);
-    static NeverDestroyed&lt;AtomicString&gt; videoKind(&quot;video&quot;, AtomicString::ConstructFromLiteral);
-
-    switch (m_trackSourceInfo-&gt;kind()) {
-    case TrackSourceInfo::Audio:
-        return audioKind;
-    case TrackSourceInfo::Video:
-        return videoKind;
-    }
-
-    ASSERT_NOT_REACHED();
-    return emptyAtom;
-}
-
-} // namespace WebCore
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamSourceInfoh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/SourceInfo.h (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/SourceInfo.h        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/Modules/mediastream/SourceInfo.h        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -1,59 +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 GOOGLE 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 GOOGLE 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 SourceInfo_h
-#define SourceInfo_h
-
-#if ENABLE(MEDIA_STREAM)
-
-#include &quot;MediaStreamTrackSourcesRequestClient.h&quot;
-#include &quot;ScriptWrappable.h&quot;
-#include &lt;wtf/Forward.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/Vector.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-namespace WebCore {
-
-class SourceInfo : public RefCounted&lt;SourceInfo&gt;, public ScriptWrappable {
-public:
-    static Ref&lt;SourceInfo&gt; create(Ref&lt;TrackSourceInfo&gt;&amp;&amp;);
-
-    const AtomicString&amp; sourceId() const { return m_trackSourceInfo-&gt;id(); }
-    const AtomicString&amp; label() const { return m_trackSourceInfo-&gt;label(); }
-    const AtomicString&amp; kind() const;
-
-private:
-    SourceInfo(Ref&lt;TrackSourceInfo&gt;&amp;&amp;);
-
-    Ref&lt;TrackSourceInfo&gt; m_trackSourceInfo;
-};
-
-} // namespace WebCore
-
-#endif // SourceInfo_h
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamSourceInfoidl"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/SourceInfo.idl (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/SourceInfo.idl        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/Modules/mediastream/SourceInfo.idl        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -1,34 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 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.
- *
- * THIS SOFTWARE IS PROVIDED BY GOOGLE 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 GOOGLE 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.
- */
-
-[
-    ImplementationLacksVTable,
-    NoInterfaceObject,
-    Conditional=MEDIA_STREAM,
-] interface SourceInfo {
-    readonly attribute DOMString sourceId;
-    readonly attribute DOMString kind;
-    readonly attribute DOMString label;
-};
</del></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -174,14 +174,6 @@
</span><span class="cx">                 074E82BB18A69F0E007EF54C /* PlatformTimeRanges.h in Headers */ = {isa = PBXBuildFile; fileRef = 074E82B918A69F0E007EF54C /* PlatformTimeRanges.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 0753860214489E9800B78452 /* CachedTextTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0753860014489E9800B78452 /* CachedTextTrack.cpp */; };
</span><span class="cx">                 0753860314489E9800B78452 /* CachedTextTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 0753860114489E9800B78452 /* CachedTextTrack.h */; };
</span><del>-                076306D017E1478D005A7C4E /* MediaStreamTrackSourcesCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306CC17E1478D005A7C4E /* MediaStreamTrackSourcesCallback.h */; };
-                076306D717E149CF005A7C4E /* SourceInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076306D417E149CF005A7C4E /* SourceInfo.cpp */; };
-                076306D817E149D0005A7C4E /* SourceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306D517E149CF005A7C4E /* SourceInfo.h */; };
-                076306DC17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076306DA17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.cpp */; };
-                076306DD17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306DB17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.h */; };
-                076306E017E16089005A7C4E /* JSSourceInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076306DE17E16089005A7C4E /* JSSourceInfo.cpp */; };
-                076306E117E16089005A7C4E /* JSSourceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306DF17E16089005A7C4E /* JSSourceInfo.h */; };
-                076306E317E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306E217E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 07638A991884487200E15A1B /* MediaSessionManagerIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 07638A971884487200E15A1B /* MediaSessionManagerIOS.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 07638A9A1884487200E15A1B /* MediaSessionManagerIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07638A981884487200E15A1B /* MediaSessionManagerIOS.mm */; };
</span><span class="cx">                 076970861463AD8700F502CF /* TextTrackList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076970841463AD8700F502CF /* TextTrackList.cpp */; };
</span><span class="lines">@@ -307,6 +299,9 @@
</span><span class="cx">                 07B5A2DB1464320A00A81ECE /* JSTextTrackList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07B5A2D91464320A00A81ECE /* JSTextTrackList.cpp */; };
</span><span class="cx">                 07B5A2DC1464320A00A81ECE /* JSTextTrackList.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B5A2DA1464320A00A81ECE /* JSTextTrackList.h */; };
</span><span class="cx">                 07B5A30D14687D7100A81ECE /* JSTextTrackListCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07B5A30C14687D7100A81ECE /* JSTextTrackListCustom.cpp */; };
</span><ins>+                07B7116D1D899E63009F0FFB /* CaptureDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B7116A1D899E63009F0FFB /* CaptureDevice.h */; };
+                07B7116E1D899E63009F0FFB /* CaptureDeviceManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07B7116B1D899E63009F0FFB /* CaptureDeviceManager.cpp */; };
+                07B7116F1D899E63009F0FFB /* CaptureDeviceManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B7116C1D899E63009F0FFB /* CaptureDeviceManager.h */; };
</ins><span class="cx">                 07BDD6EC1469B4C2009C9F85 /* JSTrackEventCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07B5A30A14687B8400A81ECE /* JSTrackEventCustom.cpp */; };
</span><span class="cx">                 07C1C0E21BFB600100BD2256 /* MediaTrackSupportedConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C1C0E01BFB600100BD2256 /* MediaTrackSupportedConstraints.h */; };
</span><span class="cx">                 07C1C0E51BFB60ED00BD2256 /* RealtimeMediaSourceSupportedConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C1C0E41BFB60ED00BD2256 /* RealtimeMediaSourceSupportedConstraints.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -1246,9 +1241,6 @@
</span><span class="cx">                 2E3BBF081162DA1100B9409A /* UUID.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E3BBF061162DA1100B9409A /* UUID.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 2E3BC0CA117D3E0800B9409A /* JSFileError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E3BC0C8117D3E0800B9409A /* JSFileError.cpp */; };
</span><span class="cx">                 2E3BC0CB117D3E0800B9409A /* JSFileError.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E3BC0C9117D3E0800B9409A /* JSFileError.h */; };
</span><del>-                2E3C8C621BFBA97500309566 /* CaptureDeviceManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E3C8C611BFBA8DC00309566 /* CaptureDeviceManager.h */; };
-                2E3C8C641BFBB75D00309566 /* CaptureDeviceManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E3C8C631BFBB75D00309566 /* CaptureDeviceManager.cpp */; };
-                2E3C8C681BFBF8E100309566 /* CaptureDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E3C8C661BFBF8E100309566 /* CaptureDeviceInfo.h */; };
</del><span class="cx">                 2E4346450F546A8200B0F1BA /* Worker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E4346330F546A8200B0F1BA /* Worker.cpp */; };
</span><span class="cx">                 2E4346460F546A8200B0F1BA /* Worker.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E4346340F546A8200B0F1BA /* Worker.h */; };
</span><span class="cx">                 2E4346480F546A8200B0F1BA /* WorkerGlobalScope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E4346360F546A8200B0F1BA /* WorkerGlobalScope.cpp */; };
</span><span class="lines">@@ -7016,16 +7008,6 @@
</span><span class="cx">                 074E82B918A69F0E007EF54C /* PlatformTimeRanges.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformTimeRanges.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0753860014489E9800B78452 /* CachedTextTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CachedTextTrack.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 0753860114489E9800B78452 /* CachedTextTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedTextTrack.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                076306CC17E1478D005A7C4E /* MediaStreamTrackSourcesCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamTrackSourcesCallback.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                076306CD17E1478D005A7C4E /* MediaStreamTrackSourcesCallback.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaStreamTrackSourcesCallback.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
-                076306D417E149CF005A7C4E /* SourceInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SourceInfo.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                076306D517E149CF005A7C4E /* SourceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SourceInfo.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                076306D617E149CF005A7C4E /* SourceInfo.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SourceInfo.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
-                076306DA17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaStreamTrackSourcesCallback.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                076306DB17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMediaStreamTrackSourcesCallback.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                076306DE17E16089005A7C4E /* JSSourceInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSourceInfo.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                076306DF17E16089005A7C4E /* JSSourceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSSourceInfo.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                076306E217E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamTrackSourcesRequestClient.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 07638A971884487200E15A1B /* MediaSessionManagerIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaSessionManagerIOS.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07638A981884487200E15A1B /* MediaSessionManagerIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MediaSessionManagerIOS.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 076970841463AD8700F502CF /* TextTrackList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextTrackList.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -7107,6 +7089,9 @@
</span><span class="cx">                 07B5A3061468537100A81ECE /* TextTrackList.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TextTrackList.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07B5A30A14687B8400A81ECE /* JSTrackEventCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTrackEventCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07B5A30C14687D7100A81ECE /* JSTextTrackListCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTextTrackListCustom.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                07B7116A1D899E63009F0FFB /* CaptureDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CaptureDevice.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                07B7116B1D899E63009F0FFB /* CaptureDeviceManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CaptureDeviceManager.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                07B7116C1D899E63009F0FFB /* CaptureDeviceManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CaptureDeviceManager.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 07C1C0E01BFB600100BD2256 /* MediaTrackSupportedConstraints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaTrackSupportedConstraints.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07C1C0E11BFB600100BD2256 /* MediaTrackSupportedConstraints.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaTrackSupportedConstraints.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 07C1C0E41BFB60ED00BD2256 /* RealtimeMediaSourceSupportedConstraints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RealtimeMediaSourceSupportedConstraints.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -8178,9 +8163,6 @@
</span><span class="cx">                 2E3BBF061162DA1100B9409A /* UUID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UUID.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 2E3BC0C8117D3E0800B9409A /* JSFileError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSFileError.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 2E3BC0C9117D3E0800B9409A /* JSFileError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSFileError.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                2E3C8C611BFBA8DC00309566 /* CaptureDeviceManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CaptureDeviceManager.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                2E3C8C631BFBB75D00309566 /* CaptureDeviceManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CaptureDeviceManager.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                2E3C8C661BFBF8E100309566 /* CaptureDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CaptureDeviceInfo.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 2E4346330F546A8200B0F1BA /* Worker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Worker.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 2E4346340F546A8200B0F1BA /* Worker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Worker.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 2E4346350F546A8200B0F1BA /* Worker.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Worker.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -14478,9 +14460,6 @@
</span><span class="cx">                 07221B4617CEC32700848E51 /* mediastream */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><del>-                                2E3C8C661BFBF8E100309566 /* CaptureDeviceInfo.h */,
-                                2E3C8C631BFBB75D00309566 /* CaptureDeviceManager.cpp */,
-                                2E3C8C611BFBA8DC00309566 /* CaptureDeviceManager.h */,
</del><span class="cx">                                 073794ED19EE364200E5A045 /* DOMURLMediaStream.cpp */,
</span><span class="cx">                                 15FCC9FD1B4DF85600E72326 /* DOMURLMediaStream.h */,
</span><span class="cx">                                 073794EE19EE364200E5A045 /* DOMURLMediaStream.idl */,
</span><span class="lines">@@ -14518,8 +14497,6 @@
</span><span class="cx">                                 07221B5717CEC32700848E51 /* MediaStreamTrackEvent.cpp */,
</span><span class="cx">                                 07221B5817CEC32700848E51 /* MediaStreamTrackEvent.h */,
</span><span class="cx">                                 07221B5917CEC32700848E51 /* MediaStreamTrackEvent.idl */,
</span><del>-                                076306CC17E1478D005A7C4E /* MediaStreamTrackSourcesCallback.h */,
-                                076306CD17E1478D005A7C4E /* MediaStreamTrackSourcesCallback.idl */,
</del><span class="cx">                                 0705853917FE0770005F2BCB /* MediaTrackConstraint.cpp */,
</span><span class="cx">                                 0705851D17FDC140005F2BCB /* MediaTrackConstraint.h */,
</span><span class="cx">                                 0705851E17FDC140005F2BCB /* MediaTrackConstraint.idl */,
</span><span class="lines">@@ -14596,9 +14573,6 @@
</span><span class="cx">                                 5E2C43661BCEE3720001E2BC /* RTCTrackEvent.idl */,
</span><span class="cx">                                 5EA3D6E11C859DAA00300BBB /* SDPProcessor.cpp */,
</span><span class="cx">                                 5EA3D6E21C859DAA00300BBB /* SDPProcessor.h */,
</span><del>-                                076306D417E149CF005A7C4E /* SourceInfo.cpp */,
-                                076306D517E149CF005A7C4E /* SourceInfo.h */,
-                                076306D617E149CF005A7C4E /* SourceInfo.idl */,
</del><span class="cx">                                 07221B8D17CEC32700848E51 /* UserMediaClient.h */,
</span><span class="cx">                                 07221B8E17CEC32700848E51 /* UserMediaController.cpp */,
</span><span class="cx">                                 07221B8F17CEC32700848E51 /* UserMediaController.h */,
</span><span class="lines">@@ -14615,6 +14589,9 @@
</span><span class="cx">                         children = (
</span><span class="cx">                                 0729B14D17CFCCA0004F1D60 /* mac */,
</span><span class="cx">                                 07D6A4F61BF2307D00174146 /* AudioTrackPrivateMediaStream.h */,
</span><ins>+                                07B7116A1D899E63009F0FFB /* CaptureDevice.h */,
+                                07B7116B1D899E63009F0FFB /* CaptureDeviceManager.cpp */,
+                                07B7116C1D899E63009F0FFB /* CaptureDeviceManager.h */,
</ins><span class="cx">                                 5EBB89301C7777E100C65D41 /* IceCandidate.h */,
</span><span class="cx">                                 1BE5BFC11D515715001666D9 /* MediaConstraints.cpp */,
</span><span class="cx">                                 07221B9917CF0AD400848E51 /* MediaConstraints.h */,
</span><span class="lines">@@ -14630,7 +14607,6 @@
</span><span class="cx">                                 07221B9D17CF0AD400848E51 /* MediaStreamPrivate.h */,
</span><span class="cx">                                 07FFDE66181AED420072D409 /* MediaStreamTrackPrivate.cpp */,
</span><span class="cx">                                 07FFDE67181AED420072D409 /* MediaStreamTrackPrivate.h */,
</span><del>-                                076306E217E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h */,
</del><span class="cx">                                 5EBB89381C77BDA400C65D41 /* PeerMediaDescription.h */,
</span><span class="cx">                                 4A4F656B1AA997F100E38CDD /* RealtimeMediaSource.cpp */,
</span><span class="cx">                                 4A4F656C1AA997F100E38CDD /* RealtimeMediaSource.h */,
</span><span class="lines">@@ -14748,8 +14724,6 @@
</span><span class="cx">                                 07277E4717D018CC0015534D /* JSMediaStreamTrack.h */,
</span><span class="cx">                                 07277E4817D018CC0015534D /* JSMediaStreamTrackEvent.cpp */,
</span><span class="cx">                                 07277E4917D018CC0015534D /* JSMediaStreamTrackEvent.h */,
</span><del>-                                076306DA17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.cpp */,
-                                076306DB17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.h */,
</del><span class="cx">                                 0705852B17FDE6D9005F2BCB /* JSMediaTrackConstraint.cpp */,
</span><span class="cx">                                 0705852C17FDE6D9005F2BCB /* JSMediaTrackConstraint.h */,
</span><span class="cx">                                 0705852D17FDE6D9005F2BCB /* JSMediaTrackConstraints.cpp */,
</span><span class="lines">@@ -14794,8 +14768,6 @@
</span><span class="cx">                                 07969DAA17D14151007FF842 /* JSRTCStatsResponse.h */,
</span><span class="cx">                                 5E2C43691BCF05C80001E2BC /* JSRTCTrackEvent.cpp */,
</span><span class="cx">                                 5E2C436A1BCF05C80001E2BC /* JSRTCTrackEvent.h */,
</span><del>-                                076306DE17E16089005A7C4E /* JSSourceInfo.cpp */,
-                                076306DF17E16089005A7C4E /* JSSourceInfo.h */,
</del><span class="cx">                         );
</span><span class="cx">                         name = MediaStream;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="lines">@@ -23993,8 +23965,6 @@
</span><span class="cx">                                 49484FCE102CF23C00187DD3 /* CanvasStyle.h in Headers */,
</span><span class="cx">                                 079D0868162F20E800DB8658 /* CaptionUserPreferences.h in Headers */,
</span><span class="cx">                                 079D086B162F21F900DB8658 /* CaptionUserPreferencesMediaAF.h in Headers */,
</span><del>-                                2E3C8C681BFBF8E100309566 /* CaptureDeviceInfo.h in Headers */,
-                                2E3C8C621BFBA97500309566 /* CaptureDeviceManager.h in Headers */,
</del><span class="cx">                                 99CC0B4F18BE9849006CEBCC /* CapturingInputCursor.h in Headers */,
</span><span class="cx">                                 CDC734151977896D0046BFC5 /* CARingBuffer.h in Headers */,
</span><span class="cx">                                 6550B69E099DF0270090D781 /* CDATASection.h in Headers */,
</span><span class="lines">@@ -24234,6 +24204,7 @@
</span><span class="cx">                                 A8EA80070A19516E00A8EF5F /* CSSStyleSheet.h in Headers */,
</span><span class="cx">                                 FC54D05716A7673100575E4D /* CSSSupportsRule.h in Headers */,
</span><span class="cx">                                 BC80C9880CD294EE00A0B7B3 /* CSSTimingFunctionValue.h in Headers */,
</span><ins>+                                07B7116D1D899E63009F0FFB /* CaptureDevice.h in Headers */,
</ins><span class="cx">                                 946D373A1D6CDFC00077084F /* CSSTokenizer.h in Headers */,
</span><span class="cx">                                 946D373C1D6CDFC00077084F /* CSSTokenizerInputStream.h in Headers */,
</span><span class="cx">                                 9AB1F38018E2489A00534743 /* CSSToLengthConversionData.h in Headers */,
</span><span class="lines">@@ -25197,7 +25168,6 @@
</span><span class="cx">                                 07277E5117D018CC0015534D /* JSMediaStreamEvent.h in Headers */,
</span><span class="cx">                                 07277E5317D018CC0015534D /* JSMediaStreamTrack.h in Headers */,
</span><span class="cx">                                 07277E5517D018CC0015534D /* JSMediaStreamTrackEvent.h in Headers */,
</span><del>-                                076306DD17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.h in Headers */,
</del><span class="cx">                                 0705853217FDE6D9005F2BCB /* JSMediaTrackConstraint.h in Headers */,
</span><span class="cx">                                 0705853417FDE6D9005F2BCB /* JSMediaTrackConstraints.h in Headers */,
</span><span class="cx">                                 0705853617FDE6D9005F2BCB /* JSMediaTrackConstraintSet.h in Headers */,
</span><span class="lines">@@ -25285,7 +25255,6 @@
</span><span class="cx">                                 9BDA64D81B975CF2009C4387 /* JSShadowRoot.h in Headers */,
</span><span class="cx">                                 CD9DE17B17AAC75B00EA386D /* JSSourceBuffer.h in Headers */,
</span><span class="cx">                                 CD9DE17D17AAC75B00EA386D /* JSSourceBufferList.h in Headers */,
</span><del>-                                076306E117E16089005A7C4E /* JSSourceInfo.h in Headers */,
</del><span class="cx">                                 AA7FEEAD16A4E74B004C0C33 /* JSSpeechSynthesis.h in Headers */,
</span><span class="cx">                                 AA2A5AD216A4860A00976A25 /* JSSpeechSynthesisEvent.h in Headers */,
</span><span class="cx">                                 AA7FEEA716A4E6F3004C0C33 /* JSSpeechSynthesisUtterance.h in Headers */,
</span><span class="lines">@@ -25715,8 +25684,6 @@
</span><span class="cx">                                 078E091817D14D1C00420AA1 /* MediaStreamTrack.h in Headers */,
</span><span class="cx">                                 078E091917D14D1C00420AA1 /* MediaStreamTrackEvent.h in Headers */,
</span><span class="cx">                                 07FFDE69181AED420072D409 /* MediaStreamTrackPrivate.h in Headers */,
</span><del>-                                076306D017E1478D005A7C4E /* MediaStreamTrackSourcesCallback.h in Headers */,
-                                076306E317E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h in Headers */,
</del><span class="cx">                                 CD641EC01819B36000EE4C41 /* MediaTimeAVFoundation.h in Headers */,
</span><span class="cx">                                 CD60C0C7193E87C7003C656B /* MediaTimeQTKit.h in Headers */,
</span><span class="cx">                                 0705852117FDC140005F2BCB /* MediaTrackConstraint.h in Headers */,
</span><span class="lines">@@ -26222,6 +26189,7 @@
</span><span class="cx">                                 514C76790CE923A1007EF3CD /* ResourceHandle.h in Headers */,
</span><span class="cx">                                 26FAE4CD1852E3A5004C8C46 /* ResourceHandleCFURLConnectionDelegate.h in Headers */,
</span><span class="cx">                                 26C15CF71857E15E00F15C03 /* ResourceHandleCFURLConnectionDelegateWithOperationQueue.h in Headers */,
</span><ins>+                                07B7116F1D899E63009F0FFB /* CaptureDeviceManager.h in Headers */,
</ins><span class="cx">                                 514C767A0CE923A1007EF3CD /* ResourceHandleClient.h in Headers */,
</span><span class="cx">                                 514C767B0CE923A1007EF3CD /* ResourceHandleInternal.h in Headers */,
</span><span class="cx">                                 51E4143416A6596300C633C7 /* ResourceHandleTypes.h in Headers */,
</span><span class="lines">@@ -26439,7 +26407,6 @@
</span><span class="cx">                                 CDC8B5AB18047FF10016E685 /* SourceBufferPrivateAVFObjC.h in Headers */,
</span><span class="cx">                                 CDC8B5AD1804AE5D0016E685 /* SourceBufferPrivateClient.h in Headers */,
</span><span class="cx">                                 84A81F420FC7E02700955300 /* SourceGraphic.h in Headers */,
</span><del>-                                076306D817E149D0005A7C4E /* SourceInfo.h in Headers */,
</del><span class="cx">                                 D01A27AE10C9BFD800026A42 /* SpaceSplitString.h in Headers */,
</span><span class="cx">                                 626CDE0F1140424C001E5A68 /* SpatialNavigation.h in Headers */,
</span><span class="cx">                                 AA2A5AD416A4861100975A25 /* SpeechSynthesis.h in Headers */,
</span><span class="lines">@@ -27733,7 +27700,6 @@
</span><span class="cx">                                 49484FCD102CF23C00187DD3 /* CanvasStyle.cpp in Sources */,
</span><span class="cx">                                 072CA86116CB4DC3008AE131 /* CaptionUserPreferences.cpp in Sources */,
</span><span class="cx">                                 079D086C162F21F900DB8658 /* CaptionUserPreferencesMediaAF.cpp in Sources */,
</span><del>-                                2E3C8C641BFBB75D00309566 /* CaptureDeviceManager.cpp in Sources */,
</del><span class="cx">                                 99CC0B4E18BE9849006CEBCC /* CapturingInputCursor.cpp in Sources */,
</span><span class="cx">                                 CDC734141977896C0046BFC5 /* CARingBuffer.cpp in Sources */,
</span><span class="cx">                                 6550B69D099DF0270090D781 /* CDATASection.cpp in Sources */,
</span><span class="lines">@@ -27885,6 +27851,7 @@
</span><span class="cx">                                 FBB0C5B717BBD626003D3677 /* CSSFilterImageValue.cpp in Sources */,
</span><span class="cx">                                 BC64B4D50CB4298A005F2B62 /* CSSFontFace.cpp in Sources */,
</span><span class="cx">                                 409EBDB216B7EE7400CBA3FC /* CSSFontFaceLoadEvent.cpp in Sources */,
</span><ins>+                                07B7116E1D899E63009F0FFB /* CaptureDeviceManager.cpp in Sources */,
</ins><span class="cx">                                 A80E6CE70A1989CA007FB8C5 /* CSSFontFaceRule.cpp in Sources */,
</span><span class="cx">                                 C26017A31C72DC9900F74A16 /* CSSFontFaceSet.cpp in Sources */,
</span><span class="cx">                                 BC64B4D70CB4298A005F2B62 /* CSSFontFaceSource.cpp in Sources */,
</span><span class="lines">@@ -28904,7 +28871,6 @@
</span><span class="cx">                                 07277E5217D018CC0015534D /* JSMediaStreamTrack.cpp in Sources */,
</span><span class="cx">                                 07C59B6E17F794F6000FBCBB /* JSMediaStreamTrackCustom.cpp in Sources */,
</span><span class="cx">                                 07277E5417D018CC0015534D /* JSMediaStreamTrackEvent.cpp in Sources */,
</span><del>-                                076306DC17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.cpp in Sources */,
</del><span class="cx">                                 0705853117FDE6D9005F2BCB /* JSMediaTrackConstraint.cpp in Sources */,
</span><span class="cx">                                 0705853317FDE6D9005F2BCB /* JSMediaTrackConstraints.cpp in Sources */,
</span><span class="cx">                                 0705853517FDE6D9005F2BCB /* JSMediaTrackConstraintSet.cpp in Sources */,
</span><span class="lines">@@ -29003,7 +28969,6 @@
</span><span class="cx">                                 9BDA64D71B975CE5009C4387 /* JSShadowRoot.cpp in Sources */,
</span><span class="cx">                                 CD9DE17A17AAC75B00EA386D /* JSSourceBuffer.cpp in Sources */,
</span><span class="cx">                                 CD9DE17C17AAC75B00EA386D /* JSSourceBufferList.cpp in Sources */,
</span><del>-                                076306E017E16089005A7C4E /* JSSourceInfo.cpp in Sources */,
</del><span class="cx">                                 AA7FEEA416A4E6F3004C0C33 /* JSSpeechSynthesis.cpp in Sources */,
</span><span class="cx">                                 AA2A5AD316A4860D00976A25 /* JSSpeechSynthesisEvent.cpp in Sources */,
</span><span class="cx">                                 AA7FEEA616A4E6F3004C0C33 /* JSSpeechSynthesisUtterance.cpp in Sources */,
</span><span class="lines">@@ -30009,7 +29974,6 @@
</span><span class="cx">                                 CD3A496417A9D01B00274E42 /* SourceBufferList.cpp in Sources */,
</span><span class="cx">                                 CDC8B5AA18047FF10016E685 /* SourceBufferPrivateAVFObjC.mm in Sources */,
</span><span class="cx">                                 84A81F410FC7E02700955300 /* SourceGraphic.cpp in Sources */,
</span><del>-                                076306D717E149CF005A7C4E /* SourceInfo.cpp in Sources */,
</del><span class="cx">                                 D01A27AD10C9BFD800026A42 /* SpaceSplitString.cpp in Sources */,
</span><span class="cx">                                 626CDE0E1140424C001E5A68 /* SpatialNavigation.cpp in Sources */,
</span><span class="cx">                                 AA2A5AD516A4861400975A25 /* SpeechSynthesis.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamCaptureDevicehfromrev205914trunkSourceWebCoreModulesmediastreamCaptureDeviceInfoh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/mediastream/CaptureDevice.h (from rev 205914, trunk/Source/WebCore/Modules/mediastream/CaptureDeviceInfo.h) (0 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/CaptureDevice.h                                (rev 0)
+++ trunk/Source/WebCore/platform/mediastream/CaptureDevice.h        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -0,0 +1,61 @@
</span><ins>+/*
+ * Copyright (C) 2016 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.
+ */
+
+#pragma once
+
+#if ENABLE(MEDIA_STREAM)
+
+#include &lt;RealtimeMediaSource.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace WebCore {
+
+class CaptureDevice {
+public:
+    enum class SourceKind { Audio, Video };
+
+    CaptureDevice(const String&amp; persistentId, SourceKind kind, const String&amp; label, const String&amp; groupId)
+        : m_persistentId(persistentId)
+        , m_kind(kind)
+        , m_label(label)
+        , m_groupId(groupId)
+    {
+    }
+
+    const String&amp; persistentId() const { return m_persistentId; }
+    const String&amp; label() const { return m_label; }
+    const String&amp; groupId() const { return m_groupId; }
+    SourceKind kind() const { return m_kind; }
+
+private:
+    String m_persistentId;
+    SourceKind m_kind;
+    String m_label;
+    String m_groupId;
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(MEDIA_STREAM)
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamCaptureDeviceManagercppfromrev205914trunkSourceWebCoreModulesmediastreamCaptureDeviceManagercpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/mediastream/CaptureDeviceManager.cpp (from rev 205914, trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.cpp) (0 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/CaptureDeviceManager.cpp                                (rev 0)
+++ trunk/Source/WebCore/platform/mediastream/CaptureDeviceManager.cpp        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -0,0 +1,209 @@
</span><ins>+/*
+ * Copyright (C) 2015-2016 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.
+ */
+
+#import &quot;config.h&quot;
+#import &quot;CaptureDeviceManager.h&quot;
+
+#if ENABLE(MEDIA_STREAM)
+
+#import &quot;Logging.h&quot;
+#import &quot;MediaConstraints.h&quot;
+#import &quot;RealtimeMediaSource.h&quot;
+#import &quot;RealtimeMediaSourceCenter.h&quot;
+#import &quot;RealtimeMediaSourceSettings.h&quot;
+#import &quot;UUID.h&quot;
+#import &lt;wtf/MainThread.h&gt;
+#import &lt;wtf/NeverDestroyed.h&gt;
+#import &lt;wtf/text/StringHash.h&gt;
+
+using namespace WebCore;
+
+CaptureDeviceManager::~CaptureDeviceManager()
+{
+}
+
+Vector&lt;CaptureDevice&gt; CaptureDeviceManager::getSourcesInfo()
+{
+    Vector&lt;CaptureDevice&gt; sourcesInfo;
+    for (auto captureDevice : captureDeviceList()) {
+        if (!captureDevice.m_enabled || captureDevice.m_sourceType == RealtimeMediaSource::None)
+            continue;
+
+        CaptureDevice::SourceKind kind = captureDevice.m_sourceType == RealtimeMediaSource::Video ? CaptureDevice::SourceKind::Video : CaptureDevice::SourceKind::Audio;
+        sourcesInfo.append(CaptureDevice(captureDevice.m_persistentDeviceID, kind, captureDevice.m_localizedName, captureDevice.m_groupID));
+    }
+    LOG(Media, &quot;CaptureDeviceManager::getSourcesInfo(%p), found %zu active devices&quot;, this, sourcesInfo.size());
+    return sourcesInfo;
+}
+
+bool CaptureDeviceManager::captureDeviceFromDeviceID(const String&amp; captureDeviceID, CaptureDeviceInfo&amp; foundDevice)
+{
+    for (auto&amp; device : captureDeviceList()) {
+        if (device.m_persistentDeviceID == captureDeviceID) {
+            foundDevice = device;
+            return true;
+        }
+    }
+
+    return false;
+}
+
+bool CaptureDeviceManager::verifyConstraintsForMediaType(RealtimeMediaSource::Type type, const MediaConstraints&amp; constraints, const CaptureSessionInfo* session, String&amp; invalidConstraint)
+{
+    auto&amp; mandatoryConstraints = constraints.mandatoryConstraints();
+    for (auto&amp; nameConstraintPair : mandatoryConstraints) {
+        if (sessionSupportsConstraint(session, type, *nameConstraintPair.value))
+            continue;
+
+        invalidConstraint = nameConstraintPair.key;
+        return false;
+    }
+
+    return true;
+}
+
+Vector&lt;RefPtr&lt;RealtimeMediaSource&gt;&gt; CaptureDeviceManager::bestSourcesForTypeAndConstraints(RealtimeMediaSource::Type type, MediaConstraints&amp; constraints)
+{
+    Vector&lt;RefPtr&lt;RealtimeMediaSource&gt;&gt; bestSourcesList;
+
+    struct {
+        bool operator()(RefPtr&lt;RealtimeMediaSource&gt; a, RefPtr&lt;RealtimeMediaSource&gt; b)
+        {
+            return a-&gt;fitnessScore() &lt; b-&gt;fitnessScore();
+        }
+    } sortBasedOnFitnessScore;
+
+    for (auto&amp; captureDevice : captureDeviceList()) {
+        if (!captureDevice.m_enabled || captureDevice.m_sourceId.isEmpty() || captureDevice.m_sourceType == RealtimeMediaSource::None)
+            continue;
+
+        if (RefPtr&lt;RealtimeMediaSource&gt; captureSource = sourceWithUID(captureDevice.m_persistentDeviceID, type, &amp;constraints))
+            bestSourcesList.append(captureSource.leakRef());
+    }
+    std::sort(bestSourcesList.begin(), bestSourcesList.end(), sortBasedOnFitnessScore);
+    return bestSourcesList;
+}
+
+RefPtr&lt;RealtimeMediaSource&gt; CaptureDeviceManager::sourceWithUID(const String&amp; deviceUID, RealtimeMediaSource::Type type, MediaConstraints* constraints)
+{
+    for (auto&amp; captureDevice : captureDeviceList()) {
+        if (captureDevice.m_persistentDeviceID != deviceUID || captureDevice.m_sourceType != type)
+            continue;
+
+        if (!captureDevice.m_enabled || type == RealtimeMediaSource::None || captureDevice.m_sourceId.isEmpty())
+            continue;
+
+        if (RealtimeMediaSource* mediaSource = createMediaSourceForCaptureDeviceWithConstraints(captureDevice, constraints))
+            return mediaSource;
+    }
+    return nullptr;
+}
+
+CaptureDeviceInfo* CaptureDeviceManager::bestDeviceForFacingMode(RealtimeMediaSourceSettings::VideoFacingMode facingMode)
+{
+    if (facingMode == RealtimeMediaSourceSettings::Unknown)
+        return nullptr;
+
+    for (auto&amp; device : captureDeviceList()) {
+        if (device.m_sourceType == RealtimeMediaSource::Video &amp;&amp; device.m_position == facingMode)
+            return &amp;device;
+    }
+    return nullptr;
+}
+
+static inline RealtimeMediaSourceSettings::VideoFacingMode facingModeFromString(const String&amp; facingModeString)
+{
+    static NeverDestroyed&lt;AtomicString&gt; userFacingModeString(&quot;user&quot;, AtomicString::ConstructFromLiteral);
+    static NeverDestroyed&lt;AtomicString&gt; environmentFacingModeString(&quot;environment&quot;, AtomicString::ConstructFromLiteral);
+    static NeverDestroyed&lt;AtomicString&gt; leftFacingModeString(&quot;left&quot;, AtomicString::ConstructFromLiteral);
+    static NeverDestroyed&lt;AtomicString&gt; rightFacingModeString(&quot;right&quot;, AtomicString::ConstructFromLiteral);
+    if (facingModeString == userFacingModeString)
+        return RealtimeMediaSourceSettings::User;
+    if (facingModeString == environmentFacingModeString)
+        return RealtimeMediaSourceSettings::Environment;
+    if (facingModeString == leftFacingModeString)
+        return RealtimeMediaSourceSettings::Left;
+    if (facingModeString == rightFacingModeString)
+        return RealtimeMediaSourceSettings::Right;
+    return RealtimeMediaSourceSettings::Unknown;
+}
+
+bool CaptureDeviceManager::sessionSupportsConstraint(const CaptureSessionInfo*, RealtimeMediaSource::Type type, const MediaConstraint&amp; constraint)
+{
+    const RealtimeMediaSourceSupportedConstraints&amp; supportedConstraints = RealtimeMediaSourceCenter::singleton().supportedConstraints();
+    MediaConstraintType constraintType = constraint.type();
+    if (!supportedConstraints.supportsConstraint(constraintType))
+        return false;
+
+    switch (constraintType) {
+    case MediaConstraintType::Width:
+        return type == RealtimeMediaSource::Video;
+
+    case MediaConstraintType::Height:
+        return type == RealtimeMediaSource::Video;
+
+    case MediaConstraintType::FrameRate: {
+        if (type == RealtimeMediaSource::Audio)
+            return false;
+
+        return isSupportedFrameRate(constraint);
+    }
+    case MediaConstraintType::FacingMode: {
+        if (type == RealtimeMediaSource::Audio)
+            return false;
+
+        // FIXME: https://bugs.webkit.org/show_bug.cgi?id=160793. Handle sequence of facingMode constraints.
+        Vector&lt;String&gt; exactFacingMode;
+        if (!constraint.getExact(exactFacingMode))
+            return false;
+
+        return bestDeviceForFacingMode(facingModeFromString(exactFacingMode[0]));
+    }
+    default:
+        return false;
+    }
+}
+
+bool CaptureDeviceManager::isSupportedFrameRate(const MediaConstraint&amp; constraint) const
+{
+    // FIXME: https://bugs.webkit.org/show_bug.cgi?id=160794. Dynamically check media devices if frame rate is supported.
+    bool isSupported = true;
+
+    int min = 0;
+    if (constraint.getMin(min))
+        isSupported &amp;= min &gt; 60;
+
+    int max = 60;
+    if (constraint.getMax(max))
+        isSupported &amp;= max &lt; min;
+
+    int exact;
+    if (constraint.getExact(exact))
+        isSupported &amp;= (exact &lt; min || exact &gt; max);
+
+    return isSupported;
+}
+
+#endif // ENABLE(MEDIA_STREAM)
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamCaptureDeviceManagerhfromrev205914trunkSourceWebCoreModulesmediastreamCaptureDeviceManagerh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/mediastream/CaptureDeviceManager.h (from rev 205914, trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.h) (0 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/CaptureDeviceManager.h                                (rev 0)
+++ trunk/Source/WebCore/platform/mediastream/CaptureDeviceManager.h        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -0,0 +1,78 @@
</span><ins>+/*
+ * Copyright (C) 2015-2016 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.
+ */
+
+#pragma once
+
+#if ENABLE(MEDIA_STREAM)
+
+#include &quot;CaptureDevice.h&quot;
+
+namespace WebCore {
+
+struct CaptureDeviceInfo {
+public:
+    String m_persistentDeviceID;
+    String m_localizedName;
+    String m_groupID;
+
+    String m_sourceId;
+
+    bool m_enabled { false };
+    RealtimeMediaSource::Type m_sourceType { RealtimeMediaSource::None };
+    RealtimeMediaSourceSettings::VideoFacingMode m_position { RealtimeMediaSourceSettings::Unknown };
+};
+
+class CaptureSessionInfo {
+public:
+    virtual ~CaptureSessionInfo() { }
+    virtual bool supportsVideoSize(const String&amp; /* videoSize */) const { return false; }
+    virtual String bestSessionPresetForVideoDimensions(int /* width */, int /* height */) const { return emptyString(); }
+};
+
+class CaptureDeviceManager {
+public:
+    virtual Vector&lt;CaptureDeviceInfo&gt;&amp; captureDeviceList() = 0;
+    virtual void refreshCaptureDeviceList() { }
+    virtual Vector&lt;CaptureDevice&gt; getSourcesInfo();
+    virtual Vector&lt;RefPtr&lt;RealtimeMediaSource&gt;&gt; bestSourcesForTypeAndConstraints(RealtimeMediaSource::Type, MediaConstraints&amp;);
+    virtual RefPtr&lt;RealtimeMediaSource&gt; sourceWithUID(const String&amp;, RealtimeMediaSource::Type, MediaConstraints*);
+
+    virtual bool verifyConstraintsForMediaType(RealtimeMediaSource::Type, const MediaConstraints&amp;, const CaptureSessionInfo*, String&amp;);
+
+protected:
+    virtual ~CaptureDeviceManager();
+    virtual RealtimeMediaSource* createMediaSourceForCaptureDeviceWithConstraints(const CaptureDeviceInfo&amp;, MediaConstraints*) = 0;
+
+    virtual CaptureSessionInfo defaultCaptureSession() const { return CaptureSessionInfo(); }
+    virtual bool sessionSupportsConstraint(const CaptureSessionInfo*, RealtimeMediaSource::Type, const MediaConstraint&amp;);
+    virtual bool isSupportedFrameRate(const MediaConstraint&amp;) const;
+
+    bool captureDeviceFromDeviceID(const String&amp; captureDeviceID, CaptureDeviceInfo&amp; source);
+    CaptureDeviceInfo* bestDeviceForFacingMode(RealtimeMediaSourceSettings::VideoFacingMode);
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(MEDIA_STREAM)
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamMediaStreamTrackSourcesRequestClienth"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -1,98 +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.
- *
- * 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 MediaStreamTrackSourcesRequestClient_h
-#define MediaStreamTrackSourcesRequestClient_h
-
-#if ENABLE(MEDIA_STREAM)
-
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/Ref.h&gt;
-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/text/AtomicString.h&gt;
-
-namespace WebCore {
-
-class TrackSourceInfo : public RefCounted&lt;TrackSourceInfo&gt; {
-public:
-    enum SourceKind { Audio, Video };
-
-    static PassRefPtr&lt;TrackSourceInfo&gt; create(const AtomicString&amp; persistentId, const AtomicString&amp; id, SourceKind kind, const AtomicString&amp; label)
-    {
-        return adoptRef(new TrackSourceInfo(persistentId, id, kind, label));
-    }
-
-    static Ref&lt;TrackSourceInfo&gt; create(const AtomicString&amp; persistentId, const AtomicString&amp; id, SourceKind kind, const AtomicString&amp; label, const AtomicString&amp; groupId)
-    {
-        return adoptRef(*new TrackSourceInfo(persistentId, id, kind, label, groupId));
-    }
-
-    const AtomicString&amp; id() const { return m_id; }
-    const AtomicString&amp; persistentId() const { return m_persistentId; }
-    const AtomicString&amp; label() const { return m_label; }
-    const AtomicString&amp; groupId() const { return m_groupId; }
-    SourceKind kind() const { return m_kind; }
-
-private:
-    TrackSourceInfo(const AtomicString&amp; persistentId, const AtomicString&amp; id, SourceKind kind, const AtomicString&amp; label)
-        : m_persistentId(persistentId)
-        , m_id(id)
-        , m_kind(kind)
-        , m_label(label)
-    {
-    }
-
-    TrackSourceInfo(const AtomicString&amp; persistentId, const AtomicString&amp; id, SourceKind kind, const AtomicString&amp; label, const AtomicString&amp; groupId)
-        : m_persistentId(persistentId)
-        , m_id(id)
-        , m_kind(kind)
-        , m_label(label)
-        , m_groupId(groupId)
-    {
-    }
-
-    AtomicString m_persistentId;
-    AtomicString m_id;
-    SourceKind m_kind;
-    AtomicString m_label;
-    AtomicString m_groupId;
-};
-
-typedef Vector&lt;RefPtr&lt;TrackSourceInfo&gt;&gt; TrackSourceInfoVector;
-
-class MediaStreamTrackSourcesRequestClient : public RefCounted&lt;MediaStreamTrackSourcesRequestClient&gt; {
-public:
-    virtual ~MediaStreamTrackSourcesRequestClient() { }
-
-    virtual const String&amp; requestOrigin() const = 0;
-    virtual void didCompleteTrackSourceInfoRequest(const TrackSourceInfoVector&amp;) = 0;
-};
-
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
-
-#endif // MediaStreamTrackSourcesRequestClient_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceCenterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -41,9 +41,9 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+class CaptureDevice;
</ins><span class="cx"> class MediaConstraints;
</span><span class="cx"> class MediaStreamCreationClient;
</span><del>-class MediaStreamTrackSourcesRequestClient;
</del><span class="cx"> class RealtimeMediaSourceSettings;
</span><span class="cx"> class RealtimeMediaSourceSupportedConstraints;
</span><span class="cx"> class TrackSourceInfo;
</span><span class="lines">@@ -61,10 +61,8 @@
</span><span class="cx"> 
</span><span class="cx">     virtual void createMediaStream(PassRefPtr&lt;MediaStreamCreationClient&gt;, MediaConstraints&amp; audioConstraints, MediaConstraints&amp; videoConstraints) = 0;
</span><span class="cx"> 
</span><del>-    virtual bool getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt;) = 0;
</del><ins>+    virtual Vector&lt;CaptureDevice&gt; getMediaStreamDevices() = 0;
</ins><span class="cx">     
</span><del>-    virtual RefPtr&lt;TrackSourceInfo&gt; sourceWithUID(const String&amp;, RealtimeMediaSource::Type, MediaConstraints*) = 0;
-
</del><span class="cx">     virtual const RealtimeMediaSourceSupportedConstraints&amp; supportedConstraints() { return m_supportedConstraints; }
</span><span class="cx"> 
</span><span class="cx"> protected:
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVCaptureDeviceManagerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> #if ENABLE(MEDIA_STREAM) &amp;&amp; USE(AVFOUNDATION)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CaptureDeviceManager.h&quot;
</span><del>-#include &quot;MediaStreamTrackSourcesRequestClient.h&quot;
</del><span class="cx"> #include &quot;RealtimeMediaSource.h&quot;
</span><span class="cx"> #include &quot;RealtimeMediaSourceSupportedConstraints.h&quot;
</span><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="lines">@@ -63,7 +62,7 @@
</span><span class="cx">     RefPtr&lt;RealtimeMediaSource&gt; sourceWithUID(const String&amp;, RealtimeMediaSource::Type, MediaConstraints*) override;
</span><span class="cx">     Vector&lt;RefPtr&lt;RealtimeMediaSource&gt;&gt; bestSourcesForTypeAndConstraints(RealtimeMediaSource::Type, MediaConstraints&amp;) override;
</span><span class="cx"> 
</span><del>-    TrackSourceInfoVector getSourcesInfo(const String&amp;) override;
</del><ins>+    Vector&lt;CaptureDevice&gt; getSourcesInfo() override;
</ins><span class="cx">     bool verifyConstraintsForMediaType(RealtimeMediaSource::Type, const MediaConstraints&amp;, const CaptureSessionInfo*, String&amp;) override;
</span><span class="cx"> 
</span><span class="cx">     void deviceConnected();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVCaptureDeviceManagermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -240,12 +240,12 @@
</span><span class="cx">     return CaptureDeviceManager::sourceWithUID(deviceUID, type, constraints);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-TrackSourceInfoVector AVCaptureDeviceManager::getSourcesInfo(const String&amp; requestOrigin)
</del><ins>+Vector&lt;CaptureDevice&gt; AVCaptureDeviceManager::getSourcesInfo()
</ins><span class="cx"> {
</span><span class="cx">     if (!isAvailable())
</span><del>-        return TrackSourceInfoVector();
</del><ins>+        return Vector&lt;CaptureDevice&gt;();
</ins><span class="cx"> 
</span><del>-    return CaptureDeviceManager::getSourcesInfo(requestOrigin);
</del><ins>+    return CaptureDeviceManager::getSourcesInfo();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool AVCaptureDeviceManager::verifyConstraintsForMediaType(RealtimeMediaSource::Type type, const MediaConstraints&amp; constraints, const CaptureSessionInfo* session, String&amp; invalidConstraint)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacRealtimeMediaSourceCenterMaccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx"> #include &quot;AVCaptureDeviceManager.h&quot;
</span><span class="cx"> #include &quot;MediaStreamCreationClient.h&quot;
</span><span class="cx"> #include &quot;MediaStreamPrivate.h&quot;
</span><del>-#include &quot;MediaStreamTrackSourcesRequestClient.h&quot;
</del><span class="cx"> #include &lt;wtf/MainThread.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -160,26 +159,11 @@
</span><span class="cx">     client-&gt;didCreateStream(MediaStreamPrivate::create(audioSources, videoSources));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool RealtimeMediaSourceCenterMac::getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt; prpClient)
</del><ins>+Vector&lt;CaptureDevice&gt; RealtimeMediaSourceCenterMac::getMediaStreamDevices()
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;MediaStreamTrackSourcesRequestClient&gt; requestClient = prpClient;
-    TrackSourceInfoVector sources = AVCaptureDeviceManager::singleton().getSourcesInfo(requestClient-&gt;requestOrigin());
-
-    callOnMainThread([this, requestClient = WTFMove(requestClient), sources = WTFMove(sources)] {
-        requestClient-&gt;didCompleteTrackSourceInfoRequest(sources);
-    });
-
-    return true;
</del><ins>+    return AVCaptureDeviceManager::singleton().getSourcesInfo();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;TrackSourceInfo&gt; RealtimeMediaSourceCenterMac::sourceWithUID(const String&amp; UID, RealtimeMediaSource::Type type, MediaConstraints* constraints)
-{
-    RefPtr&lt;RealtimeMediaSource&gt; mediaSource = AVCaptureDeviceManager::singleton().sourceWithUID(UID, type, constraints);
-    if (!mediaSource)
-        return nullptr;
-    return TrackSourceInfo::create(mediaSource-&gt;persistentID(), mediaSource-&gt;id(), mediaSource-&gt;type() == RealtimeMediaSource::Type::Video ? TrackSourceInfo::SourceKind::Video : TrackSourceInfo::SourceKind::Audio, mediaSource-&gt;name());
-}
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(MEDIA_STREAM)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacRealtimeMediaSourceCenterMach"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.h (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.h        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.h        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -50,8 +50,7 @@
</span><span class="cx">     void validateRequestConstraints(MediaStreamCreationClient*, MediaConstraints&amp; audioConstraints, MediaConstraints&amp; videoConstraints) final;
</span><span class="cx">     void createMediaStream(PassRefPtr&lt;MediaStreamCreationClient&gt;, MediaConstraints&amp; audioConstraints, MediaConstraints&amp; videoConstraints) final;
</span><span class="cx">     void createMediaStream(MediaStreamCreationClient*, const String&amp; audioDeviceID, const String&amp; videoDeviceID) final;
</span><del>-    bool getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt;) final;
-    RefPtr&lt;TrackSourceInfo&gt; sourceWithUID(const String&amp;, RealtimeMediaSource::Type, MediaConstraints*) final;
</del><ins>+    Vector&lt;CaptureDevice&gt; getMediaStreamDevices() final;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeMediaSourceCenterOwrcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -36,12 +36,11 @@
</span><span class="cx"> #if ENABLE(MEDIA_STREAM) &amp;&amp; USE(OPENWEBRTC)
</span><span class="cx"> #include &quot;RealtimeMediaSourceCenterOwr.h&quot;
</span><span class="cx"> 
</span><ins>+#include &quot;CaptureDevice.h&quot;
</ins><span class="cx"> #include &quot;MediaStreamCreationClient.h&quot;
</span><span class="cx"> #include &quot;MediaStreamPrivate.h&quot;
</span><del>-#include &quot;MediaStreamTrackSourcesRequestClient.h&quot;
</del><span class="cx"> #include &quot;NotImplemented.h&quot;
</span><span class="cx"> #include &quot;OpenWebRTCUtilities.h&quot;
</span><del>-#include &quot;RealtimeMediaSource.h&quot;
</del><span class="cx"> #include &quot;RealtimeMediaSourceCapabilities.h&quot;
</span><span class="cx"> #include &quot;UUID.h&quot;
</span><span class="cx"> #include &lt;owr/owr.h&gt;
</span><span class="lines">@@ -154,10 +153,10 @@
</span><span class="cx">     client-&gt;didCreateStream(MediaStreamPrivate::create(audioSources, videoSources));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool RealtimeMediaSourceCenterOwr::getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt;)
</del><ins>+Vector&lt;CaptureDevice&gt; RealtimeMediaSourceCenterOwr::getMediaStreamDevices()
</ins><span class="cx"> {
</span><span class="cx">     notImplemented();
</span><del>-    return false;
</del><ins>+    return Vector&lt;CaptureDevice&gt;();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RealtimeMediaSourceCenterOwr::mediaSourcesAvailable(GList* sources)
</span><span class="lines">@@ -211,15 +210,6 @@
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;TrackSourceInfo&gt; RealtimeMediaSourceCenterOwr::sourceWithUID(const String&amp; UID, RealtimeMediaSource::Type, MediaConstraints*)
-{
-    for (auto&amp; source : m_sourceMap.values()) {
-        if (source-&gt;id() == UID)
-            return TrackSourceInfo::create(source-&gt;persistentID(), source-&gt;id(), source-&gt;type() == RealtimeMediaSource::Type::Video ? TrackSourceInfo::SourceKind::Video : TrackSourceInfo::SourceKind::Audio , source-&gt;name());
-    }
-
-    return nullptr;
-}
</del><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(MEDIA_STREAM) &amp;&amp; USE(OPENWEBRTC)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeMediaSourceCenterOwrh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -43,6 +43,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+class CaptureDevice;
</ins><span class="cx"> class MediaStreamPrivate;
</span><span class="cx"> class RealtimeMediaSource;
</span><span class="cx"> class MediaStreamSourcesQueryClient;
</span><span class="lines">@@ -58,10 +59,9 @@
</span><span class="cx">     void createMediaStream(PassRefPtr&lt;MediaStreamCreationClient&gt;, MediaConstraints&amp; audioConstraints, MediaConstraints&amp; videoConstraints) final;
</span><span class="cx">     void createMediaStream(MediaStreamCreationClient*, const String&amp; audioDeviceID, const String&amp; videoDeviceID) final;
</span><span class="cx"> 
</span><del>-    bool getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt;) final;
</del><ins>+    Vector&lt;CaptureDevice&gt; getMediaStreamDevices() final;
</ins><span class="cx"> 
</span><span class="cx">     void mediaSourcesAvailable(GList* sources);
</span><del>-    RefPtr&lt;TrackSourceInfo&gt; sourceWithUID(const String&amp;, RealtimeMediaSource::Type, MediaConstraints*) final;
</del><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     PassRefPtr&lt;RealtimeMediaSource&gt; firstSource(RealtimeMediaSource::Type);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockMockRealtimeMediaSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.cpp (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.cpp        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.cpp        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -32,9 +32,9 @@
</span><span class="cx"> #include &quot;MockRealtimeMediaSource.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_STREAM)
</span><ins>+#include &quot;CaptureDevice.h&quot;
</ins><span class="cx"> #include &quot;Logging.h&quot;
</span><span class="cx"> #include &quot;MediaConstraints.h&quot;
</span><del>-#include &quot;MediaStreamTrackSourcesRequestClient.h&quot;
</del><span class="cx"> #include &quot;NotImplemented.h&quot;
</span><span class="cx"> #include &quot;RealtimeMediaSourceSettings.h&quot;
</span><span class="cx"> #include &lt;math.h&gt;
</span><span class="lines">@@ -68,19 +68,19 @@
</span><span class="cx">     return name;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;TrackSourceInfo&gt; MockRealtimeMediaSource::trackSourceWithUID(const String&amp; id, MediaConstraints*)
</del><ins>+CaptureDevice MockRealtimeMediaSource::audioDeviceInfo()
</ins><span class="cx"> {
</span><del>-    // FIXME: validate constraints.
</del><ins>+    static NeverDestroyed&lt;CaptureDevice&gt; deviceInfo(mockAudioSourcePersistentID(), CaptureDevice::SourceKind::Audio, mockAudioSourceName(), &quot;&quot;);
+    return deviceInfo;
+}
</ins><span class="cx"> 
</span><del>-    if (mockAudioSourcePersistentID() == id)
-        return TrackSourceInfo::create(mockAudioSourcePersistentID(), id, TrackSourceInfo::Audio, &quot;Mock audio device&quot;);
-
-    if (mockVideoSourcePersistentID() == id)
-        return TrackSourceInfo::create(mockVideoSourcePersistentID(), id, TrackSourceInfo::Video, &quot;Mock video device&quot;);
-    
-    return nullptr;
</del><ins>+CaptureDevice MockRealtimeMediaSource::videoDeviceInfo()
+{
+    static NeverDestroyed&lt;CaptureDevice&gt; deviceInfo(mockVideoSourcePersistentID(), CaptureDevice::SourceKind::Video, mockVideoSourceName(), &quot;&quot;);
+    return deviceInfo;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> MockRealtimeMediaSource::MockRealtimeMediaSource(const String&amp; id, RealtimeMediaSource::Type type, const String&amp; name)
</span><span class="cx">     : RealtimeMediaSource(id, type, name)
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockMockRealtimeMediaSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.h (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.h        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.h        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-class TrackSourceInfo;
</del><ins>+class CaptureDevice;
</ins><span class="cx"> 
</span><span class="cx"> class MockRealtimeMediaSource : public RealtimeMediaSource {
</span><span class="cx"> public:
</span><span class="lines">@@ -49,7 +49,8 @@
</span><span class="cx">     static const AtomicString&amp; mockVideoSourcePersistentID();
</span><span class="cx">     static const AtomicString&amp; mockVideoSourceName();
</span><span class="cx"> 
</span><del>-    static RefPtr&lt;TrackSourceInfo&gt; trackSourceWithUID(const String&amp;, MediaConstraints*);
</del><ins>+    static CaptureDevice audioDeviceInfo();
+    static CaptureDevice videoDeviceInfo();
</ins><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     MockRealtimeMediaSource(const String&amp; id, Type, const String&amp; name);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockMockRealtimeMediaSourceCentercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -30,12 +30,12 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_STREAM)
</span><span class="cx"> 
</span><ins>+#include &quot;CaptureDevice.h&quot;
</ins><span class="cx"> #include &quot;MediaConstraintsMock.h&quot;
</span><span class="cx"> #include &quot;MediaStream.h&quot;
</span><span class="cx"> #include &quot;MediaStreamCreationClient.h&quot;
</span><span class="cx"> #include &quot;MediaStreamPrivate.h&quot;
</span><span class="cx"> #include &quot;MediaStreamTrack.h&quot;
</span><del>-#include &quot;MediaStreamTrackSourcesRequestClient.h&quot;
</del><span class="cx"> #include &quot;MockRealtimeAudioSource.h&quot;
</span><span class="cx"> #include &quot;MockRealtimeMediaSource.h&quot;
</span><span class="cx"> #include &quot;MockRealtimeVideoSource.h&quot;
</span><span class="lines">@@ -151,26 +151,16 @@
</span><span class="cx">     client-&gt;didCreateStream(MediaStreamPrivate::create(audioSources, videoSources));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-bool MockRealtimeMediaSourceCenter::getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt; prpClient)
</del><ins>+Vector&lt;CaptureDevice&gt; MockRealtimeMediaSourceCenter::getMediaStreamDevices()
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;MediaStreamTrackSourcesRequestClient&gt; requestClient = prpClient;
-    TrackSourceInfoVector sources;
</del><ins>+    Vector&lt;CaptureDevice&gt; sources;
</ins><span class="cx"> 
</span><del>-    sources.append(MockRealtimeMediaSource::trackSourceWithUID(MockRealtimeMediaSource::mockAudioSourcePersistentID(), nullptr));
-    sources.append(MockRealtimeMediaSource::trackSourceWithUID(MockRealtimeMediaSource::mockVideoSourcePersistentID(), nullptr));
</del><ins>+    sources.append(MockRealtimeMediaSource::audioDeviceInfo());
+    sources.append(MockRealtimeMediaSource::videoDeviceInfo());
</ins><span class="cx"> 
</span><del>-    callOnMainThread([this, requestClient = WTFMove(requestClient), sources = WTFMove(sources)] {
-        requestClient-&gt;didCompleteTrackSourceInfoRequest(sources);
-    });
-
-    return true;
</del><ins>+    return sources;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-RefPtr&lt;TrackSourceInfo&gt; MockRealtimeMediaSourceCenter::sourceWithUID(const String&amp; UID, RealtimeMediaSource::Type, MediaConstraints* constraints)
-{
-    return MockRealtimeMediaSource::trackSourceWithUID(UID, constraints);
-}
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(MEDIA_STREAM)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockMockRealtimeMediaSourceCenterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -43,9 +43,8 @@
</span><span class="cx"> 
</span><span class="cx">     void validateRequestConstraints(MediaStreamCreationClient*, MediaConstraints&amp; audioConstraints, MediaConstraints&amp; videoConstraints) override;
</span><span class="cx">     void createMediaStream(PassRefPtr&lt;MediaStreamCreationClient&gt;, MediaConstraints&amp; audioConstraints, MediaConstraints&amp; videoConstraints) override;
</span><del>-    bool getMediaStreamTrackSources(PassRefPtr&lt;MediaStreamTrackSourcesRequestClient&gt;) override;
</del><ins>+    Vector&lt;CaptureDevice&gt; getMediaStreamDevices() override;
</ins><span class="cx">     void createMediaStream(MediaStreamCreationClient*, const String&amp; audioDeviceID, const String&amp; videoDeviceID) override;
</span><del>-    RefPtr&lt;TrackSourceInfo&gt; sourceWithUID(const String&amp;, RealtimeMediaSource::Type, MediaConstraints*) override;
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebKit2/ChangeLog        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2016-09-14  Eric Carlson  &lt;eric.carlson@apple.com&gt;
+
+        [MediaStream] Minor cleanup
+        https://bugs.webkit.org/show_bug.cgi?id=161976
+
+        Reviewed by Youenn Fablet and Dean Jackson.
+
+        * UIProcess/UserMediaPermissionRequestProxy.cpp:
+
</ins><span class="cx"> 2016-09-14  Beth Dakin  &lt;bdakin@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Add needsHiddenContentEditableQuirk and send it to the UIProcess
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessUserMediaPermissionRequestProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp (205928 => 205929)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp        2016-09-14 20:56:20 UTC (rev 205928)
+++ trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp        2016-09-14 20:57:41 UTC (rev 205929)
</span><span class="lines">@@ -20,7 +20,6 @@
</span><span class="cx"> #include &quot;UserMediaPermissionRequestProxy.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;UserMediaPermissionRequestManagerProxy.h&quot;
</span><del>-#include &lt;WebCore/MediaStreamTrackSourcesRequestClient.h&gt;
</del><span class="cx"> #include &lt;WebCore/RealtimeMediaSourceCenter.h&gt;
</span><span class="cx"> #include &lt;wtf/text/StringHash.h&gt;
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>