Title: [205929] trunk/Source
Revision
205929
Author
[email protected]
Date
2016-09-14 13:57:41 -0700 (Wed, 14 Sep 2016)

Log Message

[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:

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/Source/WebCore/CMakeLists.txt (205928 => 205929)


--- 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)
@@ -222,7 +222,6 @@
     Modules/mediastream/MediaStreamEvent.idl
     Modules/mediastream/MediaStreamTrack.idl
     Modules/mediastream/MediaStreamTrackEvent.idl
-    Modules/mediastream/MediaStreamTrackSourcesCallback.idl
     Modules/mediastream/MediaTrackConstraint.idl
     Modules/mediastream/MediaTrackConstraintSet.idl
     Modules/mediastream/MediaTrackConstraints.idl
@@ -247,7 +246,6 @@
     Modules/mediastream/RTCStatsReport.idl
     Modules/mediastream/RTCStatsResponse.idl
     Modules/mediastream/RTCTrackEvent.idl
-    Modules/mediastream/SourceInfo.idl
 
     Modules/navigatorcontentutils/NavigatorContentUtils.idl
 
@@ -900,7 +898,6 @@
     Modules/mediastream/RTCStatsResponse.cpp
     Modules/mediastream/RTCTrackEvent.cpp
     Modules/mediastream/SDPProcessor.cpp
-    Modules/mediastream/SourceInfo.cpp
     Modules/mediastream/UserMediaController.cpp
     Modules/mediastream/UserMediaPermissionCheck.cpp
     Modules/mediastream/UserMediaRequest.cpp

Modified: trunk/Source/WebCore/ChangeLog (205928 => 205929)


--- 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)
@@ -1,3 +1,69 @@
+2016-09-14  Eric Carlson  <[email protected]>
+
+        [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:
+
 2016-09-14  Antti Koivisto  <[email protected]>
 
         Move more code out from RenderObject

Modified: trunk/Source/WebCore/DerivedSources.make (205928 => 205929)


--- 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)
@@ -139,7 +139,6 @@
     $(WebCore)/Modules/mediastream/MediaStreamEvent.idl \
     $(WebCore)/Modules/mediastream/MediaStreamTrack.idl \
     $(WebCore)/Modules/mediastream/MediaStreamTrackEvent.idl \
-    $(WebCore)/Modules/mediastream/MediaStreamTrackSourcesCallback.idl \
     $(WebCore)/Modules/mediastream/MediaTrackConstraint.idl \
     $(WebCore)/Modules/mediastream/MediaTrackConstraintSet.idl \
     $(WebCore)/Modules/mediastream/MediaTrackConstraints.idl \
@@ -163,7 +162,6 @@
     $(WebCore)/Modules/mediastream/RTCStatsReport.idl \
     $(WebCore)/Modules/mediastream/RTCStatsResponse.idl \
     $(WebCore)/Modules/mediastream/RTCTrackEvent.idl \
-    $(WebCore)/Modules/mediastream/SourceInfo.idl \
     $(WebCore)/Modules/notifications/DOMWindowNotifications.idl \
     $(WebCore)/Modules/notifications/Notification.idl \
     $(WebCore)/Modules/notifications/NotificationCenter.idl \

Deleted: trunk/Source/WebCore/Modules/mediastream/CaptureDeviceInfo.h (205928 => 205929)


--- 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)
@@ -1,59 +0,0 @@
-/*
- * 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 <RealtimeMediaSource.h>
-#include <wtf/text/WTFString.h>
-
-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& /* videoSize */) const { return false; }
-    virtual String bestSessionPresetForVideoDimensions(int /* width */, int /* height */) const { return emptyString(); }
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
-
-#endif /* CaptureDeviceInfo_h */

Deleted: trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.cpp (205928 => 205929)


--- 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)
@@ -1,210 +0,0 @@
-/*
- * 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 "config.h"
-#import "CaptureDeviceManager.h"
-
-#if ENABLE(MEDIA_STREAM)
-
-#import "Logging.h"
-#import "MediaConstraints.h"
-#import "RealtimeMediaSource.h"
-#import "RealtimeMediaSourceCenter.h"
-#import "RealtimeMediaSourceSettings.h"
-#import "UUID.h"
-#import <wtf/MainThread.h>
-#import <wtf/NeverDestroyed.h>
-#import <wtf/text/StringHash.h>
-
-using namespace WebCore;
-
-CaptureDeviceManager::~CaptureDeviceManager()
-{
-}
-
-Vector<RefPtr<TrackSourceInfo>> CaptureDeviceManager::getSourcesInfo(const String& requestOrigin)
-{
-    UNUSED_PARAM(requestOrigin);
-    Vector<RefPtr<TrackSourceInfo>> 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, "CaptureDeviceManager::getSourcesInfo(%p), found %zu active devices", this, sourcesInfo.size());
-    return sourcesInfo;
-}
-
-bool CaptureDeviceManager::captureDeviceFromDeviceID(const String& captureDeviceID, CaptureDeviceInfo& foundDevice)
-{
-    for (auto& device : captureDeviceList()) {
-        if (device.m_persistentDeviceID == captureDeviceID) {
-            foundDevice = device;
-            return true;
-        }
-    }
-
-    return false;
-}
-
-bool CaptureDeviceManager::verifyConstraintsForMediaType(RealtimeMediaSource::Type type, const MediaConstraints& constraints, const CaptureSessionInfo* session, String& invalidConstraint)
-{
-    auto& mandatoryConstraints = constraints.mandatoryConstraints();
-    for (auto& nameConstraintPair : mandatoryConstraints) {
-        if (sessionSupportsConstraint(session, type, *nameConstraintPair.value))
-            continue;
-
-        invalidConstraint = nameConstraintPair.key;
-        return false;
-    }
-
-    return true;
-}
-
-Vector<RefPtr<RealtimeMediaSource>> CaptureDeviceManager::bestSourcesForTypeAndConstraints(RealtimeMediaSource::Type type, MediaConstraints& constraints)
-{
-    Vector<RefPtr<RealtimeMediaSource>> bestSourcesList;
-
-    struct {
-        bool operator()(RefPtr<RealtimeMediaSource> a, RefPtr<RealtimeMediaSource> b)
-        {
-            return a->fitnessScore() < b->fitnessScore();
-        }
-    } sortBasedOnFitnessScore;
-
-    for (auto& captureDevice : captureDeviceList()) {
-        if (!captureDevice.m_enabled || captureDevice.m_sourceId.isEmpty() || captureDevice.m_sourceType == RealtimeMediaSource::None)
-            continue;
-
-        if (RefPtr<RealtimeMediaSource> captureSource = sourceWithUID(captureDevice.m_persistentDeviceID, type, &constraints))
-            bestSourcesList.append(captureSource.leakRef());
-    }
-    std::sort(bestSourcesList.begin(), bestSourcesList.end(), sortBasedOnFitnessScore);
-    return bestSourcesList;
-}
-
-RefPtr<RealtimeMediaSource> CaptureDeviceManager::sourceWithUID(const String& deviceUID, RealtimeMediaSource::Type type, MediaConstraints* constraints)
-{
-    for (auto& 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& device : captureDeviceList()) {
-        if (device.m_sourceType == RealtimeMediaSource::Video && device.m_position == facingMode)
-            return &device;
-    }
-    return nullptr;
-}
-
-static inline RealtimeMediaSourceSettings::VideoFacingMode facingModeFromString(const String& facingModeString)
-{
-    static NeverDestroyed<AtomicString> userFacingModeString("user", AtomicString::ConstructFromLiteral);
-    static NeverDestroyed<AtomicString> environmentFacingModeString("environment", AtomicString::ConstructFromLiteral);
-    static NeverDestroyed<AtomicString> leftFacingModeString("left", AtomicString::ConstructFromLiteral);
-    static NeverDestroyed<AtomicString> rightFacingModeString("right", 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& constraint)
-{
-    const RealtimeMediaSourceSupportedConstraints& 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<String> exactFacingMode;
-        if (!constraint.getExact(exactFacingMode))
-            return false;
-
-        return bestDeviceForFacingMode(facingModeFromString(exactFacingMode[0]));
-    }
-    default:
-        return false;
-    }
-}
-
-bool CaptureDeviceManager::isSupportedFrameRate(const MediaConstraint& 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 &= min > 60;
-
-    int max = 60;
-    if (constraint.getMax(max))
-        isSupported &= max < min;
-
-    int exact;
-    if (constraint.getExact(exact))
-        isSupported &= (exact < min || exact > max);
-
-    return isSupported;
-}
-
-#endif // ENABLE(MEDIA_STREAM)

Deleted: trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.h (205928 => 205929)


--- 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)
@@ -1,64 +0,0 @@
-/*
- * 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 "CaptureDeviceInfo.h"
-#include "MediaStreamTrackSourcesRequestClient.h"
-#include "RealtimeMediaSource.h"
-#include <wtf/text/WTFString.h>
-
-namespace WebCore {
-
-class CaptureDeviceManager {
-public:
-    virtual Vector<CaptureDeviceInfo>& captureDeviceList() = 0;
-    virtual void refreshCaptureDeviceList() { }
-    virtual TrackSourceInfoVector getSourcesInfo(const String&);
-    virtual Vector<RefPtr<RealtimeMediaSource>> bestSourcesForTypeAndConstraints(RealtimeMediaSource::Type, MediaConstraints&);
-    virtual RefPtr<RealtimeMediaSource> sourceWithUID(const String&, RealtimeMediaSource::Type, MediaConstraints*);
-
-    virtual bool verifyConstraintsForMediaType(RealtimeMediaSource::Type, const MediaConstraints&, const CaptureSessionInfo*, String&);
-
-protected:
-    virtual ~CaptureDeviceManager();
-    virtual RealtimeMediaSource* createMediaSourceForCaptureDeviceWithConstraints(const CaptureDeviceInfo&, MediaConstraints*) = 0;
-
-    virtual CaptureSessionInfo defaultCaptureSession() const { return CaptureSessionInfo(); }
-    virtual bool sessionSupportsConstraint(const CaptureSessionInfo*, RealtimeMediaSource::Type, const MediaConstraint&);
-    virtual bool isSupportedFrameRate(const MediaConstraint&) const;
-
-    bool captureDeviceFromDeviceID(const String& captureDeviceID, CaptureDeviceInfo& source);
-    CaptureDeviceInfo* bestDeviceForFacingMode(RealtimeMediaSourceSettings::VideoFacingMode);
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
-
-#endif /* CaptureDeviceManager_h */

