Title: [187282] trunk/Source
Revision
187282
Author
[email protected]
Date
2015-07-23 19:23:38 -0700 (Thu, 23 Jul 2015)

Log Message

Linking WebKit2 to be able to grab media sources from a UID
https://bugs.webkit.org/show_bug.cgi?id=147202
<rdar://problem/21947608>

Patch by Matthew Daiter <[email protected]> on 2015-07-23
Reviewed by Brent Fulgham.

Source/WebCore:

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

Source/WebKit2:

* UIProcess/UserMediaPermissionRequestProxy.cpp:
(WebKit::UserMediaPermissionRequestProxy::getDeviceNameForUID):
* UIProcess/UserMediaPermissionRequestProxy.h:

Modified Paths

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; }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to