Title: [236855] trunk/Source
Revision
236855
Author
jlew...@apple.com
Date
2018-10-04 15:25:04 -0700 (Thu, 04 Oct 2018)

Log Message

Unreviewed, rolling out r236730.

Source/WebCore:

This caused a consistent crash in test http/tests/media/media-stream/get-display-media-prompt.html.

Reverted changeset:

"[MediaStream] RealtimeMediaSource should be able to vend
hashed IDs"
https://bugs.webkit.org/show_bug.cgi?id=190142
https://trac.webkit.org/changeset/236730

Source/WebKit:

This caused a consistent crash in test http/tests/media/media-
stream/get-display-media-prompt.html.

Reverted changeset:

"[MediaStream] RealtimeMediaSource should be able to vend
hashed IDs"
https://bugs.webkit.org/show_bug.cgi?id=190142
https://trac.webkit.org/changeset/236730

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (236854 => 236855)


--- trunk/Source/WebCore/ChangeLog	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/ChangeLog	2018-10-04 22:25:04 UTC (rev 236855)
@@ -1,3 +1,16 @@
+2018-10-04  Matt Lewis  <jlew...@apple.com>
+
+        Unreviewed, rolling out r236730.
+
+        This caused a consistent crash in test http/tests/media/media-stream/get-display-media-prompt.html.
+
+        Reverted changeset:
+
+        "[MediaStream] RealtimeMediaSource should be able to vend
+        hashed IDs"
+        https://bugs.webkit.org/show_bug.cgi?id=190142
+        https://trac.webkit.org/changeset/236730
+
 2018-10-04  Wenson Hsieh  <wenson_hs...@apple.com>
 
         [macOS] Fix some font attribute conversion bugs in preparation for "Font > Styles…" support in WebKit2

Modified: trunk/Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp (236854 => 236855)


--- trunk/Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -66,7 +66,7 @@
 
 // FIXME: Give source id and name
 CanvasCaptureMediaStreamTrack::Source::Source(HTMLCanvasElement& canvas, std::optional<double>&& frameRequestRate)
-    : RealtimeMediaSource(Type::Video, "CanvasCaptureMediaStreamTrack"_s)
+    : RealtimeMediaSource(String(), Type::Video, String())
     , m_frameRequestRate(WTFMove(frameRequestRate))
     , m_requestFrameTimer(*this, &Source::requestFrameTimerFired)
     , m_canvasChangedTimer(*this, &Source::captureCanvas)

Modified: trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp (236854 => 236855)


--- trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/Modules/mediastream/MediaDevicesRequest.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -117,7 +117,7 @@
         if (!scriptExecutionContext())
             return;
 
-        auto& document = downcast<Document>(*scriptExecutionContext());
+        Document& document = downcast<Document>(*scriptExecutionContext());
         document.setDeviceIDHashSalt(deviceIdentifierHashSalt);
 
         Vector<Ref<MediaDeviceInfo>> devices;

Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp (236854 => 236855)


--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -197,7 +197,7 @@
     configureTrackRendering();
 }
 
-MediaStreamTrack::TrackSettings MediaStreamTrack::getSettings() const
+MediaStreamTrack::TrackSettings MediaStreamTrack::getSettings(Document& document) const
 {
     auto& settings = m_private->settings();
     TrackSettings result;
@@ -220,9 +220,9 @@
     if (settings.supportsEchoCancellation())
         result.echoCancellation = settings.echoCancellation();
     if (settings.supportsDeviceId())
-        result.deviceId = settings.deviceId();
+        result.deviceId = RealtimeMediaSourceCenter::singleton().hashStringWithSalt(settings.deviceId(), document.deviceIDHashSalt());
     if (settings.supportsGroupId())
-        result.groupId = settings.groupId();
+        result.groupId = RealtimeMediaSourceCenter::singleton().hashStringWithSalt(settings.groupId(), document.deviceIDHashSalt());
 
     // FIXME: shouldn't this include displaySurface and logicalSurface?
 
@@ -287,7 +287,7 @@
     return result;
 }
 
-MediaStreamTrack::TrackCapabilities MediaStreamTrack::getCapabilities() const
+MediaStreamTrack::TrackCapabilities MediaStreamTrack::getCapabilities(Document& document) const
 {
     auto capabilities = m_private->capabilities();
     TrackCapabilities result;
@@ -310,9 +310,9 @@
     if (capabilities.supportsEchoCancellation())
         result.echoCancellation = capabilityBooleanVector(capabilities.echoCancellation());
     if (capabilities.supportsDeviceId())
-        result.deviceId = capabilities.deviceId();
+        result.deviceId = RealtimeMediaSourceCenter::singleton().hashStringWithSalt(capabilities.deviceId(), document.deviceIDHashSalt());
     if (capabilities.supportsGroupId())
-        result.groupId = capabilities.groupId();
+        result.groupId = RealtimeMediaSourceCenter::singleton().hashStringWithSalt(capabilities.groupId(), document.deviceIDHashSalt());
     return result;
 }
 

Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h (236854 => 236855)


--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -105,7 +105,7 @@
         String deviceId;
         String groupId;
     };
-    TrackSettings getSettings() const;
+    TrackSettings getSettings(Document&) const;
 
     struct TrackCapabilities {
         std::optional<LongRange> width;
@@ -120,7 +120,7 @@
         String deviceId;
         String groupId;
     };
-    TrackCapabilities getCapabilities() const;
+    TrackCapabilities getCapabilities(Document&) const;
 
     const MediaTrackConstraints& getConstraints() const { return m_constraints; }
     void applyConstraints(const std::optional<MediaTrackConstraints>&, DOMPromiseDeferred<void>&&);

Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl (236854 => 236855)


--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl	2018-10-04 22:25:04 UTC (rev 236855)
@@ -47,9 +47,9 @@
     MediaStreamTrack clone();
     [ImplementedAs=stopTrack] void stop();
 
-    MediaTrackCapabilities getCapabilities();
+    [CallWith=Document] MediaTrackCapabilities getCapabilities();
     MediaTrackConstraints getConstraints();
-    MediaTrackSettings getSettings();
+    [CallWith=Document] MediaTrackSettings getSettings();
     Promise<void> applyConstraints(optional MediaTrackConstraints constraints);
 
     attribute EventHandler onoverconstrained;

Modified: trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp (236854 => 236855)


--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -300,15 +300,16 @@
         m_pendingActivationMediaStream = PendingActivationMediaStream::create(WTFMove(protector), *this, WTFMove(stream));
     };
 
-    auto& document = downcast<Document>(*scriptExecutionContext());
-    document.setDeviceIDHashSalt(deviceIdentifierHashSalt);
+    m_request.audioConstraints.deviceIDHashSalt = deviceIdentifierHashSalt;
+    m_request.videoConstraints.deviceIDHashSalt = WTFMove(deviceIdentifierHashSalt);
 
-    RealtimeMediaSourceCenter::singleton().createMediaStream(WTFMove(callback), WTFMove(deviceIdentifierHashSalt), WTFMove(audioDevice), WTFMove(videoDevice), m_request);
+    RealtimeMediaSourceCenter::singleton().createMediaStream(WTFMove(callback), WTFMove(audioDevice), WTFMove(videoDevice), m_request);
 
     if (!m_scriptExecutionContext)
         return;
 
 #if ENABLE(WEB_RTC)
+    auto& document = downcast<Document>(*m_scriptExecutionContext);
     if (auto* page = document.page())
         page->rtcController().disableICECandidateFilteringForDocument(document);
 #endif

Modified: trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp (236854 => 236855)


--- trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -235,8 +235,7 @@
 
 Ref<RTCRtpReceiver> LibWebRTCPeerConnectionBackend::createReceiverForSource(Ref<RealtimeMediaSource>&& source, std::unique_ptr<RTCRtpReceiverBackend>&& backend)
 {
-    String trackID = source->persistentID();
-    auto remoteTrackPrivate = MediaStreamTrackPrivate::create(WTFMove(source), WTFMove(trackID));
+    auto remoteTrackPrivate = MediaStreamTrackPrivate::create(WTFMove(source), String { source->id() });
     auto remoteTrack = MediaStreamTrack::create(*m_peerConnection.scriptExecutionContext(), WTFMove(remoteTrackPrivate));
 
     return RTCRtpReceiver::create(*this, WTFMove(remoteTrack), WTFMove(backend));

Modified: trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSource.cpp (236854 => 236855)


--- trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSource.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSource.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -34,7 +34,7 @@
 namespace WebCore {
 
 MediaStreamAudioSource::MediaStreamAudioSource(float sampleRate)
-    : RealtimeMediaSource(RealtimeMediaSource::Type::Audio, "MediaStreamAudioDestinationNode"_s)
+    : RealtimeMediaSource(makeString("WebAudio-"_s, createCanonicalUUIDString()), RealtimeMediaSource::Type::Audio, "MediaStreamAudioDestinationNode")
 {
     m_currentSettings.setSampleRate(sampleRate);
 }

Modified: trunk/Source/WebCore/dom/Document.cpp (236854 => 236855)


--- trunk/Source/WebCore/dom/Document.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/dom/Document.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -7738,13 +7738,6 @@
     for (auto* mediaElement : m_mediaStreamStateChangeElements)
         mediaElement->mediaStreamCaptureStarted();
 }
-
-void Document::setDeviceIDHashSalt(const String& salt)
-{
-    ASSERT(m_idHashSalt.isEmpty() || m_idHashSalt == salt);
-    m_idHashSalt = salt;
-}
-
 #endif
 
 void Document::addApplicationStateChangeListener(ApplicationStateChangeListener& listener)

Modified: trunk/Source/WebCore/dom/Document.h (236854 => 236855)


--- trunk/Source/WebCore/dom/Document.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/dom/Document.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -1391,7 +1391,7 @@
 #if ENABLE(MEDIA_STREAM)
     void setHasCaptureMediaStreamTrack() { m_hasHadCaptureMediaStreamTrack = true; }
     bool hasHadCaptureMediaStreamTrack() const { return m_hasHadCaptureMediaStreamTrack; }
-    void setDeviceIDHashSalt(const String&);
+    void setDeviceIDHashSalt(const String& salt) { m_idHashSalt = salt; }
     String deviceIDHashSalt() const { return m_idHashSalt; }
     void stopMediaCapture();
     void registerForMediaStreamStateChangeCallbacks(HTMLMediaElement&);

Modified: trunk/Source/WebCore/platform/mediastream/MediaConstraints.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/MediaConstraints.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/MediaConstraints.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -879,6 +879,7 @@
 
     MediaTrackConstraintSetMap mandatoryConstraints;
     Vector<MediaTrackConstraintSetMap> advancedConstraints;
+    String deviceIDHashSalt;
     bool isValid { false };
 };
     