Modified: trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp (205928 => 205929)


--- 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)
@@ -29,6 +29,7 @@
 
 #if ENABLE(MEDIA_STREAM)
 
+#include "CaptureDevice.h"
 #include "Document.h"
 #include "ExceptionCode.h"
 #include "Frame.h"
@@ -83,20 +84,6 @@
     m_permissionCheck->start();
 }
 
-void MediaDevicesRequest::didCompletePermissionCheck(const String& salt, bool canAccess)
-{
-    RefPtr<UserMediaPermissionCheck> permissionCheckProtector = m_permissionCheck;
-    m_permissionCheck->setClient(nullptr);
-    m_permissionCheck = nullptr;
-
-    m_idHashSalt = salt;
-    m_havePersistentPermission = canAccess;
-
-    callOnMainThread([this, permissionCheckProtector = WTFMove(permissionCheckProtector)] {
-        RealtimeMediaSourceCenter::singleton().getMediaStreamTrackSources(this);
-    });
-}
-
 static void hashString(SHA1& sha1, const String& string)
 {
     if (string.isEmpty())
@@ -129,8 +116,14 @@
     return SHA1::hexDigest(digest).data();
 }
 
-void MediaDevicesRequest::didCompleteTrackSourceInfoRequest(const TrackSourceInfoVector& captureDevices)
+void MediaDevicesRequest::didCompletePermissionCheck(const String& salt, bool canAccess)
 {
+    m_permissionCheck->setClient(nullptr);
+    m_permissionCheck = nullptr;
+
+    m_idHashSalt = salt;
+    m_havePersistentPermission = canAccess;
+
     if (!scriptExecutionContext()) {
         m_protector = nullptr;
         return;
@@ -144,19 +137,18 @@
     }
 
     Vector<RefPtr<MediaDeviceInfo>> devices;
+    auto captureDevices = RealtimeMediaSourceCenter::singleton().getMediaStreamDevices();
     for (auto& deviceInfo : captureDevices) {
-        String label = emptyString();
+        auto label = emptyString();
         if (m_havePersistentPermission || document.hasHadActiveMediaStreamTrack())
-            label = deviceInfo->label();
+            label = deviceInfo.label();
 
-        String id = hashID(deviceInfo->persistentId());
+        auto id = hashID(deviceInfo.persistentId());
         if (id.isEmpty())
             continue;
 
-        String groupId = hashID(deviceInfo->groupId());
-
-        auto deviceType = deviceInfo->kind() == TrackSourceInfo::SourceKind::Audio ? MediaDeviceInfo::Kind::Audioinput : MediaDeviceInfo::Kind::Videoinput;
-
+        auto groupId = hashID(deviceInfo.groupId());
+        auto deviceType = deviceInfo.kind() == CaptureDevice::SourceKind::Audio ? MediaDeviceInfo::Kind::Audioinput : MediaDeviceInfo::Kind::Videoinput;
         devices.append(MediaDeviceInfo::create(scriptExecutionContext(), label, id, groupId, deviceType));
     }
 
@@ -166,17 +158,6 @@
     m_protector = nullptr;
 }
 
-const String& MediaDevicesRequest::requestOrigin() const
-{
-    if (scriptExecutionContext()) {
-        Document* document = downcast<Document>(scriptExecutionContext());
-        if (document)
-            return document->url();
-    }
-
-    return emptyString();
-}
-
 } // namespace WebCore
 
 #endif // ENABLE(MEDIA_STREAM)

Modified: trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.h (205928 => 205929)


--- 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)
@@ -32,7 +32,6 @@
 #include "ActiveDOMObject.h"
 #include "MediaDevices.h"
 #include "MediaStreamCreationClient.h"
-#include "MediaStreamTrackSourcesRequestClient.h"
 #include "UserMediaPermissionCheck.h"
 #include <wtf/RefCounted.h>
 #include <wtf/text/WTFString.h>
@@ -45,7 +44,7 @@
 
 typedef int ExceptionCode;
 
