Diff
Modified: trunk/Source/WebCore/CMakeLists.txt (216917 => 216918)
--- trunk/Source/WebCore/CMakeLists.txt 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/CMakeLists.txt 2017-05-16 08:51:50 UTC (rev 216918)
@@ -944,7 +944,6 @@
Modules/mediasource/VideoPlaybackQuality.cpp
Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp
- Modules/mediastream/MediaConstraintsImpl.cpp
Modules/mediastream/MediaDeviceInfo.cpp
Modules/mediastream/MediaDevices.cpp
Modules/mediastream/MediaDevicesEnumerationRequest.cpp
Modified: trunk/Source/WebCore/ChangeLog (216917 => 216918)
--- trunk/Source/WebCore/ChangeLog 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/ChangeLog 2017-05-16 08:51:50 UTC (rev 216918)
@@ -1,3 +1,63 @@
+2017-05-16 Youenn Fablet <you...@apple.com>
+
+ Remove MediaConstraintsData and MediaConstraintsImpl
+ https://bugs.webkit.org/show_bug.cgi?id=172132
+
+ Reviewed by Eric Carlson.
+
+ No observable change of behavior.
+
+ Removing MediaConstraintsData and MediaConstraintsImpl allows simplifying the code.
+ Further simplified the code by making MediaConstraints no longer ref counted and now a struct.
+ Simplified some RealtimeMediaSource subclasses by removing unused MediaConstraints class members.
+
+ * CMakeLists.txt: Removing MediaConstraintsImpl.cpp.
+ * Modules/mediastream/MediaConstraintsImpl.cpp: Removed.
+ * Modules/mediastream/MediaConstraintsImpl.h: Removed.
+ * Modules/mediastream/MediaDevices.cpp:
+ (WebCore::createMediaConstraints):
+ (WebCore::MediaDevices::getUserMedia):
+ (WebCore::createMediaConstraintsImpl): Deleted.
+ * Modules/mediastream/MediaStreamTrack.cpp:
+ (WebCore::createMediaConstraints):
+ (WebCore::MediaStreamTrack::applyConstraints):
+ (WebCore::createMediaConstraintsImpl): Deleted.
+ * Modules/mediastream/MediaTrackConstraints.cpp:
+ (WebCore::createMediaConstraints):
+ (WebCore::createMediaConstraintsImpl): Deleted.
+ * Modules/mediastream/MediaTrackConstraints.h:
+ * Modules/mediastream/UserMediaRequest.cpp:
+ (WebCore::UserMediaRequest::start):
+ (WebCore::UserMediaRequest::UserMediaRequest):
+ (WebCore::UserMediaRequest::allow):
+ * Modules/mediastream/UserMediaRequest.h:
+ (WebCore::UserMediaRequest::audioConstraints):
+ (WebCore::UserMediaRequest::videoConstraints):
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/mediastream/MediaConstraints.cpp:
+ (WebCore::addDefaultVideoConstraints):
+ (WebCore::MediaConstraints::isConstraintSet):
+ (WebCore::MediaConstraints::setDefaultVideoConstraints):
+ * platform/mediastream/MediaConstraints.h:
+ (WebCore::MediaConstraints::~MediaConstraints): Deleted.
+ (WebCore::MediaConstraints::MediaConstraints): Deleted.
+ * platform/mediastream/MediaStreamConstraintsValidationClient.h:
+ * platform/mediastream/RealtimeMediaSource.cpp:
+ (WebCore::RealtimeMediaSource::selectSettings):
+ (WebCore::RealtimeMediaSource::supportsConstraints):
+ (WebCore::RealtimeMediaSource::applyConstraints):
+ * platform/mediastream/RealtimeMediaSourceCenter.cpp:
+ (WebCore::RealtimeMediaSourceCenter::validateRequestConstraints):
+ * platform/mediastream/RealtimeMediaSourceCenter.h:
+ * platform/mediastream/mac/RealtimeIncomingAudioSource.cpp:
+ (WebCore::RealtimeIncomingAudioSource::supportedConstraints): Deleted.
+ * platform/mediastream/mac/RealtimeIncomingAudioSource.h:
+ * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp:
+ (WebCore::RealtimeIncomingVideoSource::supportedConstraints): Deleted.
+ * platform/mediastream/mac/RealtimeIncomingVideoSource.h:
+ * platform/mock/MockRealtimeMediaSource.h:
+ (WebCore::MockRealtimeMediaSource::constraints): Deleted.
+
2017-05-16 Andy Estes <aes...@apple.com>
[Cocoa] Tell NEFilterSource about the presenting app's PID
Deleted: trunk/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.cpp (216917 => 216918)
--- trunk/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- * 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.
- * 3. Neither the name of Google Inc. nor the names of its contributors
- * may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "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 THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(MEDIA_STREAM)
-
-#include "MediaConstraintsImpl.h"
-
-namespace WebCore {
-
-static inline void addDefaultVideoConstraints(MediaTrackConstraintSetMap& videoConstraints, bool addFrameRateConstraint, bool addSizeConstraint, bool addFacingModeConstraint)
-{
- if (addFrameRateConstraint) {
- DoubleConstraint frameRateConstraint({ }, MediaConstraintType::FrameRate);
- frameRateConstraint.setIdeal(30);
- videoConstraints.set(MediaConstraintType::FrameRate, WTFMove(frameRateConstraint));
- }
- if (addSizeConstraint) {
- IntConstraint widthConstraint({ }, MediaConstraintType::Width);
- widthConstraint.setIdeal(640);
- videoConstraints.set(MediaConstraintType::Width, WTFMove(widthConstraint));
-
- IntConstraint heightConstraint({ }, MediaConstraintType::Height);
- heightConstraint.setIdeal(480);
- videoConstraints.set(MediaConstraintType::Height, WTFMove(heightConstraint));
- }
- if (addFacingModeConstraint) {
- StringConstraint facingModeConstraint({ }, MediaConstraintType::FacingMode);
- facingModeConstraint.setIdeal(ASCIILiteral("user"));
- videoConstraints.set(MediaConstraintType::FacingMode, WTFMove(facingModeConstraint));
- }
-}
-
-bool MediaConstraintsData::isConstraintSet(std::function<bool(const MediaTrackConstraintSetMap&)>&& callback)
-{
- if (callback(mandatoryConstraints))
- return true;
-
- for (const auto& constraint : advancedConstraints) {
- if (callback(constraint))
- return true;
- }
- return false;
-}
-
-void MediaConstraintsData::setDefaultVideoConstraints()
-{
- // 640x480, 30fps, font-facing camera
- bool hasFrameRateConstraints = isConstraintSet([](const MediaTrackConstraintSetMap& constraint) {
- return !!constraint.frameRate();
- });
-
- bool hasSizeConstraints = isConstraintSet([](const MediaTrackConstraintSetMap& constraint) {
- return !!constraint.width() || !!constraint.height();
- });
-
- bool hasFacingModeConstraints = isConstraintSet([](const MediaTrackConstraintSetMap& constraint) {
- return !!constraint.facingMode();
- });
-
- if (hasFrameRateConstraints && hasSizeConstraints && hasFacingModeConstraints)
- return;
-
- addDefaultVideoConstraints(mandatoryConstraints, !hasFrameRateConstraints, !hasSizeConstraints, !hasFacingModeConstraints);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
Deleted: trunk/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h (216917 => 216918)
--- trunk/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h 2017-05-16 08:51:50 UTC (rev 216918)
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name of Google Inc. nor the names of its contributors
- * may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "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 THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#if ENABLE(MEDIA_STREAM)
-
-#include "ExceptionBase.h"
-#include "MediaConstraints.h"
-#include <wtf/Vector.h>
-
-namespace WebCore {
-
-struct MediaConstraintsData {
- MediaConstraintsData() = default;
- MediaConstraintsData(MediaTrackConstraintSetMap&& mandatoryConstraints, Vector<MediaTrackConstraintSetMap>&& advancedConstraints, bool isValid)
- : mandatoryConstraints(WTFMove(mandatoryConstraints))
- , advancedConstraints(WTFMove(advancedConstraints))
- , isValid(isValid)
- {
- }
- MediaConstraintsData(const MediaConstraintsData& constraints, const String& hashSalt)
- : mandatoryConstraints(constraints.mandatoryConstraints)
- , advancedConstraints(constraints.advancedConstraints)
- , deviceIDHashSalt(hashSalt)
- , isValid(constraints.isValid)
- {
- }
- MediaConstraintsData(const MediaConstraints& constraints)
- : mandatoryConstraints(constraints.mandatoryConstraints())
- , advancedConstraints(constraints.advancedConstraints())
- , deviceIDHashSalt(constraints.deviceIDHashSalt())
- , isValid(constraints.isValid())
- {
- }
-
- void setDefaultVideoConstraints();
- bool isConstraintSet(std::function<bool(const MediaTrackConstraintSetMap&)>&&);
-
- MediaTrackConstraintSetMap mandatoryConstraints;
- Vector<MediaTrackConstraintSetMap> advancedConstraints;
- String deviceIDHashSalt;
- bool isValid { false };
-};
-
-class MediaConstraintsImpl final : public MediaConstraints {
-public:
- static Ref<MediaConstraintsImpl> create(MediaTrackConstraintSetMap&& mandatoryConstraints, Vector<MediaTrackConstraintSetMap>&& advancedConstraints, bool isValid) { return create(MediaConstraintsData(WTFMove(mandatoryConstraints), WTFMove(advancedConstraints), isValid)); }
- static Ref<MediaConstraintsImpl> create(MediaConstraintsData&& data) { return adoptRef(*new MediaConstraintsImpl(WTFMove(data))); }
-
- MediaConstraintsImpl() = default;
- virtual ~MediaConstraintsImpl() = default;
-
- const MediaTrackConstraintSetMap& mandatoryConstraints() const final { return m_data.mandatoryConstraints; }
- const Vector<MediaTrackConstraintSetMap>& advancedConstraints() const final { return m_data.advancedConstraints; }
- bool isValid() const final { return m_data.isValid; }
-
- const String& deviceIDHashSalt() const final { return m_data.deviceIDHashSalt; }
- void setDeviceIDHashSalt(const String& salt) final { m_data.deviceIDHashSalt = salt; }
-
- const MediaConstraintsData& data() const { return m_data; }
- void setDefaultVideoConstraints() { m_data.setDefaultVideoConstraints(); }
-
-private:
- WEBCORE_EXPORT explicit MediaConstraintsImpl(MediaConstraintsData&& data) : m_data(WTFMove(data)) { }
-
- MediaConstraintsData m_data;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
Modified: trunk/Source/WebCore/Modules/mediastream/MediaDevices.cpp (216917 => 216918)
--- trunk/Source/WebCore/Modules/mediastream/MediaDevices.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/Modules/mediastream/MediaDevices.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -37,7 +37,6 @@
#include "Document.h"
#include "Event.h"
#include "EventNames.h"
-#include "MediaConstraintsImpl.h"
#include "MediaDevicesRequest.h"
#include "MediaTrackSupportedConstraints.h"
#include "UserMediaRequest.h"
@@ -78,14 +77,16 @@
return downcast<Document>(scriptExecutionContext());
}
-static Ref<MediaConstraintsImpl> createMediaConstraintsImpl(const Variant<bool, MediaTrackConstraints>& constraints)
+static MediaConstraints createMediaConstraints(const Variant<bool, MediaTrackConstraints>& constraints)
{
return WTF::switchOn(constraints,
- [&] (bool constraints) {
- return MediaConstraintsImpl::create({ }, { }, constraints);
+ [&] (bool isValid) {
+ MediaConstraints constraints;
+ constraints.isValid = isValid;
+ return constraints;
},
- [&] (const MediaTrackConstraints& constraints) {
- return createMediaConstraintsImpl(constraints);
+ [&] (const MediaTrackConstraints& trackConstraints) {
+ return createMediaConstraints(trackConstraints);
}
);
}
@@ -96,10 +97,10 @@
if (!document)
return Exception { INVALID_STATE_ERR };
- auto audioConstraints = createMediaConstraintsImpl(constraints.audio);
- auto videoConstraints = createMediaConstraintsImpl(constraints.video);
- if (videoConstraints->isValid())
- videoConstraints->setDefaultVideoConstraints();
+ auto audioConstraints = createMediaConstraints(constraints.audio);
+ auto videoConstraints = createMediaConstraints(constraints.video);
+ if (videoConstraints.isValid)
+ videoConstraints.setDefaultVideoConstraints();
return UserMediaRequest::start(*document, WTFMove(audioConstraints), WTFMove(videoConstraints), WTFMove(promise));
}
Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp (216917 => 216918)
--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -33,7 +33,7 @@
#include "Event.h"
#include "EventNames.h"
#include "JSOverconstrainedError.h"
-#include "MediaConstraintsImpl.h"
+#include "MediaConstraints.h"
#include "MediaStream.h"
#include "MediaStreamPrivate.h"
#include "NotImplemented.h"
@@ -246,11 +246,14 @@
return result;
}
-static Ref<MediaConstraintsImpl> createMediaConstraintsImpl(const std::optional<MediaTrackConstraints>& constraints)
+static MediaConstraints createMediaConstraints(const std::optional<MediaTrackConstraints>& constraints)
{
- if (!constraints)
- return MediaConstraintsImpl::create({ }, { }, true);
- return createMediaConstraintsImpl(constraints.value());
+ if (!constraints) {
+ MediaConstraints validConstraints;
+ validConstraints.isValid = true;
+ return validConstraints;
+ }
+ return createMediaConstraints(constraints.value());
}
void MediaStreamTrack::applyConstraints(const std::optional<MediaTrackConstraints>& constraints, DOMPromiseDeferred<void>&& promise)
@@ -269,7 +272,7 @@
weakThis->m_promise->resolve();
weakThis->m_constraints = constraints.value_or(MediaTrackConstraints { });
};
- m_private->applyConstraints(createMediaConstraintsImpl(constraints), WTFMove(successHandler), WTFMove(failureHandler));
+ m_private->applyConstraints(createMediaConstraints(constraints), WTFMove(successHandler), WTFMove(failureHandler));
}
void MediaStreamTrack::addObserver(Observer& observer)
Modified: trunk/Source/WebCore/Modules/mediastream/MediaTrackConstraints.cpp (216917 => 216918)
--- trunk/Source/WebCore/Modules/mediastream/MediaTrackConstraints.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/Modules/mediastream/MediaTrackConstraints.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -27,7 +27,7 @@
#if ENABLE(MEDIA_STREAM)
-#include "MediaConstraintsImpl.h"
+#include "MediaConstraints.h"
namespace WebCore {
@@ -190,9 +190,13 @@
return convertAdvancedToInternalForm(optionalVector.value());
}
-Ref<MediaConstraintsImpl> createMediaConstraintsImpl(const MediaTrackConstraints& constraints)
+MediaConstraints createMediaConstraints(const MediaTrackConstraints& trackConstraints)
{
- return MediaConstraintsImpl::create(convertToInternalForm(ConstraintSetType::Mandatory, constraints), convertAdvancedToInternalForm(constraints.advanced), true);
+ MediaConstraints constraints;
+ constraints.mandatoryConstraints = convertToInternalForm(ConstraintSetType::Mandatory, trackConstraints);
+ constraints.advancedConstraints = convertAdvancedToInternalForm(trackConstraints.advanced);
+ constraints.isValid = true;
+ return constraints;
}
}
Modified: trunk/Source/WebCore/Modules/mediastream/MediaTrackConstraints.h (216917 => 216918)
--- trunk/Source/WebCore/Modules/mediastream/MediaTrackConstraints.h 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/Modules/mediastream/MediaTrackConstraints.h 2017-05-16 08:51:50 UTC (rev 216918)
@@ -34,7 +34,7 @@
namespace WebCore {
-class MediaConstraintsImpl;
+struct MediaConstraints;
struct ConstrainBooleanParameters {
std::optional<bool> exact;
@@ -79,7 +79,7 @@
std::optional<Vector<MediaTrackConstraintSet>> advanced;
};
-Ref<MediaConstraintsImpl> createMediaConstraintsImpl(const MediaTrackConstraints&);
+MediaConstraints createMediaConstraints(const MediaTrackConstraints&);
}
Modified: trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp (216917 => 216918)
--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -42,7 +42,7 @@
#include "JSMediaStream.h"
#include "JSOverconstrainedError.h"
#include "MainFrame.h"
-#include "MediaConstraintsImpl.h"
+#include "MediaConstraints.h"
#include "RealtimeMediaSourceCenter.h"
#include "Settings.h"
#include "UserMediaController.h"
@@ -49,13 +49,13 @@
namespace WebCore {
-ExceptionOr<void> UserMediaRequest::start(Document& document, Ref<MediaConstraintsImpl>&& audioConstraints, Ref<MediaConstraintsImpl>&& videoConstraints, DOMPromiseDeferred<IDLInterface<MediaStream>>&& promise)
+ExceptionOr<void> UserMediaRequest::start(Document& document, MediaConstraints&& audioConstraints, MediaConstraints&& videoConstraints, DOMPromiseDeferred<IDLInterface<MediaStream>>&& promise)
{
auto* userMedia = UserMediaController::from(document.page());
if (!userMedia)
return Exception { NOT_SUPPORTED_ERR }; // FIXME: Why is it better to return an exception here instead of rejecting the promise as we do just below?
- if (!audioConstraints->isValid() && !videoConstraints->isValid()) {
+ if (!audioConstraints.isValid && !videoConstraints.isValid) {
promise.reject(TypeError);
return { };
}
@@ -64,7 +64,7 @@
return { };
}
-UserMediaRequest::UserMediaRequest(Document& document, UserMediaController& controller, Ref<MediaConstraintsImpl>&& audioConstraints, Ref<MediaConstraintsImpl>&& videoConstraints, DOMPromiseDeferred<IDLInterface<MediaStream>>&& promise)
+UserMediaRequest::UserMediaRequest(Document& document, UserMediaController& controller, MediaConstraints&& audioConstraints, MediaConstraints&& videoConstraints, DOMPromiseDeferred<IDLInterface<MediaStream>>&& promise)
: ContextDestructionObserver(&document)
, m_audioConstraints(WTFMove(audioConstraints))
, m_videoConstraints(WTFMove(videoConstraints))
@@ -180,10 +180,10 @@
m_promise.resolve(stream);
};
- m_audioConstraints->setDeviceIDHashSalt(String(deviceIdentifierHashSalt));
- m_videoConstraints->setDeviceIDHashSalt(WTFMove(deviceIdentifierHashSalt));
+ m_audioConstraints.deviceIDHashSalt = deviceIdentifierHashSalt;
+ m_videoConstraints.deviceIDHashSalt = WTFMove(deviceIdentifierHashSalt);
- RealtimeMediaSourceCenter::singleton().createMediaStream(WTFMove(callback), m_allowedAudioDeviceUID, m_allowedVideoDeviceUID, &m_audioConstraints.get(), &m_videoConstraints.get());
+ RealtimeMediaSourceCenter::singleton().createMediaStream(WTFMove(callback), m_allowedAudioDeviceUID, m_allowedVideoDeviceUID, &m_audioConstraints, &m_videoConstraints);
}
void UserMediaRequest::deny(MediaAccessDenialReason reason, const String& invalidConstraint)
Modified: trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h (216917 => 216918)
--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h 2017-05-16 08:51:50 UTC (rev 216918)
@@ -36,10 +36,10 @@
#include "ActiveDOMObject.h"
#include "JSDOMPromiseDeferred.h"
+#include "MediaConstraints.h"
namespace WebCore {
-class MediaConstraintsImpl;
class MediaStream;
class SecurityOrigin;
class UserMediaController;
@@ -46,7 +46,7 @@
class UserMediaRequest : public RefCounted<UserMediaRequest>, private ContextDestructionObserver {
public:
- static ExceptionOr<void> start(Document&, Ref<MediaConstraintsImpl>&& audioConstraints, Ref<MediaConstraintsImpl>&& videoConstraints, DOMPromiseDeferred<IDLInterface<MediaStream>>&&);
+ static ExceptionOr<void> start(Document&, MediaConstraints&& audioConstraints, MediaConstraints&& videoConstraints, DOMPromiseDeferred<IDLInterface<MediaStream>>&&);
virtual ~UserMediaRequest();
@@ -61,8 +61,8 @@
const Vector<String>& audioDeviceUIDs() const { return m_audioDeviceUIDs; }
const Vector<String>& videoDeviceUIDs() const { return m_videoDeviceUIDs; }
- const MediaConstraintsImpl& audioConstraints() const { return m_audioConstraints; }
- const MediaConstraintsImpl& videoConstraints() const { return m_videoConstraints; }
+ const MediaConstraints& audioConstraints() const { return m_audioConstraints; }
+ const MediaConstraints& videoConstraints() const { return m_videoConstraints; }
const String& allowedAudioDeviceUID() const { return m_allowedAudioDeviceUID; }
const String& allowedVideoDeviceUID() const { return m_allowedVideoDeviceUID; }
@@ -72,12 +72,12 @@
WEBCORE_EXPORT Document* document() const;
private:
- UserMediaRequest(Document&, UserMediaController&, Ref<MediaConstraintsImpl>&& audioConstraints, Ref<MediaConstraintsImpl>&& videoConstraints, DOMPromiseDeferred<IDLInterface<MediaStream>>&&);
+ UserMediaRequest(Document&, UserMediaController&, MediaConstraints&& audioConstraints, MediaConstraints&& videoConstraints, DOMPromiseDeferred<IDLInterface<MediaStream>>&&);
void contextDestroyed() final;
- Ref<MediaConstraintsImpl> m_audioConstraints;
- Ref<MediaConstraintsImpl> m_videoConstraints;
+ MediaConstraints m_audioConstraints;
+ MediaConstraints m_videoConstraints;
Vector<String> m_videoDeviceUIDs;
Vector<String> m_audioDeviceUIDs;
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (216917 => 216918)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2017-05-16 08:51:50 UTC (rev 216918)
@@ -179,7 +179,6 @@
07846385145B1B8E00A58DF1 /* JSTrackCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = 07846384145B1B8E00A58DF1 /* JSTrackCustom.h */; };
0787C4691BFBDF6F006DCD7F /* JSMediaTrackSupportedConstraints.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0787C4671BFBDF6F006DCD7F /* JSMediaTrackSupportedConstraints.cpp */; };
0787C46A1BFBDF6F006DCD7F /* JSMediaTrackSupportedConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 0787C4681BFBDF6F006DCD7F /* JSMediaTrackSupportedConstraints.h */; };
- 078E08FE17D14CEE00420AA1 /* MediaConstraintsImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07221B4A17CEC32700848E51 /* MediaConstraintsImpl.cpp */; };
078E08FF17D14CEE00420AA1 /* MediaStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07221B4C17CEC32700848E51 /* MediaStream.cpp */; };
078E090017D14CEE00420AA1 /* MediaStreamEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07221B4F17CEC32700848E51 /* MediaStreamEvent.cpp */; };
078E090117D14CEE00420AA1 /* MediaStreamRegistry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07221B5217CEC32700848E51 /* MediaStreamRegistry.cpp */; };
@@ -195,7 +194,6 @@
078E090C17D14CEE00420AA1 /* RTCSessionDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07221B7A17CEC32700848E51 /* RTCSessionDescription.cpp */; };
078E091217D14CEE00420AA1 /* UserMediaController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07221B8E17CEC32700848E51 /* UserMediaController.cpp */; };
078E091317D14CEE00420AA1 /* UserMediaRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07221B9017CEC32700848E51 /* UserMediaRequest.cpp */; };
- 078E091417D14D1C00420AA1 /* MediaConstraintsImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B4B17CEC32700848E51 /* MediaConstraintsImpl.h */; settings = {ATTRIBUTES = (Private, ); }; };
078E091517D14D1C00420AA1 /* MediaStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B4D17CEC32700848E51 /* MediaStream.h */; };
078E091617D14D1C00420AA1 /* MediaStreamEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B5017CEC32700848E51 /* MediaStreamEvent.h */; };
078E091717D14D1C00420AA1 /* MediaStreamRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B5317CEC32700848E51 /* MediaStreamRegistry.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -7438,8 +7436,6 @@
071E496F1AD5AB5E008A50B4 /* MediaPlaybackTargetMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaPlaybackTargetMac.h; sourceTree = "<group>"; };
0720B09E14D3323500642955 /* GenericEventQueue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GenericEventQueue.cpp; sourceTree = "<group>"; };
0720B09F14D3323500642955 /* GenericEventQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenericEventQueue.h; sourceTree = "<group>"; };
- 07221B4A17CEC32700848E51 /* MediaConstraintsImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaConstraintsImpl.cpp; sourceTree = "<group>"; };
- 07221B4B17CEC32700848E51 /* MediaConstraintsImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaConstraintsImpl.h; sourceTree = "<group>"; };
07221B4C17CEC32700848E51 /* MediaStream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStream.cpp; sourceTree = "<group>"; };
07221B4D17CEC32700848E51 /* MediaStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStream.h; sourceTree = "<group>"; };
07221B4E17CEC32700848E51 /* MediaStream.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaStream.idl; sourceTree = "<group>"; };
@@ -15961,8 +15957,6 @@
93A806121E03B51C008A1F26 /* DoubleRange.idl */,
93A806131E03B51C008A1F26 /* LongRange.h */,
93A806141E03B51C008A1F26 /* LongRange.idl */,
- 07221B4A17CEC32700848E51 /* MediaConstraintsImpl.cpp */,
- 07221B4B17CEC32700848E51 /* MediaConstraintsImpl.h */,
159AE82A1B3A402F0037478B /* MediaDeviceInfo.cpp */,
15145B8F1B3A1B3E00662BF7 /* MediaDeviceInfo.h */,
15145B911B3A1D4C00662BF7 /* MediaDeviceInfo.idl */,
@@ -28405,7 +28399,6 @@
5CBC8DAD1AAA302200E1C803 /* MediaAccessibilitySoftLink.h in Headers */,
931BCC611124DFCB00BE70DD /* MediaCanStartListener.h in Headers */,
078E093A17D16E1C00420AA1 /* MediaConstraints.h in Headers */,
- 078E091417D14D1C00420AA1 /* MediaConstraintsImpl.h in Headers */,
417253AB1354BBBC00360F2A /* MediaControlElements.h in Headers */,
DEBCCDD416646EAF00A452E1 /* MediaControlElementTypes.h in Headers */,
CDF65CC8145B1E7500C4C7AA /* MediaController.h in Headers */,
@@ -32418,7 +32411,6 @@
49E911C60EF86D47009D0CAF /* MatrixTransformOperation.cpp in Sources */,
5CBC8DAC1AAA302200E1C803 /* MediaAccessibilitySoftLink.cpp in Sources */,
1BE5BFC21D515715001666D9 /* MediaConstraints.cpp in Sources */,
- 078E08FE17D14CEE00420AA1 /* MediaConstraintsImpl.cpp in Sources */,
417253AA1354BBBC00360F2A /* MediaControlElements.cpp in Sources */,
DEBCCDD516646EB200A452E1 /* MediaControlElementTypes.cpp in Sources */,
CD27F6E7145770D30078207D /* MediaController.cpp in Sources */,
Modified: trunk/Source/WebCore/platform/mediastream/MediaConstraints.cpp (216917 => 216918)
--- trunk/Source/WebCore/platform/mediastream/MediaConstraints.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/platform/mediastream/MediaConstraints.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -340,6 +340,62 @@
return !size();
}
+static inline void addDefaultVideoConstraints(MediaTrackConstraintSetMap& videoConstraints, bool addFrameRateConstraint, bool addSizeConstraint, bool addFacingModeConstraint)
+{
+ if (addFrameRateConstraint) {
+ DoubleConstraint frameRateConstraint({ }, MediaConstraintType::FrameRate);
+ frameRateConstraint.setIdeal(30);
+ videoConstraints.set(MediaConstraintType::FrameRate, WTFMove(frameRateConstraint));
+ }
+ if (addSizeConstraint) {
+ IntConstraint widthConstraint({ }, MediaConstraintType::Width);
+ widthConstraint.setIdeal(640);
+ videoConstraints.set(MediaConstraintType::Width, WTFMove(widthConstraint));
+
+ IntConstraint heightConstraint({ }, MediaConstraintType::Height);
+ heightConstraint.setIdeal(480);
+ videoConstraints.set(MediaConstraintType::Height, WTFMove(heightConstraint));
+ }
+ if (addFacingModeConstraint) {
+ StringConstraint facingModeConstraint({ }, MediaConstraintType::FacingMode);
+ facingModeConstraint.setIdeal(ASCIILiteral("user"));
+ videoConstraints.set(MediaConstraintType::FacingMode, WTFMove(facingModeConstraint));
+ }
}
+bool MediaConstraints::isConstraintSet(std::function<bool(const MediaTrackConstraintSetMap&)>&& callback)
+{
+ if (callback(mandatoryConstraints))
+ return true;
+
+ for (const auto& constraint : advancedConstraints) {
+ if (callback(constraint))
+ return true;
+ }
+ return false;
+}
+
+void MediaConstraints::setDefaultVideoConstraints()
+{
+ // 640x480, 30fps, font-facing camera
+ bool hasFrameRateConstraints = isConstraintSet([](const MediaTrackConstraintSetMap& constraint) {
+ return !!constraint.frameRate();
+ });
+
+ bool hasSizeConstraints = isConstraintSet([](const MediaTrackConstraintSetMap& constraint) {
+ return !!constraint.width() || !!constraint.height();
+ });
+
+ bool hasFacingModeConstraints = isConstraintSet([](const MediaTrackConstraintSetMap& constraint) {
+ return !!constraint.facingMode();
+ });
+
+ if (hasFrameRateConstraints && hasSizeConstraints && hasFacingModeConstraints)
+ return;
+
+ addDefaultVideoConstraints(mandatoryConstraints, !hasFrameRateConstraints, !hasSizeConstraints, !hasFacingModeConstraints);
+}
+
+}
+
#endif // ENABLE(MEDIA_STREAM)
Modified: trunk/Source/WebCore/platform/mediastream/MediaConstraints.h (216917 => 216918)
--- trunk/Source/WebCore/platform/mediastream/MediaConstraints.h 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/platform/mediastream/MediaConstraints.h 2017-05-16 08:51:50 UTC (rev 216918)
@@ -35,9 +35,10 @@
#include "RealtimeMediaSourceSupportedConstraints.h"
#include <cstdlib>
+#include <wtf/Vector.h>
namespace WebCore {
-
+
class MediaConstraint {
public:
enum class DataType { None, Integer, Double, Boolean, String };
@@ -803,21 +804,16 @@
#endif
};
-class MediaConstraints : public RefCounted<MediaConstraints> {
-public:
- virtual ~MediaConstraints() { }
+struct MediaConstraints {
+ void setDefaultVideoConstraints();
+ bool isConstraintSet(std::function<bool(const MediaTrackConstraintSetMap&)>&&);
- virtual const MediaTrackConstraintSetMap& mandatoryConstraints() const = 0;
- virtual const Vector<MediaTrackConstraintSetMap>& advancedConstraints() const = 0;
- virtual bool isValid() const = 0;
-
- virtual const String& deviceIDHashSalt() const = 0;
- virtual void setDeviceIDHashSalt(const String&) = 0;
-
-protected:
- MediaConstraints() { }
+ MediaTrackConstraintSetMap mandatoryConstraints;
+ Vector<MediaTrackConstraintSetMap> advancedConstraints;
+ String deviceIDHashSalt;
+ bool isValid { false };
};
-
+
} // namespace WebCore
#define SPECIALIZE_TYPE_TRAITS_MEDIACONSTRAINT(ConstraintType, predicate) \
Modified: trunk/Source/WebCore/platform/mediastream/MediaStreamConstraintsValidationClient.h (216917 => 216918)
--- trunk/Source/WebCore/platform/mediastream/MediaStreamConstraintsValidationClient.h 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/platform/mediastream/MediaStreamConstraintsValidationClient.h 2017-05-16 08:51:50 UTC (rev 216918)
@@ -23,8 +23,7 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef MediaStreamConstraintsValidationClient_h
-#define MediaStreamConstraintsValidationClient_h
+#pragma once
#if ENABLE(MEDIA_STREAM)
@@ -33,8 +32,6 @@
namespace WebCore {
-class MediaConstraints;
-
class MediaStreamConstraintsValidationClient : public RefCounted<MediaStreamConstraintsValidationClient> {
public:
virtual ~MediaStreamConstraintsValidationClient() { }
@@ -46,5 +43,3 @@
} // namespace WebCore
#endif // ENABLE(MEDIA_STREAM)
-
-#endif // MediaStreamConstraintsValidationClient_h
Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp (216917 => 216918)
--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -526,12 +526,12 @@
failedConstraint = emptyString();
- // Check width, height, and frame rate separately, because while they may be supported individually the combination may not be supported.
+ // Check width, height and frame rate jointly, because while they may be supported individually the combination may not be supported.
double distance = std::numeric_limits<double>::infinity();
- if (!supportsSizeAndFrameRate(constraints.mandatoryConstraints().width(), constraints.mandatoryConstraints().height(), constraints.mandatoryConstraints().frameRate(), failedConstraint, m_fitnessScore))
+ if (!supportsSizeAndFrameRate(constraints.mandatoryConstraints.width(), constraints.mandatoryConstraints.height(), constraints.mandatoryConstraints.frameRate(), failedConstraint, m_fitnessScore))
return false;
- constraints.mandatoryConstraints().filter([&](const MediaConstraint& constraint) {
+ constraints.mandatoryConstraints.filter([&](const MediaConstraint& constraint) {
if (!supportsConstraint(constraint))
return false;
@@ -548,9 +548,9 @@
return false;
ASSERT(constraint.isString());
- ASSERT(!constraints.deviceIDHashSalt().isEmpty());
+ ASSERT(!constraints.deviceIDHashSalt.isEmpty());
- auto hashedID = RealtimeMediaSourceCenter::singleton().hashStringWithSalt(m_persistentID, constraints.deviceIDHashSalt());
+ auto hashedID = RealtimeMediaSourceCenter::singleton().hashStringWithSalt(m_persistentID, constraints.deviceIDHashSalt);
double constraintDistance = downcast<StringConstraint>(constraint).fitnessDistance(hashedID);
if (std::isinf(constraintDistance)) {
failedConstraint = constraint.name();
@@ -587,7 +587,7 @@
// values of properties as exact.
Vector<std::pair<double, MediaTrackConstraintSetMap>> supportedConstraints;
- for (const auto& advancedConstraint : constraints.advancedConstraints()) {
+ for (const auto& advancedConstraint : constraints.advancedConstraints) {
double constraintDistance = 0;
bool supported = false;
@@ -697,7 +697,7 @@
bool RealtimeMediaSource::supportsConstraints(const MediaConstraints& constraints, String& invalidConstraint)
{
- ASSERT(constraints.isValid());
+ ASSERT(constraints.isValid);
FlattenedConstraint candidates;
if (!selectSettings(constraints, candidates, invalidConstraint, SelectType::ForSupportsConstraints))
@@ -759,7 +759,7 @@
std::optional<std::pair<String, String>> RealtimeMediaSource::applyConstraints(const MediaConstraints& constraints)
{
- ASSERT(constraints.isValid());
+ ASSERT(constraints.isValid);
FlattenedConstraint candidates;
String failedConstraint;
Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp (216917 => 216918)
--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -230,11 +230,11 @@
String invalidConstraint;
CaptureSourceOrError sourceOrError;
- if (device.type() == CaptureDevice::DeviceType::Video && videoConstraints.isValid()) {
+ if (device.type() == CaptureDevice::DeviceType::Video && videoConstraints.isValid) {
auto sourceOrError = videoFactory().createVideoCaptureSource(device.persistentId(), nullptr);
if (sourceOrError && sourceOrError.captureSource->supportsConstraints(videoConstraints, invalidConstraint))
videoDeviceInfo.append({sourceOrError.captureSource->fitnessScore(), device.persistentId()});
- } else if (device.type() == CaptureDevice::DeviceType::Audio && audioConstraints.isValid()) {
+ } else if (device.type() == CaptureDevice::DeviceType::Audio && audioConstraints.isValid) {
auto sourceOrError = audioFactory().createAudioCaptureSource(device.persistentId(), nullptr);
if (sourceOrError && sourceOrError.captureSource->supportsConstraints(audioConstraints, invalidConstraint))
audioDeviceInfo.append({sourceOrError.captureSource->fitnessScore(), device.persistentId()});
@@ -244,7 +244,7 @@
firstInvalidConstraint = invalidConstraint;
}
- if ((audioConstraints.isValid() && audioDeviceInfo.isEmpty()) || (videoConstraints.isValid() && videoDeviceInfo.isEmpty())) {
+ if ((audioConstraints.isValid && audioDeviceInfo.isEmpty()) || (videoConstraints.isValid && videoDeviceInfo.isEmpty())) {
invalidHandler(firstInvalidConstraint);
return;
}
Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h (216917 => 216918)
--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h 2017-05-16 08:51:50 UTC (rev 216918)
@@ -44,11 +44,12 @@
class CaptureDevice;
class CaptureDeviceManager;
-class MediaConstraints;
class RealtimeMediaSourceSettings;
class RealtimeMediaSourceSupportedConstraints;
class TrackSourceInfo;
+struct MediaConstraints;
+
class RealtimeMediaSourceCenter {
public:
virtual ~RealtimeMediaSourceCenter();
Modified: trunk/Source/WebCore/platform/mediastream/mac/RealtimeIncomingAudioSource.cpp (216917 => 216918)
--- trunk/Source/WebCore/platform/mediastream/mac/RealtimeIncomingAudioSource.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/platform/mediastream/mac/RealtimeIncomingAudioSource.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -144,11 +144,6 @@
return m_currentSettings;
}
-RealtimeMediaSourceSupportedConstraints& RealtimeIncomingAudioSource::supportedConstraints()
-{
- return m_supportedConstraints;
-}
-
AudioSourceProvider* RealtimeIncomingAudioSource::audioSourceProvider()
{
if (!m_audioSourceProvider) {
Modified: trunk/Source/WebCore/platform/mediastream/mac/RealtimeIncomingAudioSource.h (216917 => 216918)
--- trunk/Source/WebCore/platform/mediastream/mac/RealtimeIncomingAudioSource.h 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/platform/mediastream/mac/RealtimeIncomingAudioSource.h 2017-05-16 08:51:50 UTC (rev 216918)
@@ -64,14 +64,9 @@
const RealtimeMediaSourceCapabilities& capabilities() const final;
const RealtimeMediaSourceSettings& settings() const final;
- MediaConstraints& constraints() { return *m_constraints.get(); }
- RealtimeMediaSourceSupportedConstraints& supportedConstraints();
-
AudioSourceProvider* audioSourceProvider() final;
RealtimeMediaSourceSettings m_currentSettings;
- RealtimeMediaSourceSupportedConstraints m_supportedConstraints;
- RefPtr<MediaConstraints> m_constraints;
rtc::scoped_refptr<webrtc::AudioTrackInterface> m_audioTrack;
RefPtr<WebAudioSourceProviderAVFObjC> m_audioSourceProvider;
Modified: trunk/Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.cpp (216917 => 216918)
--- trunk/Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -209,11 +209,6 @@
return m_currentSettings;
}
-RealtimeMediaSourceSupportedConstraints& RealtimeIncomingVideoSource::supportedConstraints()
-{
- return m_supportedConstraints;
-}
-
} // namespace WebCore
#endif // USE(LIBWEBRTC)
Modified: trunk/Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.h (216917 => 216918)
--- trunk/Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.h 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.h 2017-05-16 08:51:50 UTC (rev 216918)
@@ -61,9 +61,6 @@
const RealtimeMediaSourceCapabilities& capabilities() const final;
const RealtimeMediaSourceSettings& settings() const final;
- MediaConstraints& constraints() { return *m_constraints.get(); }
- RealtimeMediaSourceSupportedConstraints& supportedConstraints();
-
void processNewSample(CMSampleBufferRef, unsigned, unsigned, MediaSample::VideoRotation);
bool applySize(const IntSize&) final { return true; }
@@ -75,8 +72,6 @@
RefPtr<Image> m_currentImage;
RealtimeMediaSourceSettings m_currentSettings;
- RealtimeMediaSourceSupportedConstraints m_supportedConstraints;
- RefPtr<MediaConstraints> m_constraints;
rtc::scoped_refptr<webrtc::VideoTrackInterface> m_videoTrack;
RetainPtr<CMSampleBufferRef> m_buffer;
PixelBufferConformerCV m_conformer;
Modified: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.h (216917 => 216918)
--- trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.h 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.h 2017-05-16 08:51:50 UTC (rev 216918)
@@ -68,7 +68,6 @@
const RealtimeMediaSourceCapabilities& capabilities() const override;
const RealtimeMediaSourceSettings& settings() const override;
- MediaConstraints& constraints() { return *m_constraints.get(); }
RealtimeMediaSourceSupportedConstraints& supportedConstraints();
unsigned deviceIndex() { return m_deviceIndex; }
@@ -84,7 +83,6 @@
RealtimeMediaSourceSettings m_currentSettings;
RealtimeMediaSourceSupportedConstraints m_supportedConstraints;
std::unique_ptr<RealtimeMediaSourceCapabilities> m_capabilities;
- RefPtr<MediaConstraints> m_constraints;
unsigned m_deviceIndex { 0 };
};
Modified: trunk/Source/WebKit2/ChangeLog (216917 => 216918)
--- trunk/Source/WebKit2/ChangeLog 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebKit2/ChangeLog 2017-05-16 08:51:50 UTC (rev 216918)
@@ -1,3 +1,38 @@
+2017-05-16 Youenn Fablet <you...@apple.com>
+
+ Remove MediaConstraintsData and MediaConstraintsImpl
+ https://bugs.webkit.org/show_bug.cgi?id=172132
+
+ Reviewed by Eric Carlson.
+
+ Removing MediaConstraintsData and MediaConstraintsImpl allows simplifying the code.
+ Further simplified the code by making MediaConstraints no longer ref counted and now a struct.
+
+ * Scripts/webkit/messages.py:
+ (headers_for_type):
+ * Shared/WebCoreArgumentCoders.cpp:
+ (IPC::ArgumentCoder<MediaConstraints>::encode):
+ (IPC::ArgumentCoder<MediaConstraints>::decode):
+ (IPC::ArgumentCoder<MediaConstraintsData>::encode): Deleted.
+ (IPC::ArgumentCoder<MediaConstraintsData>::decode): Deleted.
+ * Shared/WebCoreArgumentCoders.h:
+ * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
+ (WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
+ (WebKit::UserMediaCaptureManagerProxy::applyConstraints):
+ * UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
+ * UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
+ * UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
+ (WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
+ * UIProcess/UserMediaPermissionRequestManagerProxy.h:
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::requestUserMediaPermissionForFrame):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
+ (WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest):
+ * WebProcess/cocoa/UserMediaCaptureManager.cpp:
+ (WebKit::UserMediaCaptureManager::applyConstraints):
+
2017-05-16 Michael Catanzaro <mcatanz...@igalia.com>
[SOUP] Remove LATEST_RECORD_VERSION from GnuTLS priority string
Modified: trunk/Source/WebKit2/Scripts/webkit/messages.py (216917 => 216918)
--- trunk/Source/WebKit2/Scripts/webkit/messages.py 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebKit2/Scripts/webkit/messages.py 2017-05-16 08:51:50 UTC (rev 216918)
@@ -360,7 +360,7 @@
'WebCore::Highlight': ['<WebCore/InspectorOverlay.h>'],
'WebCore::KeyframeValueList': ['<WebCore/GraphicsLayer.h>'],
'WebCore::KeypressCommand': ['<WebCore/KeyboardEvent.h>'],
- 'WebCore::MediaConstraintsData': ['<WebCore/MediaConstraintsImpl.h>'],
+ 'WebCore::MediaConstraints': ['<WebCore/MediaConstraints.h>'],
'WebCore::PasteboardImage': ['<WebCore/Pasteboard.h>'],
'WebCore::PasteboardURL': ['<WebCore/Pasteboard.h>'],
'WebCore::PasteboardWebContent': ['<WebCore/Pasteboard.h>'],
Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp (216917 => 216918)
--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -102,7 +102,7 @@
#if ENABLE(MEDIA_STREAM)
#include <WebCore/CaptureDevice.h>
-#include <WebCore/MediaConstraintsImpl.h>
+#include <WebCore/MediaConstraints.h>
#endif
using namespace WebCore;
@@ -2389,7 +2389,7 @@
}
#if ENABLE(MEDIA_STREAM)
-void ArgumentCoder<MediaConstraintsData>::encode(Encoder& encoder, const WebCore::MediaConstraintsData& constraint)
+void ArgumentCoder<MediaConstraints>::encode(Encoder& encoder, const WebCore::MediaConstraints& constraint)
{
encoder << constraint.mandatoryConstraints
<< constraint.advancedConstraints
@@ -2397,7 +2397,7 @@
<< constraint.isValid;
}
-bool ArgumentCoder<MediaConstraintsData>::decode(Decoder& decoder, WebCore::MediaConstraintsData& constraints)
+bool ArgumentCoder<MediaConstraints>::decode(Decoder& decoder, WebCore::MediaConstraints& constraints)
{
return decoder.decode(constraints.mandatoryConstraints)
&& decoder.decode(constraints.advancedConstraints)
Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h (216917 => 216918)
--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h 2017-05-16 08:51:50 UTC (rev 216918)
@@ -162,7 +162,7 @@
#if ENABLE(MEDIA_STREAM)
namespace WebCore {
class CaptureDevice;
-struct MediaConstraintsData;
+struct MediaConstraints;
}
#endif
@@ -640,9 +640,9 @@
#endif
#if ENABLE(MEDIA_STREAM)
-template<> struct ArgumentCoder<WebCore::MediaConstraintsData> {
- static void encode(Encoder&, const WebCore::MediaConstraintsData&);
- static bool decode(Decoder&, WebCore::MediaConstraintsData&);
+template<> struct ArgumentCoder<WebCore::MediaConstraints> {
+ static void encode(Encoder&, const WebCore::MediaConstraints&);
+ static bool decode(Decoder&, WebCore::MediaConstraints&);
};
template<> struct ArgumentCoder<WebCore::CaptureDevice> {
Modified: trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp (216917 => 216918)
--- trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -33,7 +33,7 @@
#include "WebCoreArgumentCoders.h"
#include "WebProcessProxy.h"
#include <WebCore/CARingBuffer.h>
-#include <WebCore/MediaConstraintsImpl.h>
+#include <WebCore/MediaConstraints.h>
#include <WebCore/RealtimeMediaSourceCenter.h>
#include <WebCore/WebAudioBufferList.h>
#include <wtf/UniqueRef.h>
@@ -125,16 +125,15 @@
m_process.removeMessageReceiver(Messages::UserMediaCaptureManagerProxy::messageReceiverName());
}
-void UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints(uint64_t id, const String& deviceID, WebCore::RealtimeMediaSource::Type type, const MediaConstraintsData& constraintsData, bool& succeeded, String& invalidConstraints, WebCore::RealtimeMediaSourceSettings& settings)
+void UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints(uint64_t id, const String& deviceID, WebCore::RealtimeMediaSource::Type type, const MediaConstraints& constraints, bool& succeeded, String& invalidConstraints, WebCore::RealtimeMediaSourceSettings& settings)
{
CaptureSourceOrError sourceOrError;
- auto constraints = MediaConstraintsImpl::create(MediaConstraintsData(constraintsData));
switch (type) {
case WebCore::RealtimeMediaSource::Type::Audio:
- sourceOrError = RealtimeMediaSourceCenter::singleton().audioFactory().createAudioCaptureSource(deviceID, constraints.ptr());
+ sourceOrError = RealtimeMediaSourceCenter::singleton().audioFactory().createAudioCaptureSource(deviceID, &constraints);
break;
case WebCore::RealtimeMediaSource::Type::Video:
- sourceOrError = RealtimeMediaSourceCenter::singleton().videoFactory().createVideoCaptureSource(deviceID, constraints.ptr());
+ sourceOrError = RealtimeMediaSourceCenter::singleton().videoFactory().createVideoCaptureSource(deviceID, &constraints);
break;
case WebCore::RealtimeMediaSource::Type::None:
ASSERT_NOT_REACHED();
@@ -185,9 +184,8 @@
iter->value->source().setEnabled(enabled);
}
-void UserMediaCaptureManagerProxy::applyConstraints(uint64_t id, const WebCore::MediaConstraintsData& constraintsData)
+void UserMediaCaptureManagerProxy::applyConstraints(uint64_t id, const WebCore::MediaConstraints& constraints)
{
- auto constraints = MediaConstraintsImpl::create(MediaConstraintsData(constraintsData));
auto iter = m_proxies.find(id);
if (iter == m_proxies.end())
return;
Modified: trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h (216917 => 216918)
--- trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h 2017-05-16 08:51:50 UTC (rev 216918)
@@ -49,13 +49,13 @@
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 String& deviceID, WebCore::RealtimeMediaSource::Type, const WebCore::MediaConstraintsData&, bool& succeeded, String& invalidConstraints, WebCore::RealtimeMediaSourceSettings&);
+ void createMediaSourceForCaptureDeviceWithConstraints(uint64_t id, const String& 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&);
void setMuted(uint64_t, bool);
void setEnabled(uint64_t, bool);
- void applyConstraints(uint64_t, const WebCore::MediaConstraintsData&);
+ void applyConstraints(uint64_t, const WebCore::MediaConstraints&);
class SourceProxy;
friend class SourceProxy;
Modified: trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in (216917 => 216918)
--- trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in 2017-05-16 08:51:50 UTC (rev 216918)
@@ -22,11 +22,11 @@
# THE POSSIBILITY OF SUCH DAMAGE.
messages -> UserMediaCaptureManagerProxy {
- CreateMediaSourceForCaptureDeviceWithConstraints(uint64_t id, String deviceID, WebCore::RealtimeMediaSource::Type type, struct WebCore::MediaConstraintsData constraints) -> (bool success, String invalidConstraints, WebCore::RealtimeMediaSourceSettings settings)
+ CreateMediaSourceForCaptureDeviceWithConstraints(uint64_t id, String deviceID, 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)
SetMuted(uint64_t id, bool muted)
SetEnabled(uint64_t id, bool enabled)
- ApplyConstraints(uint64_t id, struct WebCore::MediaConstraintsData constraints)
+ ApplyConstraints(uint64_t id, struct WebCore::MediaConstraints constraints)
}
Modified: trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp (216917 => 216918)
--- trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -26,7 +26,7 @@
#include "WebPageMessages.h"
#include "WebPageProxy.h"
#include "WebProcessProxy.h"
-#include <WebCore/MediaConstraintsImpl.h>
+#include <WebCore/MediaConstraints.h>
#include <WebCore/MockRealtimeMediaSourceCenter.h>
#include <WebCore/RealtimeMediaSource.h>
#include <WebCore/SecurityOriginData.h>
@@ -251,7 +251,7 @@
m_rejectionTimer.startOneShot(Seconds(mimimumDelayBeforeReplying + randomNumber()));
}
-void UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String userMediaDocumentOriginIdentifier, String topLevelDocumentOriginIdentifier, const WebCore::MediaConstraintsData& audioConstraintsData, const WebCore::MediaConstraintsData& videoConstraintsData)
+void UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String userMediaDocumentOriginIdentifier, String topLevelDocumentOriginIdentifier, const WebCore::MediaConstraints& audioConstraints, const WebCore::MediaConstraints& videoConstraints)
{
#if ENABLE(MEDIA_STREAM)
auto invalidHandler = [this, userMediaID](const String& invalidConstraint) {
@@ -306,12 +306,11 @@
return;
}
- auto validateConstraintsHandler = [this, userMediaID, validHandler = WTFMove(validHandler), invalidHandler = WTFMove(invalidHandler), audioConstraintsData, videoConstraintsData](String&& deviceIdentifierHashSalt) mutable {
+ auto validateConstraintsHandler = [this, userMediaID, validHandler = WTFMove(validHandler), invalidHandler = WTFMove(invalidHandler), audioConstraints = WebCore::MediaConstraints(audioConstraints), videoConstraints = WebCore::MediaConstraints(videoConstraints)](String&& deviceIdentifierHashSalt) mutable {
syncWithWebCorePrefs();
-
- auto audioConstraints = MediaConstraintsImpl::create(MediaConstraintsData(audioConstraintsData, deviceIdentifierHashSalt));
- auto videoConstraints = MediaConstraintsImpl::create(MediaConstraintsData(videoConstraintsData, deviceIdentifierHashSalt));
-
+
+ audioConstraints.deviceIDHashSalt = deviceIdentifierHashSalt;
+ videoConstraints.deviceIDHashSalt = WTFMove(deviceIdentifierHashSalt);
RealtimeMediaSourceCenter::singleton().validateRequestConstraints(WTFMove(validHandler), WTFMove(invalidHandler), audioConstraints, videoConstraints);
};
@@ -335,8 +334,8 @@
UNUSED_PARAM(frameID);
UNUSED_PARAM(userMediaDocumentOriginIdentifier);
UNUSED_PARAM(topLevelDocumentOriginIdentifier);
- UNUSED_PARAM(audioConstraintsData);
- UNUSED_PARAM(videoConstraintsData);
+ UNUSED_PARAM(audioConstraints);
+ UNUSED_PARAM(videoConstraints);
#endif
}
Modified: trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.h (216917 => 216918)
--- trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.h 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.h 2017-05-16 08:51:50 UTC (rev 216918)
@@ -29,7 +29,7 @@
namespace WebCore {
class CaptureDevice;
-struct MediaConstraintsData;
+struct MediaConstraints;
class SecurityOrigin;
};
@@ -65,7 +65,7 @@
void invalidatePendingRequests();
- void requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String userMediaDocumentOriginIdentifier, String topLevelDocumentOriginIdentifier, const WebCore::MediaConstraintsData& audioConstraintsData, const WebCore::MediaConstraintsData& videoConstraintsData);
+ void requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String userMediaDocumentOriginIdentifier, String topLevelDocumentOriginIdentifier, const WebCore::MediaConstraints& audioConstraints, const WebCore::MediaConstraints& videoConstraints);
void userMediaAccessWasGranted(uint64_t, const String& audioDeviceUID, const String& videoDeviceUID);
void userMediaAccessWasDenied(uint64_t, UserMediaPermissionRequestProxy::UserMediaAccessDenialReason);
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (216917 => 216918)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -182,7 +182,7 @@
#endif
#if ENABLE(MEDIA_STREAM)
-#include <WebCore/MediaConstraintsImpl.h>
+#include <WebCore/MediaConstraints.h>
#endif
// This controls what strategy we use for mouse wheel coalescing.
@@ -5744,19 +5744,19 @@
}
#endif
-void WebPageProxy::requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String userMediaDocumentOriginIdentifier, String topLevelDocumentOriginIdentifier, const WebCore::MediaConstraintsData& audioConstraintsData, const WebCore::MediaConstraintsData& videoConstraintsData)
+void WebPageProxy::requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String userMediaDocumentOriginIdentifier, String topLevelDocumentOriginIdentifier, const WebCore::MediaConstraints& audioConstraints, const WebCore::MediaConstraints& videoConstraints)
{
#if ENABLE(MEDIA_STREAM)
MESSAGE_CHECK(m_process->webFrame(frameID));
- userMediaPermissionRequestManager().requestUserMediaPermissionForFrame(userMediaID, frameID, userMediaDocumentOriginIdentifier, topLevelDocumentOriginIdentifier, audioConstraintsData, videoConstraintsData);
+ userMediaPermissionRequestManager().requestUserMediaPermissionForFrame(userMediaID, frameID, userMediaDocumentOriginIdentifier, topLevelDocumentOriginIdentifier, audioConstraints, videoConstraints);
#else
UNUSED_PARAM(userMediaID);
UNUSED_PARAM(frameID);
UNUSED_PARAM(userMediaDocumentOriginIdentifier);
UNUSED_PARAM(topLevelDocumentOriginIdentifier);
- UNUSED_PARAM(audioConstraintsData);
- UNUSED_PARAM(videoConstraintsData);
+ UNUSED_PARAM(audioConstraints);
+ UNUSED_PARAM(videoConstraints);
#endif
}
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (216917 => 216918)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2017-05-16 08:51:50 UTC (rev 216918)
@@ -164,7 +164,7 @@
struct DictionaryPopupInfo;
struct ExceptionDetails;
struct FileChooserSettings;
-struct MediaConstraintsData;
+struct MediaConstraints;
struct SecurityOriginData;
struct TextAlternativeWithRange;
struct TextCheckingResult;
@@ -1313,7 +1313,7 @@
#if ENABLE(MEDIA_STREAM)
UserMediaPermissionRequestManagerProxy& userMediaPermissionRequestManager();
#endif
- void requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String userMediaDocumentOriginIdentifier, String topLevelDocumentOriginIdentifier, const WebCore::MediaConstraintsData& audioConstraints, const WebCore::MediaConstraintsData& videoConstraints);
+ void requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String userMediaDocumentOriginIdentifier, String topLevelDocumentOriginIdentifier, const WebCore::MediaConstraints& audioConstraints, const WebCore::MediaConstraints& videoConstraints);
void enumerateMediaDevicesForFrame(uint64_t userMediaID, uint64_t frameID, String userMediaDocumentOriginIdentifier, String topLevelDocumentOriginIdentifier);
void runModal();
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in (216917 => 216918)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in 2017-05-16 08:51:50 UTC (rev 216918)
@@ -268,7 +268,7 @@
#if ENABLE(MEDIA_STREAM)
# MediaSteam messages
- RequestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String userMediaDocumentOriginIdentifier, String topLevelDocumentOriginIdentifier, struct WebCore::MediaConstraintsData audioConstraintsData, struct WebCore::MediaConstraintsData videoConstraintsData)
+ RequestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String userMediaDocumentOriginIdentifier, String topLevelDocumentOriginIdentifier, struct WebCore::MediaConstraints audioConstraints, struct WebCore::MediaConstraints videoConstraints)
EnumerateMediaDevicesForFrame(uint64_t userMediaID, uint64_t frameID, String userMediaDocumentOriginIdentifier, String topLevelDocumentOriginIdentifier)
#endif
Modified: trunk/Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp (216917 => 216918)
--- trunk/Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -29,7 +29,7 @@
#include <WebCore/Document.h>
#include <WebCore/Frame.h>
#include <WebCore/FrameLoader.h>
-#include <WebCore/MediaConstraintsImpl.h>
+#include <WebCore/MediaConstraints.h>
#include <WebCore/SecurityOrigin.h>
#include <WebCore/SecurityOriginData.h>
@@ -105,7 +105,7 @@
SecurityOrigin* topLevelDocumentOrigin = request.topLevelDocumentOrigin();
String topLevelDocumentOriginString = topLevelDocumentOrigin ? SecurityOriginData::fromSecurityOrigin(*topLevelDocumentOrigin).databaseIdentifier() : emptyString();
- m_page.send(Messages::WebPageProxy::RequestUserMediaPermissionForFrame(requestID, webFrame->frameID(), SecurityOriginData::fromSecurityOrigin(*request.userMediaDocumentOrigin()).databaseIdentifier(), topLevelDocumentOriginString, request.audioConstraints().data(), request.videoConstraints().data()));
+ m_page.send(Messages::WebPageProxy::RequestUserMediaPermissionForFrame(requestID, webFrame->frameID(), SecurityOriginData::fromSecurityOrigin(*request.userMediaDocumentOrigin()).databaseIdentifier(), topLevelDocumentOriginString, request.audioConstraints(), request.videoConstraints()));
}
void UserMediaPermissionRequestManager::cancelUserMediaRequest(UserMediaRequest& request)
Modified: trunk/Source/WebKit2/WebProcess/cocoa/UserMediaCaptureManager.cpp (216917 => 216918)
--- trunk/Source/WebKit2/WebProcess/cocoa/UserMediaCaptureManager.cpp 2017-05-16 08:03:02 UTC (rev 216917)
+++ trunk/Source/WebKit2/WebProcess/cocoa/UserMediaCaptureManager.cpp 2017-05-16 08:51:50 UTC (rev 216918)
@@ -35,7 +35,7 @@
#include "WebProcess.h"
#include "WebProcessCreationParameters.h"
#include <WebCore/CaptureDevice.h>
-#include <WebCore/MediaConstraintsImpl.h>
+#include <WebCore/MediaConstraints.h>
#include <WebCore/RealtimeMediaSourceCenter.h>
#include <WebCore/WebAudioBufferList.h>
#include <WebCore/WebAudioSourceProviderAVFObjC.h>
@@ -279,12 +279,7 @@
void UserMediaCaptureManager::applyConstraints(uint64_t id, const WebCore::MediaConstraints& constraints)
{
- MediaConstraintsData constraintsData;
- constraintsData.mandatoryConstraints = constraints.mandatoryConstraints();
- constraintsData.advancedConstraints = constraints.advancedConstraints();
- constraintsData.isValid = constraints.isValid();
-
- m_process.send(Messages::UserMediaCaptureManagerProxy::ApplyConstraints(id, constraintsData), 0);
+ m_process.send(Messages::UserMediaCaptureManagerProxy::ApplyConstraints(id, constraints), 0);
}
void UserMediaCaptureManager::applyConstraintsSucceeded(uint64_t id, const WebCore::RealtimeMediaSourceSettings& settings)