Diff
Modified: trunk/Source/WebCore/ChangeLog (187281 => 187282)
--- trunk/Source/WebCore/ChangeLog 2015-07-24 01:22:28 UTC (rev 187281)
+++ trunk/Source/WebCore/ChangeLog 2015-07-24 02:23:38 UTC (rev 187282)
@@ -1,3 +1,26 @@
+2015-07-23 Matthew Daiter <[email protected]>
+
+ Linking WebKit2 to be able to grab media sources from a UID
+ https://bugs.webkit.org/show_bug.cgi?id=147202
+ <rdar://problem/21947608>
+
+ Reviewed by Brent Fulgham.
+
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/mediastream/RealtimeMediaSourceCenter.h:
+ * platform/mediastream/mac/AVCaptureDeviceManager.h:
+ * platform/mediastream/mac/AVCaptureDeviceManager.mm:
+ (WebCore::AVCaptureDeviceManager::sourceWithUID):
+ * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
+ (WebCore::RealtimeMediaSourceCenterMac::sourceWithUID):
+ * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
+ * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
+ (WebCore::RealtimeMediaSourceCenterOwr::sourceWithUID):
+ * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h:
+ * platform/mock/MockRealtimeMediaSourceCenter.cpp:
+ (WebCore::MockRealtimeMediaSourceCenter::sourceWithUID):
+ * platform/mock/MockRealtimeMediaSourceCenter.h:
+
2015-07-23 Alex Christensen <[email protected]>
Remove compile and runtime flags for promises.
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (187281 => 187282)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2015-07-24 01:22:28 UTC (rev 187281)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2015-07-24 02:23:38 UTC (rev 187282)
@@ -191,7 +191,7 @@
076306DD17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306DB17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.h */; };
076306E017E16089005A7C4E /* JSSourceInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076306DE17E16089005A7C4E /* JSSourceInfo.cpp */; };
076306E117E16089005A7C4E /* JSSourceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306DF17E16089005A7C4E /* JSSourceInfo.h */; };
- 076306E317E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306E217E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h */; };
+ 076306E317E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306E217E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
07638A991884487200E15A1B /* MediaSessionManagerIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 07638A971884487200E15A1B /* MediaSessionManagerIOS.h */; settings = {ATTRIBUTES = (Private, ); }; };
07638A9A1884487200E15A1B /* MediaSessionManagerIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07638A981884487200E15A1B /* MediaSessionManagerIOS.mm */; };
076970861463AD8700F502CF /* TextTrackList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076970841463AD8700F502CF /* TextTrackList.cpp */; };
Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h (187281 => 187282)
--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h 2015-07-24 01:22:28 UTC (rev 187281)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h 2015-07-24 02:23:38 UTC (rev 187282)
@@ -44,6 +44,7 @@
class MediaStreamCreationClient;
class RealtimeMediaSourceStates;
class MediaStreamTrackSourcesRequestClient;
+class TrackSourceInfo;
class RealtimeMediaSourceCenter {
public:
@@ -57,6 +58,8 @@
virtual void createMediaStream(PassRefPtr<MediaStreamCreationClient>, PassRefPtr<MediaConstraints> audioConstraints, PassRefPtr<MediaConstraints> videoConstraints) = 0;
virtual bool getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>) = 0;
+
+ virtual RefPtr<TrackSourceInfo> sourceWithUID(const String&, RealtimeMediaSource::Type, MediaConstraints*) = 0;
protected:
RealtimeMediaSourceCenter();
Modified: trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h (187281 => 187282)
--- trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h 2015-07-24 01:22:28 UTC (rev 187281)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h 2015-07-24 02:23:38 UTC (rev 187282)
@@ -50,7 +50,7 @@
Vector<RefPtr<TrackSourceInfo>> getSourcesInfo(const String&);
bool verifyConstraintsForMediaType(RealtimeMediaSource::Type, MediaConstraints*, String&);
Vector<RefPtr<RealtimeMediaSource>> bestSourcesForTypeAndConstraints(RealtimeMediaSource::Type, PassRefPtr<MediaConstraints>);
- RefPtr<RealtimeMediaSource> sourceWithUID(String&, RealtimeMediaSource::Type, MediaConstraints*);
+ RefPtr<RealtimeMediaSource> sourceWithUID(const String&, RealtimeMediaSource::Type, MediaConstraints*);
enum ValidConstraints { Width = 0, Height, FrameRate, FacingMode, Gain };
static const Vector<AtomicString>& validConstraintNames();
Modified: trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm (187281 => 187282)
--- trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm 2015-07-24 01:22:28 UTC (rev 187281)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm 2015-07-24 02:23:38 UTC (rev 187282)
@@ -420,7 +420,7 @@
return bestSourcesList;
}
-RefPtr<RealtimeMediaSource> AVCaptureDeviceManager::sourceWithUID(String &deviceUID, RealtimeMediaSource::Type type, MediaConstraints* constraints)
+RefPtr<RealtimeMediaSource> AVCaptureDeviceManager::sourceWithUID(const String& deviceUID, RealtimeMediaSource::Type type, MediaConstraints* constraints)
{
if (!isAvailable())
return 0;
Modified: trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp (187281 => 187282)
--- trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp 2015-07-24 01:22:28 UTC (rev 187281)
+++ trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp 2015-07-24 02:23:38 UTC (rev 187282)
@@ -136,6 +136,14 @@
return true;
}
+RefPtr<TrackSourceInfo> RealtimeMediaSourceCenterMac::sourceWithUID(const String& UID, RealtimeMediaSource::Type type, MediaConstraints* constraints)
+{
+ RefPtr<RealtimeMediaSource> mediaSource = AVCaptureDeviceManager::singleton().sourceWithUID(UID, type, constraints);
+ if (!mediaSource)
+ return nullptr;
+ return TrackSourceInfo::create(mediaSource->id(), mediaSource->type() == RealtimeMediaSource::Type::Video ? TrackSourceInfo::SourceKind::Video : TrackSourceInfo::SourceKind::Audio, mediaSource->name());
+}
+
} // namespace WebCore
#endif // ENABLE(MEDIA_STREAM)
Modified: trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.h (187281 => 187282)
--- trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.h 2015-07-24 01:22:28 UTC (rev 187281)
+++ trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.h 2015-07-24 02:23:38 UTC (rev 187282)
@@ -48,6 +48,7 @@
void validateRequestConstraints(PassRefPtr<MediaStreamCreationClient>, PassRefPtr<MediaConstraints> audioConstraints, PassRefPtr<MediaConstraints> videoConstraints) override;
void createMediaStream(PassRefPtr<MediaStreamCreationClient>, PassRefPtr<MediaConstraints> audioConstraints, PassRefPtr<MediaConstraints> videoConstraints) override;
virtual bool getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>) override;
+ RefPtr<TrackSourceInfo> sourceWithUID(const String&, RealtimeMediaSource::Type, MediaConstraints*) override;
};
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp (187281 => 187282)
--- trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp 2015-07-24 01:22:28 UTC (rev 187281)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp 2015-07-24 02:23:38 UTC (rev 187282)
@@ -182,6 +182,15 @@
return nullptr;
}
+RefPtr<TrackSourceInfo> RealtimeMediaSourceCenterOwr::sourceWithUID(const String& UID, RealtimeMediaSource::Type, MediaConstraints*)
+{
+ for (auto& source : m_sourceMap.values()) {
+ if (source->id() == UID)
+ return TrackSourceInfo::create(source->id(), source->type() == RealtimeMediaSource::Type::Video ? TrackSourceInfo::SourceKind::Video : TrackSourceInfo::SourceKind::Audio , source->name());
+ }
+
+ return nullptr;
+}
} // namespace WebCore
#endif // ENABLE(MEDIA_STREAM) && USE(OPENWEBRTC)
Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h (187281 => 187282)
--- trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h 2015-07-24 01:22:28 UTC (rev 187281)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h 2015-07-24 02:23:38 UTC (rev 187282)
@@ -46,6 +46,7 @@
class MediaStreamPrivate;
class RealtimeMediaSource;
class MediaStreamSourcesQueryClient;
+class TrackSourceInfo;
class RealtimeMediaSourceCenterOwr final : public RealtimeMediaSourceCenter {
public:
@@ -57,6 +58,7 @@
bool getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>) override;
void mediaSourcesAvailable(GList* sources);
+ RefPtr<TrackSourceInfo> sourceWithUID(const String&, RealtimeMediaSource::Type, MediaConstraints*) override;
private:
PassRefPtr<RealtimeMediaSource> firstSource(RealtimeMediaSource::Type);
Modified: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp (187281 => 187282)
--- trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp 2015-07-24 01:22:28 UTC (rev 187281)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp 2015-07-24 02:23:38 UTC (rev 187282)
@@ -212,6 +212,15 @@
return true;
}
+RefPtr<TrackSourceInfo> MockRealtimeMediaSourceCenter::sourceWithUID(const String& UID, RealtimeMediaSource::Type, MediaConstraints*)
+{
+ for (auto& source : mockSourceMap()) {
+ if (source.value->id() == UID)
+ return TrackSourceInfo::create(source.value->id(), source.value->type() == RealtimeMediaSource::Video ? TrackSourceInfo::Video : TrackSourceInfo::Audio, source.value->name());
+ }
+ return nullptr;
+}
+
} // namespace WebCore
#endif // ENABLE(MEDIA_STREAM)
Modified: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h (187281 => 187282)
--- trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h 2015-07-24 01:22:28 UTC (rev 187281)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h 2015-07-24 02:23:38 UTC (rev 187282)
@@ -40,6 +40,7 @@
virtual void validateRequestConstraints(PassRefPtr<MediaStreamCreationClient>, PassRefPtr<MediaConstraints> audioConstraints, PassRefPtr<MediaConstraints> videoConstraints) override;
virtual void createMediaStream(PassRefPtr<MediaStreamCreationClient>, PassRefPtr<MediaConstraints> audioConstraints, PassRefPtr<MediaConstraints> videoConstraints) override;
virtual bool getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>) override;
+ RefPtr<TrackSourceInfo> sourceWithUID(const String&, RealtimeMediaSource::Type, MediaConstraints*) override;
private:
MockRealtimeMediaSourceCenter() { }
Modified: trunk/Source/WebKit2/ChangeLog (187281 => 187282)
--- trunk/Source/WebKit2/ChangeLog 2015-07-24 01:22:28 UTC (rev 187281)
+++ trunk/Source/WebKit2/ChangeLog 2015-07-24 02:23:38 UTC (rev 187282)
@@ -1,3 +1,15 @@
+2015-07-23 Matthew Daiter <[email protected]>
+
+ Linking WebKit2 to be able to grab media sources from a UID
+ https://bugs.webkit.org/show_bug.cgi?id=147202
+ <rdar://problem/21947608>
+
+ Reviewed by Brent Fulgham.
+
+ * UIProcess/UserMediaPermissionRequestProxy.cpp:
+ (WebKit::UserMediaPermissionRequestProxy::getDeviceNameForUID):
+ * UIProcess/UserMediaPermissionRequestProxy.h:
+
2015-07-23 Alex Christensen <[email protected]>
Remove compile and runtime flags for promises.
Modified: trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp (187281 => 187282)
--- trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp 2015-07-24 01:22:28 UTC (rev 187281)
+++ trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp 2015-07-24 02:23:38 UTC (rev 187282)
@@ -20,6 +20,8 @@
#include "UserMediaPermissionRequestProxy.h"
#include "UserMediaPermissionRequestManagerProxy.h"
+#include <WebCore/MediaStreamTrackSourcesRequestClient.h>
+#include <WebCore/RealtimeMediaSourceCenter.h>
#include <wtf/text/StringHash.h>
namespace WebKit {
@@ -49,5 +51,10 @@
m_manager.invalidateRequests();
}
+const String& UserMediaPermissionRequestProxy::getDeviceNameForUID(const String& UID, WebCore::RealtimeMediaSource::Type type)
+{
+ return WebCore::RealtimeMediaSourceCenter::singleton().sourceWithUID(UID, type, nullptr)->label();
+}
+
} // namespace WebKit
Modified: trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.h (187281 => 187282)
--- trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.h 2015-07-24 01:22:28 UTC (rev 187281)
+++ trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.h 2015-07-24 02:23:38 UTC (rev 187282)
@@ -20,6 +20,7 @@
#define UserMediaPermissionRequestProxy_h
#include "APIObject.h"
+#include <WebCore/RealtimeMediaSource.h>
#include <wtf/PassRefPtr.h>
#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>
@@ -39,6 +40,8 @@
void deny();
void invalidate();
+
+ const String& getDeviceNameForUID(const String&, WebCore::RealtimeMediaSource::Type);
bool requiresAudio() const { return m_requiresAudio; }
bool requiresVideo() const { return m_requiresVideo; }