-class MediaDevicesRequest : public MediaStreamTrackSourcesRequestClient, public UserMediaPermissionCheckClient, public ContextDestructionObserver {
+class MediaDevicesRequest : public RefCounted<MediaDevicesRequest>, public UserMediaPermissionCheckClient, public ContextDestructionObserver {
 public:
     static RefPtr<MediaDevicesRequest> create(Document*, MediaDevices::EnumerateDevicesPromise&&, ExceptionCode&);
 
@@ -58,10 +57,6 @@
 private:
     MediaDevicesRequest(ScriptExecutionContext*, MediaDevices::EnumerateDevicesPromise&&);
 
-    // MediaStreamTrackSourcesRequestClient
-    const String& requestOrigin() const final;
-    void didCompleteTrackSourceInfoRequest(const TrackSourceInfoVector&) final;
-
     // ContextDestructionObserver
     void contextDestroyed() final;
 

Deleted: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesCallback.h (205928 => 205929)


--- 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)
@@ -1,46 +0,0 @@
-/*
- * 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 "SourceInfo.h"
-#include <wtf/RefCounted.h>
-
-namespace WebCore {
-
-class MediaStreamTrackSourcesCallback : public RefCounted<MediaStreamTrackSourcesCallback> {
-public:
-    virtual ~MediaStreamTrackSourcesCallback() { }
-    virtual bool handleEvent(Vector<RefPtr<SourceInfo>>) = 0;
-};
-
-} // namespace WebCore
-
-#endif
-
-#endif // MediaStreamTrackSourcesCallback_h

Deleted: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesCallback.idl (205928 => 205929)


--- 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)
@@ -1,32 +0,0 @@
-/*
- * 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<SourceInfo> sources);
-};
-

Deleted: trunk/Source/WebCore/Modules/mediastream/SourceInfo.cpp (205928 => 205929)


--- 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)
@@ -1,64 +0,0 @@
-/*
- * 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 "config.h"
-#include "SourceInfo.h"
-
-#if ENABLE(MEDIA_STREAM)
-
-#include <wtf/NeverDestroyed.h>
-
-namespace WebCore {
-
-Ref<SourceInfo> SourceInfo::create(Ref<TrackSourceInfo>&& trackSourceInfo)
-{
-    return adoptRef(*new SourceInfo(WTFMove(trackSourceInfo)));
-}
-
-SourceInfo::SourceInfo(Ref<TrackSourceInfo>&& trackSourceInfo)
-    : m_trackSourceInfo(WTFMove(trackSourceInfo))
-{
-}
-
-const AtomicString& SourceInfo::kind() const
-{
-    static NeverDestroyed<AtomicString> audioKind("audio", AtomicString::ConstructFromLiteral);
-    static NeverDestroyed<AtomicString> videoKind("video", AtomicString::ConstructFromLiteral);
-
-    switch (m_trackSourceInfo->kind()) {
-    case TrackSourceInfo::Audio:
-        return audioKind;
-    case TrackSourceInfo::Video:
-        return videoKind;
-    }
-
-    ASSERT_NOT_REACHED();
-    return emptyAtom;
-}
-
-} // namespace WebCore
-
-#endif

Deleted: trunk/Source/WebCore/Modules/mediastream/SourceInfo.h (205928 => 205929)


--- 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)
@@ -1,59 +0,0 @@
-/*
- * 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 "MediaStreamTrackSourcesRequestClient.h"
-#include "ScriptWrappable.h"
-#include <wtf/Forward.h>
-#include <wtf/RefCounted.h>
-#include <wtf/Vector.h>
-#include <wtf/text/WTFString.h>
-
-namespace WebCore {
-
-class SourceInfo : public RefCounted<SourceInfo>, public ScriptWrappable {
-public:
-    static Ref<SourceInfo> create(Ref<TrackSourceInfo>&&);
-
-    const AtomicString& sourceId() const { return m_trackSourceInfo->id(); }
-    const AtomicString& label() const { return m_trackSourceInfo->label(); }
-    const AtomicString& kind() const;
-
-private:
-    SourceInfo(Ref<TrackSourceInfo>&&);
-
-    Ref<TrackSourceInfo> m_trackSourceInfo;
-};
-
-} // namespace WebCore
-
-#endif // SourceInfo_h
-
-#endif

Deleted: trunk/Source/WebCore/Modules/mediastream/SourceInfo.idl (205928 => 205929)


--- 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)
@@ -1,34 +0,0 @@
-/*
- * 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;
-};

Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (205928 => 205929)


--- 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)
@@ -174,14 +174,6 @@
 		074E82BB18A69F0E007EF54C /* PlatformTimeRanges.h in Headers */ = {isa = PBXBuildFile; fileRef = 074E82B918A69F0E007EF54C /* PlatformTimeRanges.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		0753860214489E9800B78452 /* CachedTextTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0753860014489E9800B78452 /* CachedTextTrack.cpp */; };
 		0753860314489E9800B78452 /* CachedTextTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 0753860114489E9800B78452 /* CachedTextTrack.h */; };
-		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, ); }; };
 		07638A991884487200E15A1B /* MediaSessionManagerIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 07638A971884487200E15A1B /* MediaSessionManagerIOS.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		07638A9A1884487200E15A1B /* MediaSessionManagerIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07638A981884487200E15A1B /* MediaSessionManagerIOS.mm */; };
 		076970861463AD8700F502CF /* TextTrackList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076970841463AD8700F502CF /* TextTrackList.cpp */; };
@@ -307,6 +299,9 @@
 		07B5A2DB1464320A00A81ECE /* JSTextTrackList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07B5A2D91464320A00A81ECE /* JSTextTrackList.cpp */; };
 		07B5A2DC1464320A00A81ECE /* JSTextTrackList.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B5A2DA1464320A00A81ECE /* JSTextTrackList.h */; };
 		07B5A30D14687D7100A81ECE /* JSTextTrackListCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07B5A30C14687D7100A81ECE /* JSTextTrackListCustom.cpp */; };
+		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 */; };
 		07BDD6EC1469B4C2009C9F85 /* JSTrackEventCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07B5A30A14687B8400A81ECE /* JSTrackEventCustom.cpp */; };
 		07C1C0E21BFB600100BD2256 /* MediaTrackSupportedConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C1C0E01BFB600100BD2256 /* MediaTrackSupportedConstraints.h */; };
 		07C1C0E51BFB60ED00BD2256 /* RealtimeMediaSourceSupportedConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C1C0E41BFB60ED00BD2256 /* RealtimeMediaSourceSupportedConstraints.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -1246,9 +1241,6 @@
 		2E3BBF081162DA1100B9409A /* UUID.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E3BBF061162DA1100B9409A /* UUID.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		2E3BC0CA117D3E0800B9409A /* JSFileError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E3BC0C8117D3E0800B9409A /* JSFileError.cpp */; };
 		2E3BC0CB117D3E0800B9409A /* JSFileError.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E3BC0C9117D3E0800B9409A /* JSFileError.h */; };
-		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 */; };
 		2E4346450F546A8200B0F1BA /* Worker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E4346330F546A8200B0F1BA /* Worker.cpp */; };
 		2E4346460F546A8200B0F1BA /* Worker.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E4346340F546A8200B0F1BA /* Worker.h */; };
 		2E4346480F546A8200B0F1BA /* WorkerGlobalScope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2E4346360F546A8200B0F1BA /* WorkerGlobalScope.cpp */; };