Modified: trunk/Source/WebCore/platform/mediastream/RealtimeIncomingAudioSource.cpp (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/RealtimeIncomingAudioSource.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeIncomingAudioSource.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -38,9 +38,10 @@
 namespace WebCore {
 
 RealtimeIncomingAudioSource::RealtimeIncomingAudioSource(rtc::scoped_refptr<webrtc::AudioTrackInterface>&& audioTrack, String&& audioTrackId)
-    : RealtimeMediaSource(RealtimeMediaSource::Type::Audio, "remote audio"_s, WTFMove(audioTrackId))
+    : RealtimeMediaSource(WTFMove(audioTrackId), RealtimeMediaSource::Type::Audio, String())
     , m_audioTrack(WTFMove(audioTrack))
 {
+    setName("remote audio");
     notifyMutedChange(!m_audioTrack);
 }
 

Modified: trunk/Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.cpp (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -38,9 +38,10 @@
 namespace WebCore {
 
 RealtimeIncomingVideoSource::RealtimeIncomingVideoSource(rtc::scoped_refptr<webrtc::VideoTrackInterface>&& videoTrack, String&& videoTrackId)
-    : RealtimeMediaSource(RealtimeMediaSource::Type::Video, "remote video"_s, WTFMove(videoTrackId))
+    : RealtimeMediaSource(WTFMove(videoTrackId), RealtimeMediaSource::Type::Video, String())
     , m_videoTrack(WTFMove(videoTrack))
 {
+    setName("remote video");
     notifyMutedChange(!m_videoTrack);
 
     RealtimeMediaSourceSupportedConstraints constraints;

Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -47,16 +47,14 @@
 
 namespace WebCore {
 
-RealtimeMediaSource::RealtimeMediaSource(Type type, String&& name, String&& deviceID, String&& hashSalt)
-    : m_idHashSalt(WTFMove(hashSalt))
-    , m_persistentID(WTFMove(deviceID))
+RealtimeMediaSource::RealtimeMediaSource(const String& id, Type type, const String& name)
+    : m_id(id)
     , m_type(type)
-    , m_name(WTFMove(name))
+    , m_name(name)
 {
-    if (m_persistentID.isEmpty())
-        m_persistentID = createCanonicalUUIDString();
-    else
-        m_hashedID = RealtimeMediaSourceCenter::singleton().hashStringWithSalt(m_persistentID, m_idHashSalt);
+    if (m_id.isEmpty())
+        m_id = createCanonicalUUIDString();
+    m_persistentID = m_id;
 }
 
 void RealtimeMediaSource::addObserver(RealtimeMediaSource::Observer& observer)
@@ -610,9 +608,10 @@
                 return false;
 
             ASSERT(constraint.isString());
-            ASSERT(!m_hashedID.isEmpty());
+            ASSERT(!constraints.deviceIDHashSalt.isEmpty());
 
-            double constraintDistance = downcast<StringConstraint>(constraint).fitnessDistance(m_hashedID);
+            auto hashedID = RealtimeMediaSourceCenter::singleton().hashStringWithSalt(m_persistentID, constraints.deviceIDHashSalt);
+            double constraintDistance = downcast<StringConstraint>(constraint).fitnessDistance(hashedID);
             if (std::isinf(constraintDistance)) {
                 failedConstraint = constraint.name();
                 return true;
@@ -959,17 +958,6 @@
     });
 }
 
-const String& RealtimeMediaSource::hashedId() const
-{
-    ASSERT(!m_hashedID.isEmpty());
-    return m_hashedID;
-}
-
-String RealtimeMediaSource::deviceIDHashSalt() const
-{
-    return m_idHashSalt;
-}
-
 RealtimeMediaSource::Observer::~Observer()
 {
 }

Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -88,10 +88,10 @@
 
     virtual ~RealtimeMediaSource() = default;
 
-    const String& hashedId() const;
-    String deviceIDHashSalt() const;
+    const String& id() const { return m_id; }
 
     const String& persistentID() const { return m_persistentID; }
+    virtual void setPersistentID(String&& persistentID) { m_persistentID = WTFMove(persistentID); }
 
     enum class Type { None, Audio, Video };
     Type type() const { return m_type; }
@@ -166,7 +166,7 @@
     virtual void delaySamples(Seconds) { };
 
 protected:
-    RealtimeMediaSource(Type, String&& name, String&& deviceID = { }, String&& hashSalt = { });
+    RealtimeMediaSource(const String& id, Type, const String& name);
 
     void scheduleDeferredTask(WTF::Function<void()>&&);
 
@@ -204,8 +204,7 @@
 
     bool m_muted { false };
 
-    String m_idHashSalt;
-    String m_hashedID;
+    String m_id;
     String m_persistentID;
     Type m_type;
     String m_name;

Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -79,7 +79,7 @@
 
 RealtimeMediaSourceCenter::~RealtimeMediaSourceCenter() = default;
 
-void RealtimeMediaSourceCenter::createMediaStream(NewMediaStreamHandler&& completionHandler, String&& hashSalt, CaptureDevice&& audioDevice, CaptureDevice&& videoDevice, const MediaStreamRequest& request)
+void RealtimeMediaSourceCenter::createMediaStream(NewMediaStreamHandler&& completionHandler, CaptureDevice&& audioDevice, CaptureDevice&& videoDevice, const MediaStreamRequest& request)
 {
     Vector<Ref<RealtimeMediaSource>> audioSources;
     Vector<Ref<RealtimeMediaSource>> videoSources;
@@ -86,7 +86,7 @@
     String invalidConstraint;
 
     if (audioDevice) {
-        auto audioSource = audioFactory().createAudioCaptureSource(WTFMove(audioDevice), String { hashSalt }, &request.audioConstraints);
+        auto audioSource = audioFactory().createAudioCaptureSource(WTFMove(audioDevice), &request.audioConstraints);
         if (audioSource)
             audioSources.append(audioSource.source());
         else {
@@ -102,7 +102,7 @@
     if (videoDevice) {
         CaptureSourceOrError videoSource;
         if (videoDevice.type() == CaptureDevice::DeviceType::Camera)
-            videoSource = videoFactory().createVideoCaptureSource(WTFMove(videoDevice), WTFMove(hashSalt), &request.videoConstraints);
+            videoSource = videoFactory().createVideoCaptureSource(WTFMove(videoDevice), &request.videoConstraints);
         else
             videoSource = displayCaptureFactory().createDisplayCaptureSource(WTFMove(videoDevice), &request.videoConstraints);
 
@@ -231,7 +231,7 @@
     }
 }
 
-void RealtimeMediaSourceCenter::getUserMediaDevices(const MediaStreamRequest& request, String&& hashSalt, Vector<DeviceInfo>& audioDeviceInfo, Vector<DeviceInfo>& videoDeviceInfo, String& firstInvalidConstraint)
+void RealtimeMediaSourceCenter::getUserMediaDevices(const MediaStreamRequest& request, Vector<DeviceInfo>& audioDeviceInfo, Vector<DeviceInfo>& videoDeviceInfo, String& firstInvalidConstraint)
 {
     String invalidConstraint;
     if (request.audioConstraints.isValid) {
@@ -239,7 +239,7 @@
             if (!device.enabled())
                 continue;
 
-            auto sourceOrError = audioFactory().createAudioCaptureSource(device, String { hashSalt }, { });
+            auto sourceOrError = audioFactory().createAudioCaptureSource(device, { });
             if (sourceOrError && sourceOrError.captureSource->supportsConstraints(request.audioConstraints, invalidConstraint))
                 audioDeviceInfo.append({sourceOrError.captureSource->fitnessScore(), device});
 
@@ -253,7 +253,7 @@
             if (!device.enabled())
                 continue;
 
-            auto sourceOrError = videoFactory().createVideoCaptureSource(device, String { hashSalt }, { });
+            auto sourceOrError = videoFactory().createVideoCaptureSource(device, { });
             if (sourceOrError && sourceOrError.captureSource->supportsConstraints(request.videoConstraints, invalidConstraint))
                 videoDeviceInfo.append({sourceOrError.captureSource->fitnessScore(), device});
 
@@ -279,7 +279,7 @@
     if (request.type == MediaStreamRequest::Type::DisplayMedia)
         getDisplayMediaDevices(request, videoDeviceInfo, firstInvalidConstraint);
     else
-        getUserMediaDevices(request, String { deviceIdentifierHashSalt }, audioDeviceInfo, videoDeviceInfo, firstInvalidConstraint);
+        getUserMediaDevices(request, audioDeviceInfo, videoDeviceInfo, firstInvalidConstraint);
 
     if ((request.audioConstraints.isValid && audioDeviceInfo.isEmpty()) || (request.videoConstraints.isValid && videoDeviceInfo.isEmpty())) {
         invalidHandler(firstInvalidConstraint);

Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -65,7 +65,7 @@
     virtual void validateRequestConstraints(ValidConstraintsHandler&&, InvalidConstraintsHandler&&, const MediaStreamRequest&, String&&);
 
     using NewMediaStreamHandler = WTF::Function<void(RefPtr<MediaStreamPrivate>&&)>;
-    virtual void createMediaStream(NewMediaStreamHandler&&, String&&, CaptureDevice&& audioDevice, CaptureDevice&& videoDevice, const MediaStreamRequest&);
+    virtual void createMediaStream(NewMediaStreamHandler&&, CaptureDevice&& audioDevice, CaptureDevice&& videoDevice, const MediaStreamRequest&);
 
     WEBCORE_EXPORT virtual Vector<CaptureDevice> getMediaStreamDevices();
     WEBCORE_EXPORT std::optional<CaptureDevice> captureDeviceWithPersistentID(CaptureDevice::DeviceType, const String&);
@@ -110,7 +110,7 @@
     };
 
     void getDisplayMediaDevices(const MediaStreamRequest&, Vector<DeviceInfo>&, String&);
-    void getUserMediaDevices(const MediaStreamRequest&, String&&, Vector<DeviceInfo>& audioDevices, Vector<DeviceInfo>& videoDevices, String&);
+    void getUserMediaDevices(const MediaStreamRequest&, Vector<DeviceInfo>& audioDevices, Vector<DeviceInfo>& videoDevices, String&);
 
     WTF::Function<void()> m_deviceChangedObserver;
 };

Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceFactory.cpp (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceFactory.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceFactory.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -26,13 +26,14 @@
 #include "config.h"
 #include "RealtimeMediaSourceFactory.h"
 
+#include "CaptureDevice.h"
+#include "RealtimeMediaSource.h"
+
 #if ENABLE(MEDIA_STREAM)
 
-#include "CaptureDevice.h"
 #include "CaptureDeviceManager.h"
 #include "Logging.h"
 #include "MediaStreamPrivate.h"
-#include "RealtimeMediaSource.h"
 #include <wtf/SHA1.h>
 
 namespace WebCore {

Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceFactory.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceFactory.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceFactory.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -27,16 +27,15 @@
 
 #if ENABLE(MEDIA_STREAM)
 
-#include <wtf/text/WTFString.h>
-
 namespace WebCore {
 
 class CaptureDevice;
 class RealtimeMediaSource;
 
-struct CaptureSourceOrError;
 struct MediaConstraints;
 
+struct CaptureSourceOrError;
+
 class SingleSourceFactory {
 public:
     void setActiveSource(RealtimeMediaSource&);
@@ -54,7 +53,7 @@
 {
 public:
     virtual ~AudioCaptureFactory() = default;
-    virtual CaptureSourceOrError createAudioCaptureSource(const CaptureDevice&, String&&, const MediaConstraints*) = 0;
+    virtual CaptureSourceOrError createAudioCaptureSource(const CaptureDevice&, const MediaConstraints*) = 0;
 
 protected:
     AudioCaptureFactory() = default;
@@ -67,7 +66,7 @@
 {
 public:
     virtual ~VideoCaptureFactory() = default;
-    virtual CaptureSourceOrError createVideoCaptureSource(const CaptureDevice&, String&&, const MediaConstraints*) = 0;
+    virtual CaptureSourceOrError createVideoCaptureSource(const CaptureDevice&, const MediaConstraints*) = 0;
     virtual void setVideoCapturePageState(bool, bool) { }
 
 protected:

Modified: trunk/Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -34,8 +34,8 @@
 
 namespace WebCore {
 
-RealtimeVideoSource::RealtimeVideoSource(String&& name, String&& id, String&& hashSalt)
-    : RealtimeMediaSource(Type::Video, WTFMove(name), WTFMove(id), WTFMove(hashSalt))
+RealtimeVideoSource::RealtimeVideoSource(const String& id, const String& name)
+    : RealtimeMediaSource(id, Type::Video, name)
 {
 }
 

Modified: trunk/Source/WebCore/platform/mediastream/RealtimeVideoSource.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/RealtimeVideoSource.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeVideoSource.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -42,7 +42,7 @@
     virtual ~RealtimeVideoSource();
 
 protected:
-    RealtimeVideoSource(String&& name, String&& id, String&& hashSalt);
+    RealtimeVideoSource(const String& id, const String& name);
 
     void prepareToProduceData();
     bool supportsSizeAndFrameRate(std::optional<int> width, std::optional<int> height, std::optional<double>) override;

Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -53,9 +53,9 @@
 
 class GStreamerAudioCaptureSourceFactory : public AudioCaptureFactory {
 public:
-    CaptureSourceOrError createAudioCaptureSource(const CaptureDevice& device, String&& hashSalt, const MediaConstraints* constraints) final
+    CaptureSourceOrError createAudioCaptureSource(const CaptureDevice& device, const MediaConstraints* constraints) final
     {
-        return GStreamerAudioCaptureSource::create(String { device.persistentId() }, WTFMove(hashSalt), constraints);
+        return GStreamerAudioCaptureSource::create(device.persistentId(), constraints);
     }
 };
 
@@ -65,7 +65,7 @@
     return factory.get();
 }
 
-CaptureSourceOrError GStreamerAudioCaptureSource::create(String&& deviceID, String&& hashSalt, const MediaConstraints* constraints)
+CaptureSourceOrError GStreamerAudioCaptureSource::create(const String& deviceID, const MediaConstraints* constraints)
 {
     auto device = GStreamerAudioCaptureDeviceManager::singleton().gstreamerDeviceWithUID(deviceID);
     if (!device) {
@@ -73,7 +73,7 @@
         return CaptureSourceOrError(WTFMove(errorMessage));
     }
 
-    auto source = adoptRef(*new GStreamerAudioCaptureSource(device.value(), WTFMove(hashSalt)));
+    auto source = adoptRef(*new GStreamerAudioCaptureSource(device.value()));
 
     if (constraints) {
         auto result = source->applyConstraints(*constraints);
@@ -88,15 +88,15 @@
     return libWebRTCAudioCaptureSourceFactory();
 }
 
-GStreamerAudioCaptureSource::GStreamerAudioCaptureSource(GStreamerCaptureDevice device, String&& hashSalt)
-    : RealtimeMediaSource(RealtimeMediaSource::Type::Audio, String { device.persistentId() }, String { device.label() }, WTFMove(hashSalt))
+GStreamerAudioCaptureSource::GStreamerAudioCaptureSource(GStreamerCaptureDevice device)
+    : RealtimeMediaSource(device.persistentId(), RealtimeMediaSource::Type::Audio, device.label())
     , m_capturer(std::make_unique<GStreamerAudioCapturer>(device))
 {
     initializeGStreamerDebug();
 }
 
-GStreamerAudioCaptureSource::GStreamerAudioCaptureSource(String&& deviceID, String&& name, String&& hashSalt)
-    : RealtimeMediaSource(RealtimeMediaSource::Type::Audio, WTFMove(deviceID), WTFMove(name), WTFMove(hashSalt))
+GStreamerAudioCaptureSource::GStreamerAudioCaptureSource(const String& deviceID, const String& name)
+    : RealtimeMediaSource(deviceID, RealtimeMediaSource::Type::Audio, name)
     , m_capturer(std::make_unique<GStreamerAudioCapturer>())
 {
     initializeGStreamerDebug();
@@ -163,7 +163,7 @@
     }
 
     RealtimeMediaSourceCapabilities capabilities(settings().supportedConstraints());
-    capabilities.setDeviceId(hashedId());
+    capabilities.setDeviceId(id());
     capabilities.setEchoCancellation(defaultEchoCancellationCapability);
     capabilities.setVolume(defaultVolumeCapability());
     capabilities.setSampleRate(CapabilityValueOrRange(minSampleRate, maxSampleRate));
@@ -182,7 +182,7 @@
 {
     if (!m_currentSettings) {
         RealtimeMediaSourceSettings settings;
-        settings.setDeviceId(hashedId());
+        settings.setDeviceId(id());
 
         RealtimeMediaSourceSupportedConstraints supportedConstraints;
         supportedConstraints.setSupportsDeviceId(true);

Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -30,7 +30,7 @@
 
 class GStreamerAudioCaptureSource : public RealtimeMediaSource {
 public:
-    static CaptureSourceOrError create(String&& deviceID, String&& hashSalt, const MediaConstraints*);
+    static CaptureSourceOrError create(const String& deviceID, const MediaConstraints*);
     WEBCORE_EXPORT static AudioCaptureFactory& factory();
 
     const RealtimeMediaSourceCapabilities& capabilities() override;
@@ -40,8 +40,8 @@
     GStreamerCapturer* capturer() { return m_capturer.get(); }
 
 protected:
-    GStreamerAudioCaptureSource(GStreamerCaptureDevice, String&& hashSalt);
-    GStreamerAudioCaptureSource(String&& deviceID, String&& name, String&& hashSalt);
+    GStreamerAudioCaptureSource(GStreamerCaptureDevice);
+    GStreamerAudioCaptureSource(const String& deviceID, const String& name);
     virtual ~GStreamerAudioCaptureSource();
     void startProducingData() override;
     void stopProducingData() override;

Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -54,9 +54,9 @@
 
 class GStreamerVideoCaptureSourceFactory final : public VideoCaptureFactory {
 public:
-    CaptureSourceOrError createVideoCaptureSource(const CaptureDevice& device, String&& hashSalt, const MediaConstraints* constraints) final
+    CaptureSourceOrError createVideoCaptureSource(const CaptureDevice& device, const MediaConstraints* constraints) final
     {
-        return GStreamerVideoCaptureSource::create(String { device.persistentId() }, WTFMove(hashSalt), constraints);
+        return GStreamerVideoCaptureSource::create(device.persistentId(), constraints);
     }
 };
 
@@ -81,7 +81,7 @@
     return factory.get();
 }
 
-CaptureSourceOrError GStreamerVideoCaptureSource::create(String&& deviceID, String&& hashSalt, const MediaConstraints* constraints)
+CaptureSourceOrError GStreamerVideoCaptureSource::create(const String& deviceID, const MediaConstraints* constraints)
 {
     auto device = GStreamerVideoCaptureDeviceManager::singleton().gstreamerDeviceWithUID(deviceID);
     if (!device) {
@@ -89,7 +89,7 @@
         return CaptureSourceOrError(WTFMove(errorMessage));
     }
 
-    auto source = adoptRef(*new GStreamerVideoCaptureSource(device.value(), WTFMove(hashSalt)));
+    auto source = adoptRef(*new GStreamerVideoCaptureSource(device.value()));
 
     if (constraints) {
         auto result = source->applyConstraints(*constraints);
@@ -109,15 +109,15 @@
     return libWebRTCDisplayCaptureSourceFactory();
 }
 
-GStreamerVideoCaptureSource::GStreamerVideoCaptureSource(String&& deviceID, String&& name, String&& hashSalt, const gchar *source_factory)
-    : RealtimeMediaSource(RealtimeMediaSource::Type::Video, WTFMove(deviceID), WTFMove(name), WTFMove(hashSalt))
+GStreamerVideoCaptureSource::GStreamerVideoCaptureSource(const String& deviceID, const String& name, const gchar *source_factory)
+    : RealtimeMediaSource(deviceID, RealtimeMediaSource::Type::Video, name)
     , m_capturer(std::make_unique<GStreamerVideoCapturer>(source_factory))
 {
     initializeGStreamerDebug();
 }
 
-GStreamerVideoCaptureSource::GStreamerVideoCaptureSource(GStreamerCaptureDevice device, String&& hashSalt)
-    : RealtimeMediaSource(RealtimeMediaSource::Type::Video, String { device.persistentId() }, String { device.label() }, WTFMove(hashSalt))
+GStreamerVideoCaptureSource::GStreamerVideoCaptureSource(GStreamerCaptureDevice device)
+    : RealtimeMediaSource(device.persistentId(), RealtimeMediaSource::Type::Video, device.label())
     , m_capturer(std::make_unique<GStreamerVideoCapturer>(device))
 {
     initializeGStreamerDebug();
@@ -242,7 +242,7 @@
             }
         }
 
-        capabilities.setDeviceId(hashedId());
+        capabilities.setDeviceId(id());
         capabilities.setWidth(CapabilityValueOrRange(minWidth, maxWidth));
         capabilities.setHeight(CapabilityValueOrRange(minHeight, maxHeight));
         capabilities.setFrameRate(CapabilityValueOrRange(minFramerate, maxFramerate));
@@ -256,7 +256,7 @@
 {
     if (!m_currentSettings) {
         RealtimeMediaSourceSettings settings;
-        settings.setDeviceId(hashedId());
+        settings.setDeviceId(id());
 
         RealtimeMediaSourceSupportedConstraints supportedConstraints;
         supportedConstraints.setSupportsDeviceId(true);

Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -29,7 +29,7 @@
 
 class GStreamerVideoCaptureSource : public RealtimeMediaSource {
 public:
-    static CaptureSourceOrError create(String&& deviceID, String&& hashSalt, const MediaConstraints*);
+    static CaptureSourceOrError create(const String& deviceID, const MediaConstraints*);
     WEBCORE_EXPORT static VideoCaptureFactory& factory();
 
     // FIXME: Implement this.
@@ -41,8 +41,8 @@
     GStreamerCapturer* capturer() { return m_capturer.get(); }
 
 protected:
-    GStreamerVideoCaptureSource(String&& deviceID, String&& name, String&& hashSalt, const gchar * source_factory);
-    GStreamerVideoCaptureSource(GStreamerCaptureDevice, String&& hashSalt);
+    GStreamerVideoCaptureSource(const String& deviceID, const String& name, const gchar * source_factory);
+    GStreamerVideoCaptureSource(GStreamerCaptureDevice);
     virtual ~GStreamerVideoCaptureSource();
     void startProducingData() override;
     void stopProducingData() override;

Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -30,16 +30,16 @@
 
 class WrappedMockRealtimeAudioSource : public MockRealtimeAudioSource {
 public:
-    WrappedMockRealtimeAudioSource(String&& deviceID, String&& name, String&& hashSalt)
-        : MockRealtimeAudioSource(WTFMove(deviceID), WTFMove(name), WTFMove(hashSalt))
+    WrappedMockRealtimeAudioSource(const String& deviceID, const String& name)
+        : MockRealtimeAudioSource(deviceID, name)
     {
     }
 };
 
-CaptureSourceOrError MockRealtimeAudioSource::create(String&& deviceID,
-    String&& name, String&& hashSalt, const MediaConstraints* constraints)
+CaptureSourceOrError MockRealtimeAudioSource::create(const String& deviceID,
+    const String& name, const MediaConstraints* constraints)
 {
-    auto source = adoptRef(*new MockGStreamerAudioCaptureSource(WTFMove(deviceID), WTFMove(name), WTFMove(hashSalt)));
+    auto source = adoptRef(*new MockGStreamerAudioCaptureSource(deviceID, name));
 
     if (constraints && source->applyConstraints(*constraints))
         return { };
@@ -58,9 +58,9 @@
     m_wrappedSource->applyConstraints(constraints, WTFMove(successHandler), WTFMove(failureHandler));
 }
 
-MockGStreamerAudioCaptureSource::MockGStreamerAudioCaptureSource(String&& deviceID, String&& name, String&& hashSalt)
-    : GStreamerAudioCaptureSource(String { deviceID }, String { name }, String { hashSalt })
-    , m_wrappedSource(std::make_unique<WrappedMockRealtimeAudioSource>(WTFMove(deviceID), WTFMove(name), WTFMove(hashSalt)))
+MockGStreamerAudioCaptureSource::MockGStreamerAudioCaptureSource(const String& deviceID, const String& name)
+    : GStreamerAudioCaptureSource(deviceID, name)
+    , m_wrappedSource(std::make_unique<WrappedMockRealtimeAudioSource>(deviceID, name))
 {
     m_wrappedSource->addObserver(*this);
 }

Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -29,7 +29,7 @@
 
 class MockGStreamerAudioCaptureSource final : public GStreamerAudioCaptureSource, RealtimeMediaSource::Observer {
 public:
-    MockGStreamerAudioCaptureSource(String&& deviceID, String&& name, String&& hashSalt);
+    MockGStreamerAudioCaptureSource(const String& deviceID, const String& name);
     ~MockGStreamerAudioCaptureSource();
     std::optional<std::pair<String, String>> applyConstraints(const MediaConstraints&);
     void applyConstraints(const MediaConstraints&, SuccessHandler&&, FailureHandler&&) final;

Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -33,8 +33,8 @@
 
 class WrappedMockRealtimeVideoSource : public MockRealtimeVideoSource {
 public:
-    WrappedMockRealtimeVideoSource(String&& deviceID, String&& name, String&& hashSalt)
-        : MockRealtimeVideoSource(WTFMove(deviceID), WTFMove(name), WTFMove(hashSalt))
+    WrappedMockRealtimeVideoSource(const String& deviceID, const String& name)
+        : MockRealtimeVideoSource(deviceID, name)
     {
     }
 
@@ -61,10 +61,10 @@
     }
 };
 
-CaptureSourceOrError MockRealtimeVideoSource::create(String&& deviceID,
-    String&& name, String&& hashSalt, const MediaConstraints* constraints)
+CaptureSourceOrError MockRealtimeVideoSource::create(const String& deviceID,
+    const String& name, const MediaConstraints* constraints)
 {
-    auto source = adoptRef(*new MockGStreamerVideoCaptureSource(WTFMove(deviceID), WTFMove(name), WTFMove(hashSalt)));
+    auto source = adoptRef(*new MockGStreamerVideoCaptureSource(deviceID, name));
 
     if (constraints && source->applyConstraints(*constraints))
         return { };
@@ -95,9 +95,9 @@
     }
 }
 
-MockGStreamerVideoCaptureSource::MockGStreamerVideoCaptureSource(String&& deviceID, String&& name, String&& hashSalt)
-    : GStreamerVideoCaptureSource(String { deviceID }, String { name }, String { hashSalt }, "appsrc")
-    , m_wrappedSource(std::make_unique<WrappedMockRealtimeVideoSource>(WTFMove(deviceID), WTFMove(name), WTFMove(hashSalt)))
+MockGStreamerVideoCaptureSource::MockGStreamerVideoCaptureSource(const String& deviceID, const String& name)
+    : GStreamerVideoCaptureSource(deviceID, name, "appsrc")
+    , m_wrappedSource(std::make_unique<WrappedMockRealtimeVideoSource>(deviceID, name))
 {
     m_wrappedSource->addObserver(*this);
 }

Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -34,7 +34,7 @@
 // to the MockRealtimeMediaSource class by wrapping our own subclass of it.
 class MockGStreamerVideoCaptureSource final : public GStreamerVideoCaptureSource, RealtimeMediaSource::Observer {
 public:
-    MockGStreamerVideoCaptureSource(String&& deviceID, String&& name, String&& hashSalt);
+    MockGStreamerVideoCaptureSource(const String& deviceID, const String& name);
     ~MockGStreamerVideoCaptureSource();
     std::optional<std::pair<String, String>> applyConstraints(const MediaConstraints&);
     void applyConstraints(const MediaConstraints&, SuccessHandler&&, FailureHandler&&) final;

Modified: trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -53,7 +53,7 @@
 
 class AVVideoCaptureSource : public RealtimeVideoSource, private OrientationNotifier::Observer {
 public:
-    static CaptureSourceOrError create(String&& id, String&& hashSalt, const MediaConstraints*);
+    static CaptureSourceOrError create(const AtomicString&, const MediaConstraints*);
 
     WEBCORE_EXPORT static VideoCaptureFactory& factory();
 
@@ -71,7 +71,7 @@
     void captureOutputDidOutputSampleBufferFromConnection(AVCaptureOutput*, CMSampleBufferRef, AVCaptureConnection*);
 
 private:
-    AVVideoCaptureSource(AVCaptureDevice*, String&& id, String&& hashSalt);
+    AVVideoCaptureSource(AVCaptureDevice*, const AtomicString&);
     virtual ~AVVideoCaptureSource();
 
     bool setupSession();

Modified: trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm	2018-10-04 22:25:04 UTC (rev 236855)
@@ -150,13 +150,13 @@
     RetainPtr<AVCaptureDeviceFormatType> format;
 };
 
-CaptureSourceOrError AVVideoCaptureSource::create(String&& id, String&& hashSalt, const MediaConstraints* constraints)
+CaptureSourceOrError AVVideoCaptureSource::create(const AtomicString& id, const MediaConstraints* constraints)
 {
     AVCaptureDeviceTypedef *device = [getAVCaptureDeviceClass() deviceWithUniqueID:id];
     if (!device)
         return { };
 
-    auto source = adoptRef(*new AVVideoCaptureSource(device, WTFMove(id), WTFMove(hashSalt)));
+    auto source = adoptRef(*new AVVideoCaptureSource(device, id));
     if (constraints) {
         auto result = source->applyConstraints(*constraints);
         if (result)
@@ -166,8 +166,8 @@
     return CaptureSourceOrError(WTFMove(source));
 }
 
-AVVideoCaptureSource::AVVideoCaptureSource(AVCaptureDeviceTypedef* device, String&& id, String&& hashSalt)
-    : RealtimeVideoSource(device.localizedName, WTFMove(id), WTFMove(hashSalt))
+AVVideoCaptureSource::AVVideoCaptureSource(AVCaptureDeviceTypedef* device, const AtomicString& id)
+    : RealtimeVideoSource(id, device.localizedName)
     , m_objcObserver(adoptNS([[WebCoreAVVideoCaptureSourceObserver alloc] initWithCallback:this]))
     , m_device(device)
 {
@@ -177,6 +177,8 @@
     static_assert(static_cast<int>(InterruptionReason::VideoInUse) == AVCaptureSessionInterruptionReasonVideoDeviceInUseByAnotherClient, "InterruptionReason::VideoInUse is not AVCaptureSessionInterruptionReasonVideoDeviceInUseByAnotherClient as expected");
     static_assert(static_cast<int>(InterruptionReason::AudioInUse) == AVCaptureSessionInterruptionReasonAudioDeviceInUseByAnotherClient, "InterruptionReason::AudioInUse is not AVCaptureSessionInterruptionReasonAudioDeviceInUseByAnotherClient as expected");
 #endif
+
+    setPersistentID(String(device.uniqueID));
 }
 
 AVVideoCaptureSource::~AVVideoCaptureSource()
@@ -258,7 +260,7 @@
     auto& size = this->size();
     settings.setWidth(size.width());
     settings.setHeight(size.height());
-    settings.setDeviceId(hashedId());
+    settings.setDeviceId(id());
 
     RealtimeMediaSourceSupportedConstraints supportedConstraints;
     supportedConstraints.setSupportsDeviceId(true);
@@ -281,7 +283,7 @@
         return *m_capabilities;
 
     RealtimeMediaSourceCapabilities capabilities(settings().supportedConstraints());
-    capabilities.setDeviceId(hashedId());
+    capabilities.setDeviceId(id());
 
     AVCaptureDeviceTypedef *videoDevice = device();
     if ([videoDevice position] == AVCaptureDevicePositionFront)

Modified: trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -694,7 +694,7 @@
     return err;
 }
 
-CaptureSourceOrError CoreAudioCaptureSource::create(String&& deviceID, String&& hashSalt, const MediaConstraints* constraints)
+CaptureSourceOrError CoreAudioCaptureSource::create(const String& deviceID, const MediaConstraints* constraints)
 {
 #if PLATFORM(MAC)
     auto device = CoreAudioCaptureDeviceManager::singleton().coreAudioDeviceWithUID(deviceID);
@@ -701,13 +701,13 @@
     if (!device)
         return { };
 
-    auto source = adoptRef(*new CoreAudioCaptureSource(WTFMove(deviceID), String { device->label() }, WTFMove(hashSalt), device->deviceID()));
+    auto source = adoptRef(*new CoreAudioCaptureSource(deviceID, device->label(), device->deviceID()));
 #elif PLATFORM(IOS)
-    auto device = AVAudioSessionCaptureDeviceManager::singleton().audioSessionDeviceWithUID(WTFMove(deviceID));
+    auto device = AVAudioSessionCaptureDeviceManager::singleton().audioSessionDeviceWithUID(deviceID);
     if (!device)
         return { };
 
-    auto source = adoptRef(*new CoreAudioCaptureSource(WTFMove(deviceID), String { device->label() }, WTFMove(hashSalt), 0));
+    auto source = adoptRef(*new CoreAudioCaptureSource(deviceID, device->label(), 0));
 #endif
 
     if (constraints) {
@@ -774,8 +774,8 @@
     return CoreAudioCaptureSourceFactory::singleton();
 }
 
-CoreAudioCaptureSource::CoreAudioCaptureSource(String&& deviceID, String&& label, String&& hashSalt, uint32_t persistentID)
-    : RealtimeMediaSource(RealtimeMediaSource::Type::Audio, WTFMove(label), WTFMove(deviceID), WTFMove(hashSalt))
+CoreAudioCaptureSource::CoreAudioCaptureSource(const String& deviceID, const String& label, uint32_t persistentID)
+    : RealtimeMediaSource(deviceID, RealtimeMediaSource::Type::Audio, label)
     , m_captureDeviceID(persistentID)
 {
     auto& unit = CoreAudioSharedUnit::singleton();
@@ -845,7 +845,7 @@
 {
     if (!m_capabilities) {
         RealtimeMediaSourceCapabilities capabilities(settings().supportedConstraints());
-        capabilities.setDeviceId(hashedId());
+        capabilities.setDeviceId(id());
         capabilities.setEchoCancellation(RealtimeMediaSourceCapabilities::EchoCancellation::ReadWrite);
         capabilities.setVolume(CapabilityValueOrRange(0.0, 1.0));
         capabilities.setSampleRate(CapabilityValueOrRange(8000, 96000));
@@ -860,7 +860,7 @@
         RealtimeMediaSourceSettings settings;
         settings.setVolume(volume());
         settings.setSampleRate(sampleRate());
-        settings.setDeviceId(hashedId());
+        settings.setDeviceId(id());
         settings.setLabel(name());
         settings.setEchoCancellation(echoCancellation());
 

Modified: trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -55,7 +55,7 @@
 class CoreAudioCaptureSource : public RealtimeMediaSource {
 public:
 
-    static CaptureSourceOrError create(String&& deviceID, String&& hashSalt, const MediaConstraints*);
+    static CaptureSourceOrError create(const String& deviceID, const MediaConstraints*);
 
     WEBCORE_EXPORT static AudioCaptureFactory& factory();
 
@@ -74,7 +74,7 @@
     void scheduleReconfiguration();
 
 protected:
-    CoreAudioCaptureSource(String&& deviceID, String&& label, String&& hashSalt, uint32_t persistentID);
+    CoreAudioCaptureSource(const String& deviceID, const String& label, uint32_t persistentID);
     virtual ~CoreAudioCaptureSource();
 
 private:
@@ -126,9 +126,9 @@
 #endif
 
 private:
-    CaptureSourceOrError createAudioCaptureSource(const CaptureDevice& device, String&& hashSalt, const MediaConstraints* constraints) final
+    CaptureSourceOrError createAudioCaptureSource(const CaptureDevice& device, const MediaConstraints* constraints) final
     {
-        return CoreAudioCaptureSource::create(String { device.persistentId() }, WTFMove(hashSalt), constraints);
+        return CoreAudioCaptureSource::create(device.persistentId(), constraints);
     }
 };
 

Modified: trunk/Source/WebCore/platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -52,7 +52,7 @@
 using namespace PAL;
 
 DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa(String&& name)
-    : RealtimeMediaSource(Type::Video, WTFMove(name))
+    : RealtimeMediaSource("", Type::Video, WTFMove(name))
     , m_timer(RunLoop::current(), this, &DisplayCaptureSourceCocoa::emitFrame)
 {
 }

Modified: trunk/Source/WebCore/platform/mediastream/mac/DisplayCaptureSourceCocoa.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/mac/DisplayCaptureSourceCocoa.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/mac/DisplayCaptureSourceCocoa.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -51,7 +51,7 @@
 public:
 
 protected:
-    DisplayCaptureSourceCocoa(String&& name);
+    DisplayCaptureSourceCocoa(String&&);
     virtual ~DisplayCaptureSourceCocoa();
 
     virtual RetainPtr<CVPixelBufferRef> generateFrame() = 0;

Modified: trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeAudioSourceMac.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeAudioSourceMac.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeAudioSourceMac.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -48,7 +48,7 @@
 class MockRealtimeAudioSourceMac final : public MockRealtimeAudioSource {
 private:
     friend class MockRealtimeAudioSource;
-    MockRealtimeAudioSourceMac(String&& deviceID, String&& name, String&& hashSalt);
+    MockRealtimeAudioSourceMac(const String& deviceID, const String& name);
 
     void settingsDidChange(OptionSet<RealtimeMediaSourceSettings::Flag>) final;
     std::optional<Vector<int>> discreteSampleRates() const final { return { { 44100, 48000 } }; }

Modified: trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeAudioSourceMac.mm (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeAudioSourceMac.mm	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeAudioSourceMac.mm	2018-10-04 22:25:04 UTC (rev 236855)
@@ -86,16 +86,9 @@
     }
 }
 
-CaptureSourceOrError MockRealtimeAudioSource::create(String&& deviceID, String&& name, String&& hashSalt, const MediaConstraints* constraints)
+CaptureSourceOrError MockRealtimeAudioSource::create(const String& deviceID, const String& name, const MediaConstraints* constraints)
 {
-#ifndef NDEBUG
-    auto device = MockRealtimeMediaSourceCenter::mockDeviceWithPersistentID(deviceID);
-    ASSERT(device);
-    if (!device)
-        return { };
-#endif
-
-    auto source = adoptRef(*new MockRealtimeAudioSourceMac(WTFMove(deviceID), WTFMove(name), WTFMove(hashSalt)));
+    auto source = adoptRef(*new MockRealtimeAudioSourceMac(deviceID, name));
     // FIXME: We should report error messages
     if (constraints && source->applyConstraints(*constraints))
         return { };
@@ -103,8 +96,8 @@
     return CaptureSourceOrError(WTFMove(source));
 }
 
-MockRealtimeAudioSourceMac::MockRealtimeAudioSourceMac(String&& deviceID, String&& name, String&& hashSalt)
-    : MockRealtimeAudioSource(WTFMove(deviceID), WTFMove(name), WTFMove(hashSalt))
+MockRealtimeAudioSourceMac::MockRealtimeAudioSourceMac(const String& deviceID, const String& name)
+    : MockRealtimeAudioSource(deviceID, name)
 {
 }
 

Modified: trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -51,7 +51,7 @@
 
 private:
     friend class MockRealtimeVideoSource;
-    MockRealtimeVideoSourceMac(String&& deviceID, String&& name, String&& hashSalt);
+    MockRealtimeVideoSourceMac(const String& deviceID, const String& name);
 
     RetainPtr<CMSampleBufferRef> CMSampleBufferFromPixelBuffer(CVPixelBufferRef);
     RetainPtr<CVPixelBufferRef> pixelBufferFromCGImage(CGImageRef) const;

Modified: trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm	2018-10-04 22:25:04 UTC (rev 236855)
@@ -53,16 +53,9 @@
 
 static const int videoSampleRate = 90000;
 
-CaptureSourceOrError MockRealtimeVideoSource::create(String&& deviceID, String&& name, String&& hashSalt, const MediaConstraints* constraints)
+CaptureSourceOrError MockRealtimeVideoSource::create(const String& deviceID, const String& name, const MediaConstraints* constraints)
 {
-#ifndef NDEBUG
-    auto device = MockRealtimeMediaSourceCenter::mockDeviceWithPersistentID(deviceID);
-    ASSERT(device);
-    if (!device)
-        return { };
-#endif
-
-    auto source = adoptRef(*new MockRealtimeVideoSourceMac(WTFMove(deviceID), WTFMove(name), WTFMove(hashSalt)));
+    auto source = adoptRef(*new MockRealtimeVideoSourceMac(deviceID, name));
     // FIXME: We should report error messages
     if (constraints && source->applyConstraints(*constraints))
         return { };
@@ -70,8 +63,8 @@
     return CaptureSourceOrError(WTFMove(source));
 }
 
-MockRealtimeVideoSourceMac::MockRealtimeVideoSourceMac(String&& deviceID, String&& name, String&& hashSalt)
-    : MockRealtimeVideoSource(WTFMove(deviceID), WTFMove(name), WTFMove(hashSalt))
+MockRealtimeVideoSourceMac::MockRealtimeVideoSourceMac(const String& deviceID, const String& name)
+    : MockRealtimeVideoSource(deviceID, name)
 {
 }
 

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


--- trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -48,10 +48,10 @@
 
 class VideoCaptureSourceFactoryMac final : public VideoCaptureFactory {
 public:
-    CaptureSourceOrError createVideoCaptureSource(const CaptureDevice& device, String&& hashSalt, const MediaConstraints* constraints) final
+    CaptureSourceOrError createVideoCaptureSource(const CaptureDevice& device, const MediaConstraints* constraints) final
     {
         ASSERT(device.type() == CaptureDevice::DeviceType::Camera);
-        return AVVideoCaptureSource::create(String { device.persistentId() }, WTFMove(hashSalt), constraints);
+        return AVVideoCaptureSource::create(device.persistentId(), constraints);
     }
 
 #if PLATFORM(IOS)
@@ -75,11 +75,11 @@
         switch (device.type()) {
         case CaptureDevice::DeviceType::Screen:
 #if PLATFORM(MAC)
-            return ScreenDisplayCaptureSourceMac::create(String { device.persistentId() }, constraints);
+            return ScreenDisplayCaptureSourceMac::create(device.persistentId(), constraints);
 #endif
         case CaptureDevice::DeviceType::Window:
 #if PLATFORM(MAC)
-            return WindowDisplayCaptureSourceMac::create(String { device.persistentId() }, constraints);
+            return WindowDisplayCaptureSourceMac::create(device.persistentId(), constraints);
 #endif
         case CaptureDevice::DeviceType::Application:
         case CaptureDevice::DeviceType::Browser:

Modified: trunk/Source/WebCore/platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -41,13 +41,13 @@
 
 class ScreenDisplayCaptureSourceMac : public DisplayCaptureSourceCocoa {
 public:
-    static CaptureSourceOrError create(String&&, const MediaConstraints*);
+    static CaptureSourceOrError create(const String&, const MediaConstraints*);
 
     static std::optional<CaptureDevice> screenCaptureDeviceWithPersistentID(const String&);
     static void screenCaptureDevices(Vector<CaptureDevice>&);
 
 private:
-    ScreenDisplayCaptureSourceMac(uint32_t, String&&);
+    ScreenDisplayCaptureSourceMac(uint32_t);
     virtual ~ScreenDisplayCaptureSourceMac();
 
     static void displayReconfigurationCallBack(CGDirectDisplayID, CGDisplayChangeSummaryFlags, void*);

Modified: trunk/Source/WebCore/platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm	2018-10-04 22:25:04 UTC (rev 236855)
@@ -76,12 +76,12 @@
     return std::nullopt;
 }
 
-CaptureSourceOrError ScreenDisplayCaptureSourceMac::create(String&& deviceID, const MediaConstraints* constraints)
+CaptureSourceOrError ScreenDisplayCaptureSourceMac::create(const String& deviceID, const MediaConstraints* constraints)
 {
     bool ok;
     auto displayID = deviceID.toUIntStrict(&ok);
     if (!ok) {
-        RELEASE_LOG(Media, "ScreenDisplayCaptureSourceMac::create: Display ID does not convert to 32-bit integer");
+        RELEASE_LOG(Media, "Display ID does not convert to 32-bit integer");
         return { };
     }
 
@@ -89,7 +89,7 @@
     if (!actualDisplayID)
         return { };
 
-    auto source = adoptRef(*new ScreenDisplayCaptureSourceMac(actualDisplayID.value(), "Screen"_s)); // FIXME: figure out what title to use
+    auto source = adoptRef(*new ScreenDisplayCaptureSourceMac(actualDisplayID.value()));
     if (constraints && source->applyConstraints(*constraints))
         return { };
 
@@ -96,8 +96,8 @@
     return CaptureSourceOrError(WTFMove(source));
 }
 
-ScreenDisplayCaptureSourceMac::ScreenDisplayCaptureSourceMac(uint32_t displayID, String&& title)
-    : DisplayCaptureSourceCocoa(WTFMove(title))
+ScreenDisplayCaptureSourceMac::ScreenDisplayCaptureSourceMac(uint32_t displayID)
+    : DisplayCaptureSourceCocoa("Screen") // FIXME: figure out what to call this
     , m_displayID(displayID)
 {
 }
@@ -122,7 +122,7 @@
 
     if (m_displayID != actualDisplayID.value()) {
         m_displayID = actualDisplayID.value();
-        RELEASE_LOG(Media, "ScreenDisplayCaptureSourceMac::createDisplayStream: display ID changed to %d", static_cast<int>(m_displayID));
+        RELEASE_LOG(Media, "ScreenDisplayCaptureSourceMac::createDisplayStream(%p), display ID changed to %d", this, static_cast<int>(m_displayID));
     }
 
     if (!m_displayStream) {
@@ -130,7 +130,7 @@
         auto screenWidth = CGDisplayModeGetPixelsWide(displayMode.get());
         auto screenHeight = CGDisplayModeGetPixelsHigh(displayMode.get());
         if (!screenWidth || !screenHeight) {
-            RELEASE_LOG(Media, "ScreenDisplayCaptureSourceMac::createDisplayStream: unable to get screen width/height");
+            RELEASE_LOG(Media, "ScreenDisplayCaptureSourceMac::createDisplayStream(%p), unable to get screen width/height", this);
             captureFailed();
             return false;
         }
@@ -168,7 +168,7 @@
         auto size = frameSize();
         m_displayStream = adoptCF(CGDisplayStreamCreateWithDispatchQueue(m_displayID, size.width(), size.height(), kCVPixelFormatType_420YpCbCr8Planar, streamOptions.get(), m_captureQueue.get(), m_frameAvailableBlock));
         if (!m_displayStream) {
-            RELEASE_LOG(Media, "ScreenDisplayCaptureSourceMac::createDisplayStream: CGDisplayStreamCreate failed");
+            RELEASE_LOG(Media, "ScreenDisplayCaptureSourceMac::createDisplayStream(%p), CGDisplayStreamCreate failed", this);
             captureFailed();
             return false;
         }
@@ -227,7 +227,7 @@
 
     if (m_displayID != actualDisplayID.value()) {
         m_displayID = actualDisplayID.value();
-        RELEASE_LOG(Media, "ScreenDisplayCaptureSourceMac::startDisplayStream: display ID changed to %d", static_cast<int>(m_displayID));
+        RELEASE_LOG(Media, "ScreenDisplayCaptureSourceMac::startDisplayStream(%p), display ID changed to %d", this, static_cast<int>(m_displayID));
     }
 
     if (!m_displayStream && !createDisplayStream())
@@ -235,7 +235,7 @@
 
     auto err = CGDisplayStreamStart(m_displayStream.get());
     if (err) {
-        RELEASE_LOG(Media, "ScreenDisplayCaptureSourceMac::startDisplayStream: CGDisplayStreamStart failed with error %d", static_cast<int>(err));
+        RELEASE_LOG(Media, "ScreenDisplayCaptureSourceMac::startDisplayStream(%p), CGDisplayStreamStart failed with error %d", this, static_cast<int>(err));
         captureFailed();
         return;
     }
@@ -278,11 +278,11 @@
         break;
 
     case kCGDisplayStreamFrameStatusFrameBlank:
-        RELEASE_LOG(Media, "ScreenDisplayCaptureSourceMac::frameAvailable: kCGDisplayStreamFrameStatusFrameBlank");
+        RELEASE_LOG(Media, "ScreenDisplayCaptureSourceMac::frameAvailable(%p), kCGDisplayStreamFrameStatusFrameBlank", this);
         break;
 
     case kCGDisplayStreamFrameStatusStopped:
-        RELEASE_LOG(Media, "ScreenDisplayCaptureSourceMac::frameAvailable: kCGDisplayStreamFrameStatusStopped");
+        RELEASE_LOG(Media, "ScreenDisplayCaptureSourceMac::frameAvailable(%p), kCGDisplayStreamFrameStatusStopped", this);
         break;
     }
 

Modified: trunk/Source/WebCore/platform/mediastream/mac/WindowDisplayCaptureSourceMac.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/mac/WindowDisplayCaptureSourceMac.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/mac/WindowDisplayCaptureSourceMac.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -40,13 +40,13 @@
 
 class WindowDisplayCaptureSourceMac : public DisplayCaptureSourceCocoa {
 public:
-    static CaptureSourceOrError create(String&&, const MediaConstraints*);
+    static CaptureSourceOrError create(const String&, const MediaConstraints*);
 
     static std::optional<CaptureDevice> windowCaptureDeviceWithPersistentID(const String&);
     static void windowCaptureDevices(Vector<CaptureDevice>&);
 
 private:
-    WindowDisplayCaptureSourceMac(uint32_t, String&&);
+    WindowDisplayCaptureSourceMac(uint32_t windowID, String&&);
     virtual ~WindowDisplayCaptureSourceMac() = default;
 
     RetainPtr<CVPixelBufferRef> generateFrame() final;

Modified: trunk/Source/WebCore/platform/mediastream/mac/WindowDisplayCaptureSourceMac.mm (236854 => 236855)


--- trunk/Source/WebCore/platform/mediastream/mac/WindowDisplayCaptureSourceMac.mm	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mediastream/mac/WindowDisplayCaptureSourceMac.mm	2018-10-04 22:25:04 UTC (rev 236855)
@@ -102,7 +102,7 @@
     return checked_cf_cast<CFDictionaryRef>(CFArrayGetValueAtIndex(windows.get(), 0));
 }
 
-CaptureSourceOrError WindowDisplayCaptureSourceMac::create(String&& windowID, const MediaConstraints* constraints)
+CaptureSourceOrError WindowDisplayCaptureSourceMac::create(const String& windowID, const MediaConstraints* constraints)
 {
     bool ok;
     auto actualID = windowID.toUIntStrict(&ok);

Modified: trunk/Source/WebCore/platform/mock/MockRealtimeAudioSource.cpp (236854 => 236855)


--- trunk/Source/WebCore/platform/mock/MockRealtimeAudioSource.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeAudioSource.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -43,16 +43,14 @@
 namespace WebCore {
 
 #if !PLATFORM(MAC) && !PLATFORM(IOS) && !(USE(GSTREAMER) && USE(LIBWEBRTC))
-CaptureSourceOrError MockRealtimeAudioSource::create(String&& deviceID, String&& name, String&& hashSalt, const MediaConstraints* constraints)
+CaptureSourceOrError MockRealtimeAudioSource::create(const String& deviceID, const String& name, const MediaConstraints* constraints)
 {
-#ifndef NDEBUG
     auto device = MockRealtimeMediaSourceCenter::mockDeviceWithPersistentID(deviceID);
     ASSERT(device);
     if (!device)
         return { };
-#endif
 
-    auto source = adoptRef(*new MockRealtimeAudioSource(WTFMove(deviceID), WTFMove(name), WTFMove(hashSalt)));
+    auto source = adoptRef(*new MockRealtimeAudioSource(WTFMove(device), deviceID, name));
     if (constraints && source->applyConstraints(*constraints))
         return { };
 
@@ -60,11 +58,11 @@
 }
 #endif
 
-MockRealtimeAudioSource::MockRealtimeAudioSource(String&& deviceID, String&& name, String&& hashSalt)
-    : RealtimeMediaSource(RealtimeMediaSource::Type::Audio, WTFMove(name), WTFMove(deviceID), WTFMove(hashSalt))
+MockRealtimeAudioSource::MockRealtimeAudioSource(const String& deviceID, const String& name)
+    : RealtimeMediaSource(deviceID, RealtimeMediaSource::Type::Audio, name)
     , m_timer(RunLoop::current(), this, &MockRealtimeAudioSource::tick)
 {
-    auto device = MockRealtimeMediaSourceCenter::mockDeviceWithPersistentID(persistentID());
+    auto device = MockRealtimeMediaSourceCenter::mockDeviceWithPersistentID(deviceID);
     ASSERT(device);
     m_device = *device;
 }
@@ -80,7 +78,7 @@
 {
     if (!m_currentSettings) {
         RealtimeMediaSourceSettings settings;
-        settings.setDeviceId(hashedId());
+        settings.setDeviceId(id());
         settings.setVolume(volume());
         settings.setEchoCancellation(echoCancellation());
         settings.setSampleRate(sampleRate());
@@ -102,7 +100,7 @@
     if (!m_capabilities) {
         RealtimeMediaSourceCapabilities capabilities(settings().supportedConstraints());
 
-        capabilities.setDeviceId(hashedId());
+        capabilities.setDeviceId(id());
         capabilities.setVolume(CapabilityValueOrRange(0.0, 1.0));
         capabilities.setEchoCancellation(RealtimeMediaSourceCapabilities::EchoCancellation::ReadWrite);
         capabilities.setSampleRate(CapabilityValueOrRange(44100, 48000));

Modified: trunk/Source/WebCore/platform/mock/MockRealtimeAudioSource.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mock/MockRealtimeAudioSource.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeAudioSource.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -42,12 +42,12 @@
 class MockRealtimeAudioSource : public RealtimeMediaSource {
 public:
 
-    static CaptureSourceOrError create(String&& deviceID, String&& name, String&& hashSalt, const MediaConstraints*);
+    static CaptureSourceOrError create(const String& deviceID, const String& name, const MediaConstraints*);
 
     virtual ~MockRealtimeAudioSource();
 
 protected:
-    MockRealtimeAudioSource(String&& deviceID, String&& name, String&& hashSalt);
+    MockRealtimeAudioSource(const String& deviceID, const String& name);
 
     void startProducingData() final;
     void stopProducingData() final;

Modified: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp (236854 => 236855)


--- trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -83,14 +83,15 @@
     };
 }
 
+
 class MockRealtimeVideoSourceFactory : public VideoCaptureFactory {
 public:
-    CaptureSourceOrError createVideoCaptureSource(const CaptureDevice& device, String&& hashSalt, const MediaConstraints* constraints) final
+    CaptureSourceOrError createVideoCaptureSource(const CaptureDevice& device, const MediaConstraints* constraints) final
     {
         ASSERT(device.type() == CaptureDevice::DeviceType::Camera);
         ASSERT(MockRealtimeMediaSourceCenter::captureDeviceWithPersistentID(CaptureDevice::DeviceType::Camera, device.persistentId()));
 
-        return MockRealtimeVideoSource::create(String { device.persistentId() }, String { device.label() }, WTFMove(hashSalt), constraints);
+        return MockRealtimeVideoSource::create(device.persistentId(), device.label(), constraints);
     }
 
 #if PLATFORM(IOS)
@@ -112,7 +113,7 @@
         switch (device.type()) {
         case CaptureDevice::DeviceType::Screen:
         case CaptureDevice::DeviceType::Window:
-            return MockRealtimeVideoSource::create(String { device.persistentId() }, String { }, String { device.label() }, constraints);
+            return MockRealtimeVideoSource::create(device.persistentId(), device.label(), constraints);
             break;
         case CaptureDevice::DeviceType::Application:
         case CaptureDevice::DeviceType::Browser:
@@ -129,12 +130,12 @@
 
 class MockRealtimeAudioSourceFactory : public AudioCaptureFactory {
 public:
-    CaptureSourceOrError createAudioCaptureSource(const CaptureDevice& device, String&& hashSalt, const MediaConstraints* constraints) final
+    CaptureSourceOrError createAudioCaptureSource(const CaptureDevice& device, const MediaConstraints* constraints) final
     {
         ASSERT(device.type() == CaptureDevice::DeviceType::Microphone);
         ASSERT(MockRealtimeMediaSourceCenter::captureDeviceWithPersistentID(CaptureDevice::DeviceType::Microphone, device.persistentId()));
 
-        return MockRealtimeAudioSource::create(String { device.persistentId() }, String { device.label() }, WTFMove(hashSalt), constraints);
+        return MockRealtimeAudioSource::create(device.persistentId(), device.label(), constraints);
     }
 };
 

Modified: trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp (236854 => 236855)


--- trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -49,16 +49,14 @@
 namespace WebCore {
 
 #if !PLATFORM(MAC) && !PLATFORM(IOS) && !(USE(GSTREAMER) && USE(LIBWEBRTC))
-CaptureSourceOrError MockRealtimeVideoSource::create(String&& deviceID, String&& name, String&& hashSalt, const MediaConstraints* constraints)
+CaptureSourceOrError MockRealtimeVideoSource::create(const String& deviceID, const String& name, const MediaConstraints* constraints)
 {
-#ifndef NDEBUG
     auto device = MockRealtimeMediaSourceCenter::mockDeviceWithPersistentID(deviceID);
     ASSERT(device);
     if (!device)
         return { };
-#endif
 
-    auto source = adoptRef(*new MockRealtimeVideoSource(WTFMove(deviceID), WTFMove(name), WTFMove(hashSalt)));
+    auto source = adoptRef(*new MockRealtimeVideoSource(WTFMove(device), deviceID, name));
     if (constraints && source->applyConstraints(*constraints))
         return { };
 
@@ -66,11 +64,11 @@
 }
 #endif
 
-MockRealtimeVideoSource::MockRealtimeVideoSource(String&& deviceID, String&& name, String&& hashSalt)
-    : RealtimeVideoSource(WTFMove(name), WTFMove(deviceID), WTFMove(hashSalt))
+MockRealtimeVideoSource::MockRealtimeVideoSource(const String& deviceID, const String& name)
+    : RealtimeVideoSource(deviceID, name)
     , m_emitFrameTimer(RunLoop::current(), this, &MockRealtimeVideoSource::generateFrame)
 {
-    auto device = MockRealtimeMediaSourceCenter::mockDeviceWithPersistentID(persistentID());
+    auto device = MockRealtimeMediaSourceCenter::mockDeviceWithPersistentID(deviceID);
     ASSERT(device);
     m_device = *device;
 
@@ -122,7 +120,7 @@
     if (!m_capabilities) {
         RealtimeMediaSourceCapabilities capabilities(settings().supportedConstraints());
 
-        capabilities.setDeviceId(hashedId());
+        capabilities.setDeviceId(id());
         if (mockCamera()) {
             capabilities.addFacingMode(WTF::get<MockCameraProperties>(m_device.properties).facingMode);
             updateCapabilities(capabilities);
@@ -156,7 +154,7 @@
     settings.setHeight(size.height());
     if (aspectRatio())
         settings.setAspectRatio(aspectRatio());
-    settings.setDeviceId(hashedId());
+    settings.setDeviceId(id());
 
     RealtimeMediaSourceSupportedConstraints supportedConstraints;
     supportedConstraints.setSupportsDeviceId(true);

Modified: trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.h (236854 => 236855)


--- trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -48,10 +48,10 @@
 class MockRealtimeVideoSource : public RealtimeVideoSource {
 public:
 
-    static CaptureSourceOrError create(String&& deviceID, String&& name, String&& hashSalt, const MediaConstraints*);
+    static CaptureSourceOrError create(const String& deviceID, const String& name, const MediaConstraints*);
 
 protected:
-    MockRealtimeVideoSource(String&& deviceID, String&& name, String&& hashSalt);
+    MockRealtimeVideoSource(const String& deviceID, const String& name);
 
     virtual void updateSampleBuffer() = 0;
 

Modified: trunk/Source/WebKit/ChangeLog (236854 => 236855)


--- trunk/Source/WebKit/ChangeLog	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebKit/ChangeLog	2018-10-04 22:25:04 UTC (rev 236855)
@@ -1,3 +1,17 @@
+2018-10-04  Matt Lewis  <jlew...@apple.com>
+
+        Unreviewed, rolling out r236730.
+
+        This caused a consistent crash in test http/tests/media/media-
+        stream/get-display-media-prompt.html.
+
+        Reverted changeset:
+
+        "[MediaStream] RealtimeMediaSource should be able to vend
+        hashed IDs"
+        https://bugs.webkit.org/show_bug.cgi?id=190142
+        https://trac.webkit.org/changeset/236730
+
 2018-10-04  Brian Burg  <bb...@apple.com>
 
         Web Automation: clear pending callbacks when the session terminates

Modified: trunk/Source/WebKit/Shared/WebCoreArgumentCoders.cpp (236854 => 236855)


--- trunk/Source/WebKit/Shared/WebCoreArgumentCoders.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebKit/Shared/WebCoreArgumentCoders.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -2761,6 +2761,7 @@
 {
     encoder << constraint.mandatoryConstraints
         << constraint.advancedConstraints
+        << constraint.deviceIDHashSalt
         << constraint.isValid;
 }
 
@@ -2772,6 +2773,7 @@
         return false;
     constraints.mandatoryConstraints = WTFMove(*mandatoryConstraints);
     return decoder.decode(constraints.advancedConstraints)
+        && decoder.decode(constraints.deviceIDHashSalt)
         && decoder.decode(constraints.isValid);
 }
 #endif

Modified: trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp (236854 => 236855)


--- trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -125,15 +125,15 @@
     m_process.removeMessageReceiver(Messages::UserMediaCaptureManagerProxy::messageReceiverName());
 }
 
-void UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints(uint64_t id, const CaptureDevice& device, WebCore::RealtimeMediaSource::Type type, String&& hashSalt, const MediaConstraints& constraints, bool& succeeded, String& invalidConstraints, WebCore::RealtimeMediaSourceSettings& settings)
+void UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints(uint64_t id, const CaptureDevice& device, WebCore::RealtimeMediaSource::Type type, const MediaConstraints& constraints, bool& succeeded, String& invalidConstraints, WebCore::RealtimeMediaSourceSettings& settings)
 {
     CaptureSourceOrError sourceOrError;
     switch (type) {
     case WebCore::RealtimeMediaSource::Type::Audio:
-        sourceOrError = RealtimeMediaSourceCenter::singleton().audioFactory().createAudioCaptureSource(device, WTFMove(hashSalt), &constraints);
+        sourceOrError = RealtimeMediaSourceCenter::singleton().audioFactory().createAudioCaptureSource(device, &constraints);
         break;
     case WebCore::RealtimeMediaSource::Type::Video:
-        sourceOrError = RealtimeMediaSourceCenter::singleton().videoFactory().createVideoCaptureSource(device, WTFMove(hashSalt), &constraints);
+        sourceOrError = RealtimeMediaSourceCenter::singleton().videoFactory().createVideoCaptureSource(device, &constraints);
         break;
     case WebCore::RealtimeMediaSource::Type::None:
         ASSERT_NOT_REACHED();

Modified: trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h (236854 => 236855)


--- trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -49,7 +49,7 @@
     void didReceiveMessage(IPC::Connection&, IPC::Decoder&) final;
     void didReceiveSyncMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&) final;
 
-    void createMediaSourceForCaptureDeviceWithConstraints(uint64_t id, const WebCore::CaptureDevice& deviceID, WebCore::RealtimeMediaSource::Type, String&&, const WebCore::MediaConstraints&, bool& succeeded, String& invalidConstraints, WebCore::RealtimeMediaSourceSettings&);
+    void createMediaSourceForCaptureDeviceWithConstraints(uint64_t id, const WebCore::CaptureDevice& deviceID, WebCore::RealtimeMediaSource::Type, const WebCore::MediaConstraints&, bool& succeeded, String& invalidConstraints, WebCore::RealtimeMediaSourceSettings&);
     void startProducingData(uint64_t);
     void stopProducingData(uint64_t);
     void capabilities(uint64_t, WebCore::RealtimeMediaSourceCapabilities&);

Modified: trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in (236854 => 236855)


--- trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in	2018-10-04 22:25:04 UTC (rev 236855)
@@ -24,7 +24,7 @@
 #if ENABLE(MEDIA_STREAM)
 
 messages -> UserMediaCaptureManagerProxy {
-    CreateMediaSourceForCaptureDeviceWithConstraints(uint64_t id, WebCore::CaptureDevice device, WebCore::RealtimeMediaSource::Type type, String hashSalt, struct WebCore::MediaConstraints constraints) -> (bool success, String invalidConstraints, WebCore::RealtimeMediaSourceSettings settings)
+    CreateMediaSourceForCaptureDeviceWithConstraints(uint64_t id, WebCore::CaptureDevice device, WebCore::RealtimeMediaSource::Type type, struct WebCore::MediaConstraints constraints) -> (bool success, String invalidConstraints, WebCore::RealtimeMediaSourceSettings settings)
     StartProducingData(uint64_t id)
     StopProducingData(uint64_t id)
     Capabilities(uint64_t id) -> (WebCore::RealtimeMediaSourceCapabilities capabilities)

Modified: trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp (236854 => 236855)


--- trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -336,6 +336,9 @@
         if (!m_page.isValid())
             return;
         
+        localUserRequest.audioConstraints.deviceIDHashSalt = deviceIdentifierHashSalt;
+        localUserRequest.videoConstraints.deviceIDHashSalt = deviceIdentifierHashSalt;
+
         syncWithWebCorePrefs();
         
         RealtimeMediaSourceCenter::singleton().validateRequestConstraints(WTFMove(validHandler), WTFMove(invalidHandler), WTFMove(localUserRequest), WTFMove(deviceIdentifierHashSalt));

Modified: trunk/Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp (236854 => 236855)


--- trunk/Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp	2018-10-04 22:25:04 UTC (rev 236855)
@@ -51,8 +51,8 @@
 
 class UserMediaCaptureManager::Source : public RealtimeMediaSource {
 public:
-    Source(String&& sourceID, Type type, String&& name, String&& hashSalt, uint64_t id, UserMediaCaptureManager& manager)
-        : RealtimeMediaSource(type, WTFMove(name), WTFMove(sourceID), WTFMove(hashSalt))
+    Source(const String& sourceID, Type type, const String& name, uint64_t id, UserMediaCaptureManager& manager)
+        : RealtimeMediaSource(sourceID, type, name)
         , m_id(id)
         , m_manager(manager)
         , m_ringBuffer(makeUniqueRef<SharedRingBufferStorage>(nullptr))
@@ -177,7 +177,7 @@
         RealtimeMediaSourceCenter::singleton().setAudioFactory(*this);
 }
 
-WebCore::CaptureSourceOrError UserMediaCaptureManager::createCaptureSource(const CaptureDevice& device, WebCore::RealtimeMediaSource::Type sourceType, String&& hashSalt, const WebCore::MediaConstraints* constraints)
+WebCore::CaptureSourceOrError UserMediaCaptureManager::createCaptureSource(const CaptureDevice& device, WebCore::RealtimeMediaSource::Type sourceType, const WebCore::MediaConstraints* constraints)
 {
     if (!constraints)
         return { };
@@ -186,10 +186,10 @@
     RealtimeMediaSourceSettings settings;
     String errorMessage;
     bool succeeded;
-    if (!m_process.sendSync(Messages::UserMediaCaptureManagerProxy::CreateMediaSourceForCaptureDeviceWithConstraints(id, device, sourceType, hashSalt, *constraints), Messages::UserMediaCaptureManagerProxy::CreateMediaSourceForCaptureDeviceWithConstraints::Reply(succeeded, errorMessage, settings), 0))
+    if (!m_process.sendSync(Messages::UserMediaCaptureManagerProxy::CreateMediaSourceForCaptureDeviceWithConstraints(id, device, sourceType, *constraints), Messages::UserMediaCaptureManagerProxy::CreateMediaSourceForCaptureDeviceWithConstraints::Reply(succeeded, errorMessage, settings), 0))
         return WTFMove(errorMessage);
 
-    auto source = adoptRef(*new Source(String::number(id), sourceType, String { settings.label() }, WTFMove(hashSalt), id, *this));
+    auto source = adoptRef(*new Source(String::number(id), sourceType, settings.label(), id, *this));
     source->setSettings(WTFMove(settings));
     m_sources.set(id, source.copyRef());
     return WebCore::CaptureSourceOrError(WTFMove(source));

Modified: trunk/Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h (236854 => 236855)


--- trunk/Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h	2018-10-04 22:08:51 UTC (rev 236854)
+++ trunk/Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h	2018-10-04 22:25:04 UTC (rev 236855)
@@ -55,9 +55,9 @@
     void initialize(const WebProcessCreationParameters&) final;
 
     // WebCore::RealtimeMediaSource factories
-    WebCore::CaptureSourceOrError createAudioCaptureSource(const WebCore::CaptureDevice& device, String&& hashSalt, const WebCore::MediaConstraints* constraints) final { return createCaptureSource(device, WebCore::RealtimeMediaSource::Type::Audio, WTFMove(hashSalt), constraints); }
-    WebCore::CaptureSourceOrError createVideoCaptureSource(const WebCore::CaptureDevice& device, String&& hashSalt, const WebCore::MediaConstraints* constraints) final { return createCaptureSource(device, WebCore::RealtimeMediaSource::Type::Video, WTFMove(hashSalt), constraints); }
-    WebCore::CaptureSourceOrError createCaptureSource(const WebCore::CaptureDevice&, WebCore::RealtimeMediaSource::Type, String&&, const WebCore::MediaConstraints*);
+    WebCore::CaptureSourceOrError createAudioCaptureSource(const WebCore::CaptureDevice& device, const WebCore::MediaConstraints* constraints) final { return createCaptureSource(device, WebCore::RealtimeMediaSource::Type::Audio, constraints); }
+    WebCore::CaptureSourceOrError createVideoCaptureSource(const WebCore::CaptureDevice& device, const WebCore::MediaConstraints* constraints) final { return createCaptureSource(device, WebCore::RealtimeMediaSource::Type::Video, constraints); }
+    WebCore::CaptureSourceOrError createCaptureSource(const WebCore::CaptureDevice&, WebCore::RealtimeMediaSource::Type, const WebCore::MediaConstraints*);
 
     // IPC::MessageReceiver
     void didReceiveMessage(IPC::Connection&, IPC::Decoder&) final;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to