@@ -7016,16 +7008,6 @@
 		074E82B918A69F0E007EF54C /* PlatformTimeRanges.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformTimeRanges.h; sourceTree = "<group>"; };
 		0753860014489E9800B78452 /* CachedTextTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CachedTextTrack.cpp; sourceTree = "<group>"; };
 		0753860114489E9800B78452 /* CachedTextTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedTextTrack.h; sourceTree = "<group>"; };
-		076306CC17E1478D005A7C4E /* MediaStreamTrackSourcesCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamTrackSourcesCallback.h; sourceTree = "<group>"; };
-		076306CD17E1478D005A7C4E /* MediaStreamTrackSourcesCallback.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaStreamTrackSourcesCallback.idl; sourceTree = "<group>"; };
-		076306D417E149CF005A7C4E /* SourceInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SourceInfo.cpp; sourceTree = "<group>"; };
-		076306D517E149CF005A7C4E /* SourceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SourceInfo.h; sourceTree = "<group>"; };
-		076306D617E149CF005A7C4E /* SourceInfo.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SourceInfo.idl; sourceTree = "<group>"; };
-		076306DA17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaStreamTrackSourcesCallback.cpp; sourceTree = "<group>"; };
-		076306DB17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMediaStreamTrackSourcesCallback.h; sourceTree = "<group>"; };
-		076306DE17E16089005A7C4E /* JSSourceInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSourceInfo.cpp; sourceTree = "<group>"; };
-		076306DF17E16089005A7C4E /* JSSourceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSSourceInfo.h; sourceTree = "<group>"; };
-		076306E217E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamTrackSourcesRequestClient.h; sourceTree = "<group>"; };
 		07638A971884487200E15A1B /* MediaSessionManagerIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaSessionManagerIOS.h; sourceTree = "<group>"; };
 		07638A981884487200E15A1B /* MediaSessionManagerIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MediaSessionManagerIOS.mm; sourceTree = "<group>"; };
 		076970841463AD8700F502CF /* TextTrackList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextTrackList.cpp; sourceTree = "<group>"; };
@@ -7107,6 +7089,9 @@
 		07B5A3061468537100A81ECE /* TextTrackList.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TextTrackList.idl; sourceTree = "<group>"; };
 		07B5A30A14687B8400A81ECE /* JSTrackEventCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTrackEventCustom.cpp; sourceTree = "<group>"; };
 		07B5A30C14687D7100A81ECE /* JSTextTrackListCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTextTrackListCustom.cpp; sourceTree = "<group>"; };
+		07B7116A1D899E63009F0FFB /* CaptureDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CaptureDevice.h; sourceTree = "<group>"; };
+		07B7116B1D899E63009F0FFB /* CaptureDeviceManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CaptureDeviceManager.cpp; sourceTree = "<group>"; };
+		07B7116C1D899E63009F0FFB /* CaptureDeviceManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CaptureDeviceManager.h; sourceTree = "<group>"; };
 		07C1C0E01BFB600100BD2256 /* MediaTrackSupportedConstraints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaTrackSupportedConstraints.h; sourceTree = "<group>"; };
 		07C1C0E11BFB600100BD2256 /* MediaTrackSupportedConstraints.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaTrackSupportedConstraints.idl; sourceTree = "<group>"; };
 		07C1C0E41BFB60ED00BD2256 /* RealtimeMediaSourceSupportedConstraints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RealtimeMediaSourceSupportedConstraints.h; sourceTree = "<group>"; };
@@ -8178,9 +8163,6 @@
 		2E3BBF061162DA1100B9409A /* UUID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UUID.h; sourceTree = "<group>"; };
 		2E3BC0C8117D3E0800B9409A /* JSFileError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSFileError.cpp; sourceTree = "<group>"; };
 		2E3BC0C9117D3E0800B9409A /* JSFileError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSFileError.h; sourceTree = "<group>"; };
-		2E3C8C611BFBA8DC00309566 /* CaptureDeviceManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CaptureDeviceManager.h; sourceTree = "<group>"; };
-		2E3C8C631BFBB75D00309566 /* CaptureDeviceManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CaptureDeviceManager.cpp; sourceTree = "<group>"; };
-		2E3C8C661BFBF8E100309566 /* CaptureDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CaptureDeviceInfo.h; sourceTree = "<group>"; };
 		2E4346330F546A8200B0F1BA /* Worker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Worker.cpp; sourceTree = "<group>"; };
 		2E4346340F546A8200B0F1BA /* Worker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Worker.h; sourceTree = "<group>"; };
 		2E4346350F546A8200B0F1BA /* Worker.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Worker.idl; sourceTree = "<group>"; };
@@ -14478,9 +14460,6 @@
 		07221B4617CEC32700848E51 /* mediastream */ = {
 			isa = PBXGroup;
 			children = (
-				2E3C8C661BFBF8E100309566 /* CaptureDeviceInfo.h */,
-				2E3C8C631BFBB75D00309566 /* CaptureDeviceManager.cpp */,
-				2E3C8C611BFBA8DC00309566 /* CaptureDeviceManager.h */,
 				073794ED19EE364200E5A045 /* DOMURLMediaStream.cpp */,
 				15FCC9FD1B4DF85600E72326 /* DOMURLMediaStream.h */,
 				073794EE19EE364200E5A045 /* DOMURLMediaStream.idl */,
@@ -14518,8 +14497,6 @@
 				07221B5717CEC32700848E51 /* MediaStreamTrackEvent.cpp */,
 				07221B5817CEC32700848E51 /* MediaStreamTrackEvent.h */,
 				07221B5917CEC32700848E51 /* MediaStreamTrackEvent.idl */,
-				076306CC17E1478D005A7C4E /* MediaStreamTrackSourcesCallback.h */,
-				076306CD17E1478D005A7C4E /* MediaStreamTrackSourcesCallback.idl */,
 				0705853917FE0770005F2BCB /* MediaTrackConstraint.cpp */,
 				0705851D17FDC140005F2BCB /* MediaTrackConstraint.h */,
 				0705851E17FDC140005F2BCB /* MediaTrackConstraint.idl */,
@@ -14596,9 +14573,6 @@
 				5E2C43661BCEE3720001E2BC /* RTCTrackEvent.idl */,
 				5EA3D6E11C859DAA00300BBB /* SDPProcessor.cpp */,
 				5EA3D6E21C859DAA00300BBB /* SDPProcessor.h */,
-				076306D417E149CF005A7C4E /* SourceInfo.cpp */,
-				076306D517E149CF005A7C4E /* SourceInfo.h */,
-				076306D617E149CF005A7C4E /* SourceInfo.idl */,
 				07221B8D17CEC32700848E51 /* UserMediaClient.h */,
 				07221B8E17CEC32700848E51 /* UserMediaController.cpp */,
 				07221B8F17CEC32700848E51 /* UserMediaController.h */,
@@ -14615,6 +14589,9 @@
 			children = (
 				0729B14D17CFCCA0004F1D60 /* mac */,
 				07D6A4F61BF2307D00174146 /* AudioTrackPrivateMediaStream.h */,
+				07B7116A1D899E63009F0FFB /* CaptureDevice.h */,
+				07B7116B1D899E63009F0FFB /* CaptureDeviceManager.cpp */,
+				07B7116C1D899E63009F0FFB /* CaptureDeviceManager.h */,
 				5EBB89301C7777E100C65D41 /* IceCandidate.h */,
 				1BE5BFC11D515715001666D9 /* MediaConstraints.cpp */,
 				07221B9917CF0AD400848E51 /* MediaConstraints.h */,
@@ -14630,7 +14607,6 @@
 				07221B9D17CF0AD400848E51 /* MediaStreamPrivate.h */,
 				07FFDE66181AED420072D409 /* MediaStreamTrackPrivate.cpp */,
 				07FFDE67181AED420072D409 /* MediaStreamTrackPrivate.h */,
-				076306E217E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h */,
 				5EBB89381C77BDA400C65D41 /* PeerMediaDescription.h */,
 				4A4F656B1AA997F100E38CDD /* RealtimeMediaSource.cpp */,
 				4A4F656C1AA997F100E38CDD /* RealtimeMediaSource.h */,
@@ -14748,8 +14724,6 @@
 				07277E4717D018CC0015534D /* JSMediaStreamTrack.h */,
 				07277E4817D018CC0015534D /* JSMediaStreamTrackEvent.cpp */,
 				07277E4917D018CC0015534D /* JSMediaStreamTrackEvent.h */,
-				076306DA17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.cpp */,
-				076306DB17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.h */,
 				0705852B17FDE6D9005F2BCB /* JSMediaTrackConstraint.cpp */,
 				0705852C17FDE6D9005F2BCB /* JSMediaTrackConstraint.h */,
 				0705852D17FDE6D9005F2BCB /* JSMediaTrackConstraints.cpp */,
@@ -14794,8 +14768,6 @@
 				07969DAA17D14151007FF842 /* JSRTCStatsResponse.h */,
 				5E2C43691BCF05C80001E2BC /* JSRTCTrackEvent.cpp */,
 				5E2C436A1BCF05C80001E2BC /* JSRTCTrackEvent.h */,
-				076306DE17E16089005A7C4E /* JSSourceInfo.cpp */,
-				076306DF17E16089005A7C4E /* JSSourceInfo.h */,
 			);
 			name = MediaStream;
 			sourceTree = "<group>";
@@ -23993,8 +23965,6 @@
 				49484FCE102CF23C00187DD3 /* CanvasStyle.h in Headers */,
 				079D0868162F20E800DB8658 /* CaptionUserPreferences.h in Headers */,
 				079D086B162F21F900DB8658 /* CaptionUserPreferencesMediaAF.h in Headers */,
-				2E3C8C681BFBF8E100309566 /* CaptureDeviceInfo.h in Headers */,
-				2E3C8C621BFBA97500309566 /* CaptureDeviceManager.h in Headers */,
 				99CC0B4F18BE9849006CEBCC /* CapturingInputCursor.h in Headers */,
 				CDC734151977896D0046BFC5 /* CARingBuffer.h in Headers */,
 				6550B69E099DF0270090D781 /* CDATASection.h in Headers */,
@@ -24234,6 +24204,7 @@
 				A8EA80070A19516E00A8EF5F /* CSSStyleSheet.h in Headers */,
 				FC54D05716A7673100575E4D /* CSSSupportsRule.h in Headers */,
 				BC80C9880CD294EE00A0B7B3 /* CSSTimingFunctionValue.h in Headers */,
+				07B7116D1D899E63009F0FFB /* CaptureDevice.h in Headers */,
 				946D373A1D6CDFC00077084F /* CSSTokenizer.h in Headers */,
 				946D373C1D6CDFC00077084F /* CSSTokenizerInputStream.h in Headers */,
 				9AB1F38018E2489A00534743 /* CSSToLengthConversionData.h in Headers */,
@@ -25197,7 +25168,6 @@
 				07277E5117D018CC0015534D /* JSMediaStreamEvent.h in Headers */,
 				07277E5317D018CC0015534D /* JSMediaStreamTrack.h in Headers */,
 				07277E5517D018CC0015534D /* JSMediaStreamTrackEvent.h in Headers */,
-				076306DD17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.h in Headers */,
 				0705853217FDE6D9005F2BCB /* JSMediaTrackConstraint.h in Headers */,
 				0705853417FDE6D9005F2BCB /* JSMediaTrackConstraints.h in Headers */,
 				0705853617FDE6D9005F2BCB /* JSMediaTrackConstraintSet.h in Headers */,
@@ -25285,7 +25255,6 @@
 				9BDA64D81B975CF2009C4387 /* JSShadowRoot.h in Headers */,
 				CD9DE17B17AAC75B00EA386D /* JSSourceBuffer.h in Headers */,
 				CD9DE17D17AAC75B00EA386D /* JSSourceBufferList.h in Headers */,
-				076306E117E16089005A7C4E /* JSSourceInfo.h in Headers */,
 				AA7FEEAD16A4E74B004C0C33 /* JSSpeechSynthesis.h in Headers */,
 				AA2A5AD216A4860A00976A25 /* JSSpeechSynthesisEvent.h in Headers */,
 				AA7FEEA716A4E6F3004C0C33 /* JSSpeechSynthesisUtterance.h in Headers */,
@@ -25715,8 +25684,6 @@
 				078E091817D14D1C00420AA1 /* MediaStreamTrack.h in Headers */,
 				078E091917D14D1C00420AA1 /* MediaStreamTrackEvent.h in Headers */,
 				07FFDE69181AED420072D409 /* MediaStreamTrackPrivate.h in Headers */,
-				076306D017E1478D005A7C4E /* MediaStreamTrackSourcesCallback.h in Headers */,
-				076306E317E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h in Headers */,
 				CD641EC01819B36000EE4C41 /* MediaTimeAVFoundation.h in Headers */,
 				CD60C0C7193E87C7003C656B /* MediaTimeQTKit.h in Headers */,
 				0705852117FDC140005F2BCB /* MediaTrackConstraint.h in Headers */,
@@ -26222,6 +26189,7 @@
 				514C76790CE923A1007EF3CD /* ResourceHandle.h in Headers */,
 				26FAE4CD1852E3A5004C8C46 /* ResourceHandleCFURLConnectionDelegate.h in Headers */,
 				26C15CF71857E15E00F15C03 /* ResourceHandleCFURLConnectionDelegateWithOperationQueue.h in Headers */,
+				07B7116F1D899E63009F0FFB /* CaptureDeviceManager.h in Headers */,
 				514C767A0CE923A1007EF3CD /* ResourceHandleClient.h in Headers */,
 				514C767B0CE923A1007EF3CD /* ResourceHandleInternal.h in Headers */,
 				51E4143416A6596300C633C7 /* ResourceHandleTypes.h in Headers */,
@@ -26439,7 +26407,6 @@
 				CDC8B5AB18047FF10016E685 /* SourceBufferPrivateAVFObjC.h in Headers */,
 				CDC8B5AD1804AE5D0016E685 /* SourceBufferPrivateClient.h in Headers */,
 				84A81F420FC7E02700955300 /* SourceGraphic.h in Headers */,
-				076306D817E149D0005A7C4E /* SourceInfo.h in Headers */,
 				D01A27AE10C9BFD800026A42 /* SpaceSplitString.h in Headers */,
 				626CDE0F1140424C001E5A68 /* SpatialNavigation.h in Headers */,
 				AA2A5AD416A4861100975A25 /* SpeechSynthesis.h in Headers */,
@@ -27733,7 +27700,6 @@
 				49484FCD102CF23C00187DD3 /* CanvasStyle.cpp in Sources */,
 				072CA86116CB4DC3008AE131 /* CaptionUserPreferences.cpp in Sources */,
 				079D086C162F21F900DB8658 /* CaptionUserPreferencesMediaAF.cpp in Sources */,
-				2E3C8C641BFBB75D00309566 /* CaptureDeviceManager.cpp in Sources */,
 				99CC0B4E18BE9849006CEBCC /* CapturingInputCursor.cpp in Sources */,
 				CDC734141977896C0046BFC5 /* CARingBuffer.cpp in Sources */,
 				6550B69D099DF0270090D781 /* CDATASection.cpp in Sources */,
@@ -27885,6 +27851,7 @@
 				FBB0C5B717BBD626003D3677 /* CSSFilterImageValue.cpp in Sources */,
 				BC64B4D50CB4298A005F2B62 /* CSSFontFace.cpp in Sources */,
 				409EBDB216B7EE7400CBA3FC /* CSSFontFaceLoadEvent.cpp in Sources */,
+				07B7116E1D899E63009F0FFB /* CaptureDeviceManager.cpp in Sources */,
 				A80E6CE70A1989CA007FB8C5 /* CSSFontFaceRule.cpp in Sources */,
 				C26017A31C72DC9900F74A16 /* CSSFontFaceSet.cpp in Sources */,
 				BC64B4D70CB4298A005F2B62 /* CSSFontFaceSource.cpp in Sources */,
@@ -28904,7 +28871,6 @@
 				07277E5217D018CC0015534D /* JSMediaStreamTrack.cpp in Sources */,
 				07C59B6E17F794F6000FBCBB /* JSMediaStreamTrackCustom.cpp in Sources */,
 				07277E5417D018CC0015534D /* JSMediaStreamTrackEvent.cpp in Sources */,
-				076306DC17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.cpp in Sources */,
 				0705853117FDE6D9005F2BCB /* JSMediaTrackConstraint.cpp in Sources */,
 				0705853317FDE6D9005F2BCB /* JSMediaTrackConstraints.cpp in Sources */,
 				0705853517FDE6D9005F2BCB /* JSMediaTrackConstraintSet.cpp in Sources */,
@@ -29003,7 +28969,6 @@
 				9BDA64D71B975CE5009C4387 /* JSShadowRoot.cpp in Sources */,
 				CD9DE17A17AAC75B00EA386D /* JSSourceBuffer.cpp in Sources */,
 				CD9DE17C17AAC75B00EA386D /* JSSourceBufferList.cpp in Sources */,
-				076306E017E16089005A7C4E /* JSSourceInfo.cpp in Sources */,
 				AA7FEEA416A4E6F3004C0C33 /* JSSpeechSynthesis.cpp in Sources */,
 				AA2A5AD316A4860D00976A25 /* JSSpeechSynthesisEvent.cpp in Sources */,
 				AA7FEEA616A4E6F3004C0C33 /* JSSpeechSynthesisUtterance.cpp in Sources */,
@@ -30009,7 +29974,6 @@
 				CD3A496417A9D01B00274E42 /* SourceBufferList.cpp in Sources */,
 				CDC8B5AA18047FF10016E685 /* SourceBufferPrivateAVFObjC.mm in Sources */,
 				84A81F410FC7E02700955300 /* SourceGraphic.cpp in Sources */,
-				076306D717E149CF005A7C4E /* SourceInfo.cpp in Sources */,
 				D01A27AD10C9BFD800026A42 /* SpaceSplitString.cpp in Sources */,
 				626CDE0E1140424C001E5A68 /* SpatialNavigation.cpp in Sources */,
 				AA2A5AD516A4861400975A25 /* SpeechSynthesis.cpp in Sources */,

Copied: trunk/Source/WebCore/platform/mediastream/CaptureDevice.h (from rev 205914, trunk/Source/WebCore/Modules/mediastream/CaptureDeviceInfo.h) (0 => 205929)


--- 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)
@@ -0,0 +1,61 @@
+/*
+ * 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 <RealtimeMediaSource.h>
+#include <wtf/text/WTFString.h>
+
+namespace WebCore {
+
+class CaptureDevice {
+public:
+    enum class SourceKind { Audio, Video };
+
+    CaptureDevice(const String& persistentId, SourceKind kind, const String& label, const String& groupId)
+        : m_persistentId(persistentId)
+        , m_kind(kind)
+        , m_label(label)
+        , m_groupId(groupId)
+    {
+    }
+
+    const String& persistentId() const { return m_persistentId; }
+    const String& label() const { return m_label; }
+    const String& 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)

Copied: trunk/Source/WebCore/platform/mediastream/CaptureDeviceManager.cpp (from rev 205914, trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.cpp) (0 => 205929)


--- 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)
@@ -0,0 +1,209 @@
+/*
+ * 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 "config.h"
+#import "CaptureDeviceManager.h"
+
+#if ENABLE(MEDIA_STREAM)
+
+#import "Logging.h"
+#import "MediaConstraints.h"
+#import "RealtimeMediaSource.h"
+#import "RealtimeMediaSourceCenter.h"
+#import "RealtimeMediaSourceSettings.h"
+#import "UUID.h"
+#import <wtf/MainThread.h>
+#import <wtf/NeverDestroyed.h>
+#import <wtf/text/StringHash.h>
+
+using namespace WebCore;
+
+CaptureDeviceManager::~CaptureDeviceManager()
+{
+}
+
+Vector<CaptureDevice> CaptureDeviceManager::getSourcesInfo()
+{
+    Vector<CaptureDevice> 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, "CaptureDeviceManager::getSourcesInfo(%p), found %zu active devices", this, sourcesInfo.size());
+    return sourcesInfo;
+}
+
+bool CaptureDeviceManager::captureDeviceFromDeviceID(const String& captureDeviceID, CaptureDeviceInfo& foundDevice)
+{
+    for (auto& device : captureDeviceList()) {
+        if (device.m_persistentDeviceID == captureDeviceID) {
+            foundDevice = device;
+            return true;
+        }
+    }
+
+    return false;
+}
+
+bool CaptureDeviceManager::verifyConstraintsForMediaType(RealtimeMediaSource::Type type, const MediaConstraints& constraints, const CaptureSessionInfo* session, String& invalidConstraint)
+{
+    auto& mandatoryConstraints = constraints.mandatoryConstraints();
+    for (auto& nameConstraintPair : mandatoryConstraints) {
+        if (sessionSupportsConstraint(session, type, *nameConstraintPair.value))
+            continue;
+
+        invalidConstraint = nameConstraintPair.key;
+        return false;
+    }
+
+    return true;
+}
+
+Vector<RefPtr<RealtimeMediaSource>> CaptureDeviceManager::bestSourcesForTypeAndConstraints(RealtimeMediaSource::Type type, MediaConstraints& constraints)
+{
+    Vector<RefPtr<RealtimeMediaSource>> bestSourcesList;
+
+    struct {
+        bool operator()(RefPtr<RealtimeMediaSource> a, RefPtr<RealtimeMediaSource> b)
+        {
+            return a->fitnessScore() < b->fitnessScore();
+        }
+    } sortBasedOnFitnessScore;
+
+    for (auto& captureDevice : captureDeviceList()) {
+        if (!captureDevice.m_enabled || captureDevice.m_sourceId.isEmpty() || captureDevice.m_sourceType == RealtimeMediaSource::None)
+            continue;
+
+        if (RefPtr<RealtimeMediaSource> captureSource = sourceWithUID(captureDevice.m_persistentDeviceID, type, &constraints))
+            bestSourcesList.append(captureSource.leakRef());
+    }
+    std::sort(bestSourcesList.begin(), bestSourcesList.end(), sortBasedOnFitnessScore);
+    return bestSourcesList;
+}
+
+RefPtr<RealtimeMediaSource> CaptureDeviceManager::sourceWithUID(const String& deviceUID, RealtimeMediaSource::Type type, MediaConstraints* constraints)
+{
+    for (auto& 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& device : captureDeviceList()) {
+        if (device.m_sourceType == RealtimeMediaSource::Video && device.m_position == facingMode)
+            return &device;
+    }
+    return nullptr;
+}
+
+static inline RealtimeMediaSourceSettings::VideoFacingMode facingModeFromString(const String& facingModeString)
+{
+    static NeverDestroyed<AtomicString> userFacingModeString("user", AtomicString::ConstructFromLiteral);
+    static NeverDestroyed<AtomicString> environmentFacingModeString("environment", AtomicString::ConstructFromLiteral);
+    static NeverDestroyed<AtomicString> leftFacingModeString("left", AtomicString::ConstructFromLiteral);
+    static NeverDestroyed<AtomicString> rightFacingModeString("right", 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& constraint)
+{
+    const RealtimeMediaSourceSupportedConstraints& 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<String> exactFacingMode;
+        if (!constraint.getExact(exactFacingMode))
+            return false;
+
+        return bestDeviceForFacingMode(facingModeFromString(exactFacingMode[0]));
+    }
+    default:
+        return false;
+    }
+}
+
+bool CaptureDeviceManager::isSupportedFrameRate(const MediaConstraint& 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 &= min > 60;
+
+    int max = 60;
+    if (constraint.getMax(max))
+        isSupported &= max < min;
+
+    int exact;
+    if (constraint.getExact(exact))
+        isSupported &= (exact < min || exact > max);
+
+    return isSupported;
+}
+
+#endif // ENABLE(MEDIA_STREAM)

Copied: trunk/Source/WebCore/platform/mediastream/CaptureDeviceManager.h (from rev 205914, trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.h) (0 => 205929)


--- 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)
@@ -0,0 +1,78 @@
+/*
+ * 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 "CaptureDevice.h"
+
+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& /* videoSize */) const { return false; }
+    virtual String bestSessionPresetForVideoDimensions(int /* width */, int /* height */) const { return emptyString(); }
+};
+
+class CaptureDeviceManager {
+public:
+    virtual Vector<CaptureDeviceInfo>& captureDeviceList() = 0;
+    virtual void refreshCaptureDeviceList() { }
+    virtual Vector<CaptureDevice> getSourcesInfo();
+    virtual Vector<RefPtr<RealtimeMediaSource>> bestSourcesForTypeAndConstraints(RealtimeMediaSource::Type, MediaConstraints&);
+    virtual RefPtr<RealtimeMediaSource> sourceWithUID(const String&, RealtimeMediaSource::Type, MediaConstraints*);
+
+    virtual bool verifyConstraintsForMediaType(RealtimeMediaSource::Type, const MediaConstraints&, const CaptureSessionInfo*, String&);
+
+protected:
+    virtual ~CaptureDeviceManager();
+    virtual RealtimeMediaSource* createMediaSourceForCaptureDeviceWithConstraints(const CaptureDeviceInfo&, MediaConstraints*) = 0;
+
+    virtual CaptureSessionInfo defaultCaptureSession() const { return CaptureSessionInfo(); }
+    virtual bool sessionSupportsConstraint(const CaptureSessionInfo*, RealtimeMediaSource::Type, const MediaConstraint&);
+    virtual bool isSupportedFrameRate(const MediaConstraint&) const;
+
+    bool captureDeviceFromDeviceID(const String& captureDeviceID, CaptureDeviceInfo& source);
+    CaptureDeviceInfo* bestDeviceForFacingMode(RealtimeMediaSourceSettings::VideoFacingMode);
+};
+
+} // namespace WebCore
+
+#endif // ENABLE(MEDIA_STREAM)

Deleted: trunk/Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h (205928 => 205929)


--- 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)
@@ -1,98 +0,0 @@
-/*
- * 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 <wtf/PassRefPtr.h>
-#include <wtf/Ref.h>
-#include <wtf/RefCounted.h>
-#include <wtf/text/AtomicString.h>
-
-namespace WebCore {
-
-class TrackSourceInfo : public RefCounted<TrackSourceInfo> {
-public:
-    enum SourceKind { Audio, Video };
-
-    static PassRefPtr<TrackSourceInfo> create(const AtomicString& persistentId, const AtomicString& id, SourceKind kind, const AtomicString& label)
-    {
-        return adoptRef(new TrackSourceInfo(persistentId, id, kind, label));
-    }
-
-    static Ref<TrackSourceInfo> create(const AtomicString& persistentId, const AtomicString& id, SourceKind kind, const AtomicString& label, const AtomicString& groupId)
-    {
-        return adoptRef(*new TrackSourceInfo(persistentId, id, kind, label, groupId));
-    }
-
-    const AtomicString& id() const { return m_id; }
-    const AtomicString& persistentId() const { return m_persistentId; }
-    const AtomicString& label() const { return m_label; }
-    const AtomicString& groupId() const { return m_groupId; }
-    SourceKind kind() const { return m_kind; }
-
-private:
-    TrackSourceInfo(const AtomicString& persistentId, const AtomicString& id, SourceKind kind, const AtomicString& label)
-        : m_persistentId(persistentId)
-        , m_id(id)
-        , m_kind(kind)
-        , m_label(label)
-    {
-    }
-
-    TrackSourceInfo(const AtomicString& persistentId, const AtomicString& id, SourceKind kind, const AtomicString& label, const AtomicString& 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<RefPtr<TrackSourceInfo>> TrackSourceInfoVector;
-
-class MediaStreamTrackSourcesRequestClient : public RefCounted<MediaStreamTrackSourcesRequestClient> {
-public:
-    virtual ~MediaStreamTrackSourcesRequestClient() { }
-
-    virtual const String& requestOrigin() const = 0;
-    virtual void didCompleteTrackSourceInfoRequest(const TrackSourceInfoVector&) = 0;
-};
-
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
-
-#endif // MediaStreamTrackSourcesRequestClient_h

Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h (205928 => 205929)


--- 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)
@@ -41,9 +41,9 @@
 
 namespace WebCore {
 
+class CaptureDevice;
 class MediaConstraints;
 class MediaStreamCreationClient;
-class MediaStreamTrackSourcesRequestClient;
 class RealtimeMediaSourceSettings;
 class RealtimeMediaSourceSupportedConstraints;
 class TrackSourceInfo;
@@ -61,10 +61,8 @@
 
     virtual void createMediaStream(PassRefPtr<MediaStreamCreationClient>, MediaConstraints& audioConstraints, MediaConstraints& videoConstraints) = 0;
 
-    virtual bool getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>) = 0;
+    virtual Vector<CaptureDevice> getMediaStreamDevices() = 0;
     
-    virtual RefPtr<TrackSourceInfo> sourceWithUID(const String&, RealtimeMediaSource::Type, MediaConstraints*) = 0;
-
     virtual const RealtimeMediaSourceSupportedConstraints& supportedConstraints() { return m_supportedConstraints; }
 
 protected:

Modified: trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h (205928 => 205929)


--- 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)
@@ -29,7 +29,6 @@
 #if ENABLE(MEDIA_STREAM) && USE(AVFOUNDATION)
 
 #include "CaptureDeviceManager.h"
-#include "MediaStreamTrackSourcesRequestClient.h"
 #include "RealtimeMediaSource.h"
 #include "RealtimeMediaSourceSupportedConstraints.h"
 #include <wtf/NeverDestroyed.h>
@@ -63,7 +62,7 @@
     RefPtr<RealtimeMediaSource> sourceWithUID(const String&, RealtimeMediaSource::Type, MediaConstraints*) override;
     Vector<RefPtr<RealtimeMediaSource>> bestSourcesForTypeAndConstraints(RealtimeMediaSource::Type, MediaConstraints&) override;
 
-    TrackSourceInfoVector getSourcesInfo(const String&) override;
+    Vector<CaptureDevice> getSourcesInfo() override;
     bool verifyConstraintsForMediaType(RealtimeMediaSource::Type, const MediaConstraints&, const CaptureSessionInfo*, String&) override;
 
     void deviceConnected();

Modified: trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm (205928 => 205929)


--- 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)
@@ -240,12 +240,12 @@
     return CaptureDeviceManager::sourceWithUID(deviceUID, type, constraints);
 }
 
-TrackSourceInfoVector AVCaptureDeviceManager::getSourcesInfo(const String& requestOrigin)
+Vector<CaptureDevice> AVCaptureDeviceManager::getSourcesInfo()
 {
     if (!isAvailable())
-        return TrackSourceInfoVector();
+        return Vector<CaptureDevice>();
 
-    return CaptureDeviceManager::getSourcesInfo(requestOrigin);
+    return CaptureDeviceManager::getSourcesInfo();
 }
 
 bool AVCaptureDeviceManager::verifyConstraintsForMediaType(RealtimeMediaSource::Type type, const MediaConstraints& constraints, const CaptureSessionInfo* session, String& invalidConstraint)

Modified: trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp (205928 => 205929)


--- 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)
@@ -36,7 +36,6 @@
 #include "AVCaptureDeviceManager.h"
 #include "MediaStreamCreationClient.h"
 #include "MediaStreamPrivate.h"
-#include "MediaStreamTrackSourcesRequestClient.h"
 #include <wtf/MainThread.h>
 
 namespace WebCore {
@@ -160,26 +159,11 @@
     client->didCreateStream(MediaStreamPrivate::create(audioSources, videoSources));
 }
 
-bool RealtimeMediaSourceCenterMac::getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient> prpClient)
+Vector<CaptureDevice> RealtimeMediaSourceCenterMac::getMediaStreamDevices()
 {
-    RefPtr<MediaStreamTrackSourcesRequestClient> requestClient = prpClient;
-    TrackSourceInfoVector sources = AVCaptureDeviceManager::singleton().getSourcesInfo(requestClient->requestOrigin());
-
-    callOnMainThread([this, requestClient = WTFMove(requestClient), sources = WTFMove(sources)] {
-        requestClient->didCompleteTrackSourceInfoRequest(sources);
-    });
-
-    return true;
+    return AVCaptureDeviceManager::singleton().getSourcesInfo();
 }
 
-RefPtr<TrackSourceInfo> RealtimeMediaSourceCenterMac::sourceWithUID(const String& UID, RealtimeMediaSource::Type type, MediaConstraints* constraints)
-{
-    RefPtr<RealtimeMediaSource> mediaSource = AVCaptureDeviceManager::singleton().sourceWithUID(UID, type, constraints);
-    if (!mediaSource)
-        return nullptr;
-    return TrackSourceInfo::create(mediaSource->persistentID(), mediaSource->id(), mediaSource->type() == RealtimeMediaSource::Type::Video ? TrackSourceInfo::SourceKind::Video : TrackSourceInfo::SourceKind::Audio, mediaSource->name());
-}
-
 } // namespace WebCore
 
 #endif // ENABLE(MEDIA_STREAM)

Modified: trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.h (205928 => 205929)


--- 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)
@@ -50,8 +50,7 @@
     void validateRequestConstraints(MediaStreamCreationClient*, MediaConstraints& audioConstraints, MediaConstraints& videoConstraints) final;
     void createMediaStream(PassRefPtr<MediaStreamCreationClient>, MediaConstraints& audioConstraints, MediaConstraints& videoConstraints) final;
     void createMediaStream(MediaStreamCreationClient*, const String& audioDeviceID, const String& videoDeviceID) final;
-    bool getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>) final;
-    RefPtr<TrackSourceInfo> sourceWithUID(const String&, RealtimeMediaSource::Type, MediaConstraints*) final;
+    Vector<CaptureDevice> getMediaStreamDevices() final;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp (205928 => 205929)


--- 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)
@@ -36,12 +36,11 @@
 #if ENABLE(MEDIA_STREAM) && USE(OPENWEBRTC)
 #include "RealtimeMediaSourceCenterOwr.h"
 
+#include "CaptureDevice.h"
 #include "MediaStreamCreationClient.h"
 #include "MediaStreamPrivate.h"
-#include "MediaStreamTrackSourcesRequestClient.h"
 #include "NotImplemented.h"
 #include "OpenWebRTCUtilities.h"
-#include "RealtimeMediaSource.h"
 #include "RealtimeMediaSourceCapabilities.h"
 #include "UUID.h"
 #include <owr/owr.h>
@@ -154,10 +153,10 @@
     client->didCreateStream(MediaStreamPrivate::create(audioSources, videoSources));
 }
 
-bool RealtimeMediaSourceCenterOwr::getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>)
+Vector<CaptureDevice> RealtimeMediaSourceCenterOwr::getMediaStreamDevices()
 {
     notImplemented();
-    return false;
+    return Vector<CaptureDevice>();
 }
 
 void RealtimeMediaSourceCenterOwr::mediaSourcesAvailable(GList* sources)
@@ -211,15 +210,6 @@
     return nullptr;
 }
 
-RefPtr<TrackSourceInfo> RealtimeMediaSourceCenterOwr::sourceWithUID(const String& UID, RealtimeMediaSource::Type, MediaConstraints*)
-{
-    for (auto& source : m_sourceMap.values()) {
-        if (source->id() == UID)
-            return TrackSourceInfo::create(source->persistentID(), source->id(), source->type() == RealtimeMediaSource::Type::Video ? TrackSourceInfo::SourceKind::Video : TrackSourceInfo::SourceKind::Audio , source->name());
-    }
-
-    return nullptr;
-}
 } // namespace WebCore
 
 #endif // ENABLE(MEDIA_STREAM) && USE(OPENWEBRTC)

Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h (205928 => 205929)


--- 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)
@@ -43,6 +43,7 @@
 
 namespace WebCore {
 
+class CaptureDevice;
 class MediaStreamPrivate;
 class RealtimeMediaSource;
 class MediaStreamSourcesQueryClient;
@@ -58,10 +59,9 @@
     void createMediaStream(PassRefPtr<MediaStreamCreationClient>, MediaConstraints& audioConstraints, MediaConstraints& videoConstraints) final;
     void createMediaStream(MediaStreamCreationClient*, const String& audioDeviceID, const String& videoDeviceID) final;
 
-    bool getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>) final;
+    Vector<CaptureDevice> getMediaStreamDevices() final;
 
     void mediaSourcesAvailable(GList* sources);
-    RefPtr<TrackSourceInfo> sourceWithUID(const String&, RealtimeMediaSource::Type, MediaConstraints*) final;
 
 private:
     PassRefPtr<RealtimeMediaSource> firstSource(RealtimeMediaSource::Type);

Modified: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.cpp (205928 => 205929)


--- 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)
@@ -32,9 +32,9 @@
 #include "MockRealtimeMediaSource.h"
 
 #if ENABLE(MEDIA_STREAM)
+#include "CaptureDevice.h"
 #include "Logging.h"
 #include "MediaConstraints.h"
-#include "MediaStreamTrackSourcesRequestClient.h"
 #include "NotImplemented.h"
 #include "RealtimeMediaSourceSettings.h"
 #include <math.h>
@@ -68,19 +68,19 @@
     return name;
 }
 
-RefPtr<TrackSourceInfo> MockRealtimeMediaSource::trackSourceWithUID(const String& id, MediaConstraints*)
+CaptureDevice MockRealtimeMediaSource::audioDeviceInfo()
 {
-    // FIXME: validate constraints.
+    static NeverDestroyed<CaptureDevice> deviceInfo(mockAudioSourcePersistentID(), CaptureDevice::SourceKind::Audio, mockAudioSourceName(), "");
+    return deviceInfo;
+}
 
-    if (mockAudioSourcePersistentID() == id)
-        return TrackSourceInfo::create(mockAudioSourcePersistentID(), id, TrackSourceInfo::Audio, "Mock audio device");
-
-    if (mockVideoSourcePersistentID() == id)
-        return TrackSourceInfo::create(mockVideoSourcePersistentID(), id, TrackSourceInfo::Video, "Mock video device");
-    
-    return nullptr;
+CaptureDevice MockRealtimeMediaSource::videoDeviceInfo()
+{
+    static NeverDestroyed<CaptureDevice> deviceInfo(mockVideoSourcePersistentID(), CaptureDevice::SourceKind::Video, mockVideoSourceName(), "");
+    return deviceInfo;
 }
 
+
 MockRealtimeMediaSource::MockRealtimeMediaSource(const String& id, RealtimeMediaSource::Type type, const String& name)
     : RealtimeMediaSource(id, type, name)
 {

Modified: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.h (205928 => 205929)


--- 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)
@@ -37,7 +37,7 @@
 
 namespace WebCore {
 
-class TrackSourceInfo;
+class CaptureDevice;
 
 class MockRealtimeMediaSource : public RealtimeMediaSource {
 public:
@@ -49,7 +49,8 @@
     static const AtomicString& mockVideoSourcePersistentID();
     static const AtomicString& mockVideoSourceName();
 
-    static RefPtr<TrackSourceInfo> trackSourceWithUID(const String&, MediaConstraints*);
+    static CaptureDevice audioDeviceInfo();
+    static CaptureDevice videoDeviceInfo();
 
 protected:
     MockRealtimeMediaSource(const String& id, Type, const String& name);

Modified: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp (205928 => 205929)


--- 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)
@@ -30,12 +30,12 @@
 
 #if ENABLE(MEDIA_STREAM)
 
+#include "CaptureDevice.h"
 #include "MediaConstraintsMock.h"
 #include "MediaStream.h"
 #include "MediaStreamCreationClient.h"
 #include "MediaStreamPrivate.h"
 #include "MediaStreamTrack.h"
-#include "MediaStreamTrackSourcesRequestClient.h"
 #include "MockRealtimeAudioSource.h"
 #include "MockRealtimeMediaSource.h"
 #include "MockRealtimeVideoSource.h"
@@ -151,26 +151,16 @@
     client->didCreateStream(MediaStreamPrivate::create(audioSources, videoSources));
 }
 
-bool MockRealtimeMediaSourceCenter::getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient> prpClient)
+Vector<CaptureDevice> MockRealtimeMediaSourceCenter::getMediaStreamDevices()
 {
-    RefPtr<MediaStreamTrackSourcesRequestClient> requestClient = prpClient;
-    TrackSourceInfoVector sources;
+    Vector<CaptureDevice> sources;
 
-    sources.append(MockRealtimeMediaSource::trackSourceWithUID(MockRealtimeMediaSource::mockAudioSourcePersistentID(), nullptr));
-    sources.append(MockRealtimeMediaSource::trackSourceWithUID(MockRealtimeMediaSource::mockVideoSourcePersistentID(), nullptr));
+    sources.append(MockRealtimeMediaSource::audioDeviceInfo());
+    sources.append(MockRealtimeMediaSource::videoDeviceInfo());
 
-    callOnMainThread([this, requestClient = WTFMove(requestClient), sources = WTFMove(sources)] {
-        requestClient->didCompleteTrackSourceInfoRequest(sources);
-    });
-
-    return true;
+    return sources;
 }
 
-RefPtr<TrackSourceInfo> MockRealtimeMediaSourceCenter::sourceWithUID(const String& UID, RealtimeMediaSource::Type, MediaConstraints* constraints)
-{
-    return MockRealtimeMediaSource::trackSourceWithUID(UID, constraints);
-}
-
 } // namespace WebCore
 
 #endif // ENABLE(MEDIA_STREAM)

Modified: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h (205928 => 205929)


--- 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)
@@ -43,9 +43,8 @@
 
     void validateRequestConstraints(MediaStreamCreationClient*, MediaConstraints& audioConstraints, MediaConstraints& videoConstraints) override;
     void createMediaStream(PassRefPtr<MediaStreamCreationClient>, MediaConstraints& audioConstraints, MediaConstraints& videoConstraints) override;
-    bool getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>) override;
+    Vector<CaptureDevice> getMediaStreamDevices() override;
     void createMediaStream(MediaStreamCreationClient*, const String& audioDeviceID, const String& videoDeviceID) override;
-    RefPtr<TrackSourceInfo> sourceWithUID(const String&, RealtimeMediaSource::Type, MediaConstraints*) override;
 };
 
 }

Modified: trunk/Source/WebKit2/ChangeLog (205928 => 205929)


--- 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)
@@ -1,3 +1,12 @@
+2016-09-14  Eric Carlson  <[email protected]>
+
+        [MediaStream] Minor cleanup
+        https://bugs.webkit.org/show_bug.cgi?id=161976
+
+        Reviewed by Youenn Fablet and Dean Jackson.
+
+        * UIProcess/UserMediaPermissionRequestProxy.cpp:
+
 2016-09-14  Beth Dakin  <[email protected]>
 
         Add needsHiddenContentEditableQuirk and send it to the UIProcess

Modified: trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp (205928 => 205929)


--- 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)
@@ -20,7 +20,6 @@
 #include "UserMediaPermissionRequestProxy.h"
 
 #include "UserMediaPermissionRequestManagerProxy.h"
-#include <WebCore/MediaStreamTrackSourcesRequestClient.h>
 #include <WebCore/RealtimeMediaSourceCenter.h>
 #include <wtf/text/StringHash.h>
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to