Changeset 190262 in webkit
- Timestamp:
- Sep 25, 2015 7:23:00 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 28 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r190256 r190262 1 2015-09-25 Eric Carlson <eric.carlson@apple.com> 2 3 Clean up user media request internal API 4 https://bugs.webkit.org/show_bug.cgi?id=149527 5 6 Reviewed by Tim Horton. 7 8 No new tests, no functional change. 9 10 * Modules/mediastream/UserMediaRequest.cpp: 11 (WebCore::UserMediaRequest::constraintsValidated): Use track persistent ID to create vectors 12 as that is what the platform code needs to map to a capture device. 13 (WebCore::UserMediaRequest::userMediaAccessGranted): m_chosenXXDeviceUID -> m_XXDeviceUIDAllowed. 14 Use the device IDs to create the MediaStream. Switch audio/video parameter order. 15 (WebCore::UserMediaRequest::didCreateStream): Don't assume constraints are valid. 16 * Modules/mediastream/UserMediaRequest.h: 17 (WebCore::UserMediaRequest::videoDeviceUIDs): 18 (WebCore::UserMediaRequest::audioDeviceUIDs): 19 (WebCore::UserMediaRequest::allowedVideoDeviceUID): 20 (WebCore::UserMediaRequest::allowedAudioDeviceUID): 21 (WebCore::UserMediaRequest::requiresAudio): Deleted. 22 (WebCore::UserMediaRequest::requiresVideo): Deleted. 23 (WebCore::UserMediaRequest::firstVideoDeviceUID): Deleted. 24 (WebCore::UserMediaRequest::firstAudioDeviceUID): Deleted. 25 26 * platform/mediastream/mac/AVMediaCaptureSource.mm: 27 (WebCore::AVMediaCaptureSource::AVMediaCaptureSource): Call setPersistentId. 28 1 29 2015-09-25 Antti Koivisto <antti@apple.com> 2 30 -
trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp
r189982 r190262 126 126 { 127 127 for (auto& audioTrack : audioTracks) 128 m_audioDeviceUIDs.append(audioTrack-> id());128 m_audioDeviceUIDs.append(audioTrack->persistentID()); 129 129 for (auto& videoTrack : videoTracks) 130 m_videoDeviceUIDs.append(videoTrack->id()); 130 m_videoDeviceUIDs.append(videoTrack->persistentID()); 131 131 132 RefPtr<UserMediaRequest> protectedThis(this); 132 133 callOnMainThread([protectedThis] { … … 137 138 } 138 139 139 void UserMediaRequest::userMediaAccessGranted(const String& videoDeviceUID, const String& audioDeviceUID) 140 { 141 m_chosenVideoDeviceUID = videoDeviceUID; 142 m_chosenAudioDeviceUID = audioDeviceUID; 140 void UserMediaRequest::userMediaAccessGranted(const String& audioDeviceUID, const String& videoDeviceUID) 141 { 142 m_allowedVideoDeviceUID = videoDeviceUID; 143 m_audioDeviceUIDAllowed = audioDeviceUID; 144 143 145 RefPtr<UserMediaRequest> protectedThis(this); 144 callOnMainThread([protectedThis ] {146 callOnMainThread([protectedThis, audioDeviceUID, videoDeviceUID] { 145 147 // 3 - the user granted access, ask platform to create the media stream descriptors. 146 RealtimeMediaSourceCenter::singleton().createMediaStream(protectedThis.get(), protectedThis->m_audioConstraints, protectedThis->m_videoConstraints);148 RealtimeMediaSourceCenter::singleton().createMediaStream(protectedThis.get(), audioDeviceUID, videoDeviceUID); 147 149 }); 148 150 } … … 165 167 // 4 - Create the MediaStream and pass it to the success callback. 166 168 RefPtr<MediaStream> stream = MediaStream::create(*m_scriptExecutionContext, privateStream); 167 for (auto& track : stream->getAudioTracks()) 168 track->applyConstraints(*m_audioConstraints); 169 for (auto& track : stream->getVideoTracks()) 170 track->applyConstraints(*m_videoConstraints); 169 if (m_audioConstraints) { 170 for (auto& track : stream->getAudioTracks()) 171 track->applyConstraints(*m_audioConstraints); 172 } 173 if (m_videoConstraints) { 174 for (auto& track : stream->getVideoTracks()) 175 track->applyConstraints(*m_videoConstraints); 176 } 171 177 172 178 m_promise.resolve(stream); -
trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h
r189982 r190262 66 66 67 67 void start(); 68 WEBCORE_EXPORT void userMediaAccessGranted(const String& videoDeviceUID, const String& audioDeviceUID);68 WEBCORE_EXPORT void userMediaAccessGranted(const String& audioDeviceUID, const String& videoDeviceUID); 69 69 WEBCORE_EXPORT void userMediaAccessDenied(); 70 70 71 bool requiresAudio() const { return m_audioConstraints; } 72 bool requiresVideo() const { return m_videoConstraints; } 73 71 bool requiresAudio() const { return m_audioDeviceUIDs.size(); } 72 bool requiresVideo() const { return m_videoDeviceUIDs.size(); } 73 74 const Vector<String>& audioDeviceUIDs() const { return m_audioDeviceUIDs; } 74 75 const Vector<String>& videoDeviceUIDs() const { return m_videoDeviceUIDs; } 75 const Vector<String>& audioDeviceUIDs() const { return m_audioDeviceUIDs; } 76 77 const String& firstVideoDeviceUID() const { return !videoDeviceUIDs().isEmpty() ? videoDeviceUIDs().at(0) : emptyString(); } 78 const String& firstAudioDeviceUID() const { return !audioDeviceUIDs().isEmpty() ? audioDeviceUIDs().at(0) : emptyString(); } 76 77 const String& allowedAudioDeviceUID() const { return m_audioDeviceUIDAllowed; } 78 const String& allowedVideoDeviceUID() const { return m_allowedVideoDeviceUID; } 79 79 80 80 private: … … 96 96 Vector<String> m_videoDeviceUIDs; 97 97 Vector<String> m_audioDeviceUIDs; 98 99 String m_ chosenVideoDeviceUID;100 String m_ chosenAudioDeviceUID;101 98 99 String m_allowedVideoDeviceUID; 100 String m_audioDeviceUIDAllowed; 101 102 102 UserMediaController* m_controller; 103 104 103 MediaDevices::Promise m_promise; 105 104 }; -
trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp
r190072 r190262 56 56 if (m_id.isEmpty()) 57 57 m_id = createCanonicalUUIDString(); 58 m_persistentI d= m_id;58 m_persistentID = m_id; 59 59 } 60 60 -
trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h
r190115 r190262 71 71 const String& id() const { return m_id; } 72 72 73 const String& persistentI d() const { return m_persistentId; }74 virtual void setPersistentI d(const String& persistentId) { m_persistentId = persistentId; }73 const String& persistentID() const { return m_persistentID; } 74 virtual void setPersistentID(const String& persistentID) { m_persistentID = persistentID; } 75 75 76 76 enum Type { None, Audio, Video }; … … 116 116 private: 117 117 String m_id; 118 String m_persistentI d;118 String m_persistentID; 119 119 Type m_type; 120 120 String m_name; -
trunk/Source/WebCore/platform/mediastream/mac/AVMediaCaptureSource.mm
r190115 r190262 131 131 { 132 132 setName(device.localizedName); 133 setPersistentID(device.uniqueID); 133 134 m_currentStates.setSourceType(type == RealtimeMediaSource::Video ? RealtimeMediaSourceStates::Camera : RealtimeMediaSourceStates::Microphone); 134 135 } -
trunk/Source/WebKit/mac/ChangeLog
r190156 r190262 1 2015-09-25 Eric Carlson <eric.carlson@apple.com> 2 3 Clean up user media request internal API 4 https://bugs.webkit.org/show_bug.cgi?id=149527 5 6 Reviewed by Tim Horton. 7 8 * WebCoreSupport/WebUserMediaClient.mm: 9 (WebUserMediaClient::cancelRequest): Put UserMediaRequestsMap in a local instead or calling 10 userMediaRequestsMap() three times. 11 (-[WebUserMediaPolicyListener allow]): Get rid of unneeded local variables. 12 (-[WebUserMediaPolicyListener allowDeviceWithVideoUID]): Deleted, unused. 13 1 14 2015-09-22 Andy Estes <aestes@apple.com> 2 15 -
trunk/Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.mm
r188385 r190262 48 48 - (id)initWithUserMediaRequest:(PassRefPtr<UserMediaRequest>)request; 49 49 - (void)cancelRequest; 50 - (void)allowDeviceWithVideoUID:(const String&)videoUID andAudioUID:(const String&)audioUID;51 50 - (void)deny; 52 51 @end … … 115 114 void WebUserMediaClient::cancelRequest(UserMediaRequest& request) 116 115 { 117 UserMediaRequestsMap::iterator it = userMediaRequestsMap().find(&request); 118 if (it == userMediaRequestsMap().end()) 116 UserMediaRequestsMap& requestsMap = userMediaRequestsMap(); 117 UserMediaRequestsMap::iterator it = requestsMap.find(&request); 118 if (it == requestsMap.end()) 119 119 return; 120 120 121 121 [it->value cancelRequest]; 122 userMediaRequestsMap().remove(it);122 requestsMap.remove(it); 123 123 } 124 124 … … 154 154 return; 155 155 156 const String& videoUID = _request->firstVideoDeviceUID(); 157 const String& audioUID = _request->firstAudioDeviceUID(); 158 159 _request->userMediaAccessGranted(videoUID, audioUID); 160 RemoveRequestFromMap(_request.get()); 161 #endif 162 } 156 _request->userMediaAccessGranted(_request->allowedAudioDeviceUID(), _request->allowedVideoDeviceUID()); 163 157 164 - (void)allowDeviceWithVideoUID:(const String&)videoUID andAudioUID:(const String&)audioUID165 {166 #if ENABLE(MEDIA_STREAM)167 if (!_request)168 return;169 170 _request->userMediaAccessGranted(videoUID, audioUID);171 172 158 RemoveRequestFromMap(_request.get()); 173 159 #endif -
trunk/Source/WebKit2/ChangeLog
r190260 r190262 1 2015-09-25 Eric Carlson <eric.carlson@apple.com> 2 3 Clean up user media request internal API 4 https://bugs.webkit.org/show_bug.cgi?id=149527 5 6 Reviewed by Tim Horton. 7 8 * UIProcess/API/C/WKUserMediaPermissionRequest.cpp: 9 (WKUserMediaPermissionRequestVideoDeviceUIDs): New, renamed from WKUserMediaPermissionRequestDeviceNamesVideo. 10 (WKUserMediaPermissionRequestAudioDeviceUIDs): New, renamed from WKUserMediaPermissionRequestDeviceNamesAudio. 11 (WKUserMediaPermissionRequestAllowBest): Deleted. 12 (WKUserMediaPermissionRequestDeviceNamesVideo): Deleted. 13 (WKUserMediaPermissionRequestDeviceNamesAudio): Deleted. 14 (WKUserMediaPermissionRequestFirstVideoDeviceUID): Deleted. 15 (WKUserMediaPermissionRequestFirstAudioDeviceUID): Deleted. 16 * UIProcess/API/C/WKUserMediaPermissionRequest.h: 17 18 * UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp: 19 (webkitUserMediaPermissionRequestAllow): Update for UserMediaRequest API change. 20 21 * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: 22 (WebKit::UserMediaPermissionRequestManagerProxy::createRequest): Get rid of the bool parameters. 23 Switch audio/video parameter order to be consistent with everywhere else. 24 (WebKit::UserMediaPermissionRequestManagerProxy::didReceiveUserMediaPermissionDecision): Ditto. 25 * UIProcess/UserMediaPermissionRequestManagerProxy.h: 26 27 * UIProcess/UserMediaPermissionRequestProxy.cpp: 28 (WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy): Get rid of the bool parameters. 29 Switch audio/video parameter order to be consistent with everywhere else. 30 (WebKit::UserMediaPermissionRequestProxy::allow): Switch audio/video parameter order. 31 (WebKit::UserMediaPermissionRequestProxy::getDeviceNameForUID): Deleted. 32 * UIProcess/UserMediaPermissionRequestProxy.h: 33 (WebKit::UserMediaPermissionRequestProxy::create): 34 (WebKit::UserMediaPermissionRequestProxy::videoDeviceUIDs): 35 (WebKit::UserMediaPermissionRequestProxy::audioDeviceUIDs): 36 (WebKit::UserMediaPermissionRequestProxy::firstAudioDeviceUID): 37 (WebKit::UserMediaPermissionRequestProxy::requiresAudio): Deleted. 38 (WebKit::UserMediaPermissionRequestProxy::requiresVideo): Deleted. 39 40 * UIProcess/WebPageProxy.cpp: 41 (WebKit::WebPageProxy::requestUserMediaPermissionForFrame): Get rid of the bool parameters. 42 Switch audio/video parameter order to be consistent with everywhere else. 43 * UIProcess/WebPageProxy.h: Ditto. 44 * UIProcess/WebPageProxy.messages.in: Ditto. 45 46 * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: 47 (WebKit::UserMediaPermissionRequestManager::startRequest): Get rid of bool params, the device 48 vectors have the same information. 49 (WebKit::UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision): Switch audio/video 50 parameter order to be consistent with everywhere else. deviceUIDVideo -> videoDeviceUID, 51 deviceUIDAudio -> audioDeviceUID. 52 * WebProcess/MediaStream/UserMediaPermissionRequestManager.h: 53 54 * WebProcess/WebPage/WebPage.cpp: 55 (WebKit::WebPage::didReceiveUserMediaPermissionDecision): Switch audio/video parameter order. 56 * WebProcess/WebPage/WebPage.h: 57 1 58 2015-09-25 Simon Fraser <simon.fraser@apple.com> 2 59 -
trunk/Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp
r189015 r190262 34 34 35 35 36 void WKUserMediaPermissionRequestAllow Best(WKUserMediaPermissionRequestRef userMediaPermissionRequestRef)36 void WKUserMediaPermissionRequestAllow(WKUserMediaPermissionRequestRef userMediaPermissionRequestRef, WKStringRef audioDeviceUID, WKStringRef videoDeviceUID) 37 37 { 38 const String& videoDevice = toImpl(userMediaPermissionRequestRef)->firstVideoDeviceUID(); 39 const String& audioDevice = toImpl(userMediaPermissionRequestRef)->firstAudioDeviceUID(); 40 toImpl(userMediaPermissionRequestRef)->allow(videoDevice, audioDevice); 41 } 42 43 void WKUserMediaPermissionRequestAllow(WKUserMediaPermissionRequestRef userMediaPermissionRequestRef, WKStringRef videoDeviceUID, WKStringRef audioDeviceUID) 44 { 45 toImpl(userMediaPermissionRequestRef)->allow(toWTFString(videoDeviceUID), toWTFString(audioDeviceUID)); 38 toImpl(userMediaPermissionRequestRef)->allow(toWTFString(audioDeviceUID), toWTFString(videoDeviceUID)); 46 39 } 47 40 … … 51 44 } 52 45 53 WKArrayRef WKUserMediaPermissionRequest DeviceNamesVideo(WKUserMediaPermissionRequestRef userMediaPermissionRef)46 WKArrayRef WKUserMediaPermissionRequestVideoDeviceUIDs(WKUserMediaPermissionRequestRef userMediaPermissionRef) 54 47 { 55 48 WKMutableArrayRef array = WKMutableArrayCreate(); 56 49 #if ENABLE(MEDIA_STREAM) 57 for (auto& name : toImpl(userMediaPermissionRef)->videoDeviceUIDs()) { 58 String deviceName = toImpl(userMediaPermissionRef)->getDeviceNameForUID(name, WebCore::RealtimeMediaSource::Type::Video); 59 WKArrayAppendItem(array, toAPI(API::String::create(deviceName).ptr())); 60 } 50 for (auto& deviceUID : toImpl(userMediaPermissionRef)->videoDeviceUIDs()) 51 WKArrayAppendItem(array, toAPI(API::String::create(deviceUID).ptr())); 61 52 #endif 62 53 return array; 63 54 } 64 55 65 WKArrayRef WKUserMediaPermissionRequest DeviceNamesAudio(WKUserMediaPermissionRequestRef userMediaPermissionRef)56 WKArrayRef WKUserMediaPermissionRequestAudioDeviceUIDs(WKUserMediaPermissionRequestRef userMediaPermissionRef) 66 57 { 67 58 WKMutableArrayRef array = WKMutableArrayCreate(); 68 59 #if ENABLE(MEDIA_STREAM) 69 for (auto& name : toImpl(userMediaPermissionRef)->audioDeviceUIDs()) { 70 String deviceName = toImpl(userMediaPermissionRef)->getDeviceNameForUID(name, WebCore::RealtimeMediaSource::Type::Audio); 71 WKArrayAppendItem(array, toAPI(API::String::create(deviceName).ptr())); 72 } 60 for (auto& deviceUID : toImpl(userMediaPermissionRef)->audioDeviceUIDs()) 61 WKArrayAppendItem(array, toAPI(API::String::create(deviceUID).ptr())); 73 62 #endif 74 63 return array; 75 64 } 76 77 WKStringRef WKUserMediaPermissionRequestFirstVideoDeviceUID(WKUserMediaPermissionRequestRef userMediaPermissionRef)78 {79 return !toImpl(userMediaPermissionRef)->videoDeviceUIDs().isEmpty() ? reinterpret_cast<WKStringRef>(WKArrayGetItemAtIndex(WKUserMediaPermissionRequestDeviceNamesVideo(userMediaPermissionRef), 0)) : reinterpret_cast<WKStringRef>(WKStringCreateWithUTF8CString(""));80 }81 82 WKStringRef WKUserMediaPermissionRequestFirstAudioDeviceUID(WKUserMediaPermissionRequestRef userMediaPermissionRef)83 {84 return !toImpl(userMediaPermissionRef)->audioDeviceUIDs().isEmpty() ? reinterpret_cast<WKStringRef>(WKArrayGetItemAtIndex(WKUserMediaPermissionRequestDeviceNamesAudio(userMediaPermissionRef), 0)) : reinterpret_cast<WKStringRef>(WKStringCreateWithUTF8CString(""));85 } -
trunk/Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.h
r188385 r190262 28 28 WK_EXPORT WKTypeID WKUserMediaPermissionRequestGetTypeID(); 29 29 30 WK_EXPORT void WKUserMediaPermissionRequestAllowBest(WKUserMediaPermissionRequestRef); 31 WK_EXPORT void WKUserMediaPermissionRequestAllow(WKUserMediaPermissionRequestRef, WKStringRef videoDeviceUID, WKStringRef audioDeviceUID); 30 WK_EXPORT void WKUserMediaPermissionRequestAllow(WKUserMediaPermissionRequestRef, WKStringRef audioDeviceUID, WKStringRef videoDeviceUID); 32 31 WK_EXPORT void WKUserMediaPermissionRequestDeny(WKUserMediaPermissionRequestRef); 33 32 34 WK_EXPORT WKArrayRef WKUserMediaPermissionRequestDeviceNamesVideo(WKUserMediaPermissionRequestRef); 35 WK_EXPORT WKArrayRef WKUserMediaPermissionRequestDeviceNamesAudio(WKUserMediaPermissionRequestRef); 36 37 WK_EXPORT WKStringRef WKUserMediaPermissionRequestFirstVideoDeviceUID(WKUserMediaPermissionRequestRef); 38 WK_EXPORT WKStringRef WKUserMediaPermissionRequestFirstAudioDeviceUID(WKUserMediaPermissionRequestRef); 33 WK_EXPORT WKArrayRef WKUserMediaPermissionRequestVideoDeviceUIDs(WKUserMediaPermissionRequestRef); 34 WK_EXPORT WKArrayRef WKUserMediaPermissionRequestAudioDeviceUIDs(WKUserMediaPermissionRequestRef); 39 35 40 36 #ifdef __cplusplus -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp
r188471 r190262 72 72 priv->madeDecision = true; 73 73 74 const String& videoDevice = priv->request->firstVideoDeviceUID(); 75 const String& audioDevice = priv->request->firstAudioDeviceUID(); 74 auto videoDeviceUIDs = priv->request->videoDeviceUIDs(); 75 auto audioDeviceUIDs = priv->request->audioDeviceUIDs(); 76 77 auto videoDevice = !videoDeviceUIDs.isEmpty() ? videoDeviceUIDs[0] : emptyString(); 78 auto audioDevice = !audioDeviceUIDs.isEmpty() ? audioDeviceUIDs[0] : emptyString(); 76 79 77 priv->request->allow( videoDevice, audioDevice);80 priv->request->allow(audioDevice, videoDevice); 78 81 } 79 82 -
trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp
r188385 r190262 39 39 } 40 40 41 PassRefPtr<UserMediaPermissionRequestProxy> UserMediaPermissionRequestManagerProxy::createRequest(uint64_t userMediaID, bool requiresAudio, bool requiresVideo, const Vector<String>& deviceUIDsVideo, const Vector<String>& deviceUIDsAudio)41 PassRefPtr<UserMediaPermissionRequestProxy> UserMediaPermissionRequestManagerProxy::createRequest(uint64_t userMediaID, const Vector<String>& audioDeviceUIDs, const Vector<String>& videoDeviceUIDs) 42 42 { 43 RefPtr<UserMediaPermissionRequestProxy> request = UserMediaPermissionRequestProxy::create(*this, userMediaID, requiresAudio, requiresVideo, deviceUIDsVideo, deviceUIDsAudio);43 RefPtr<UserMediaPermissionRequestProxy> request = UserMediaPermissionRequestProxy::create(*this, userMediaID, audioDeviceUIDs, videoDeviceUIDs); 44 44 m_pendingRequests.add(userMediaID, request.get()); 45 45 return request.release(); 46 46 } 47 47 48 void UserMediaPermissionRequestManagerProxy::didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed, const String& videoDeviceUID, const String& audioDeviceUID)48 void UserMediaPermissionRequestManagerProxy::didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed, const String& audioDeviceUID, const String& videoDeviceUID) 49 49 { 50 50 if (!m_page.isValid()) … … 55 55 56 56 #if ENABLE(MEDIA_STREAM) 57 m_page.process().send(Messages::WebPage::DidReceiveUserMediaPermissionDecision(userMediaID, allowed, videoDeviceUID, audioDeviceUID), m_page.pageID());57 m_page.process().send(Messages::WebPage::DidReceiveUserMediaPermissionDecision(userMediaID, allowed, audioDeviceUID, videoDeviceUID), m_page.pageID()); 58 58 #else 59 59 UNUSED_PARAM(allowed); -
trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.h
r188385 r190262 34 34 35 35 // Create a request to be presented to the user. 36 PassRefPtr<UserMediaPermissionRequestProxy> createRequest(uint64_t userMediaID, bool audio, bool video, const Vector<String>& deviceUIDsVideo, const Vector<String>& deviceUIDsAudio);36 PassRefPtr<UserMediaPermissionRequestProxy> createRequest(uint64_t userMediaID, const Vector<String>& audioDeviceUIDs, const Vector<String>& videoDeviceUIDs); 37 37 38 38 // Called by UserMediaPermissionRequestProxy when a decision is made by the user. 39 void didReceiveUserMediaPermissionDecision(uint64_t, bool allow, const String& videoDeviceUID, const String& audioDeviceUID);39 void didReceiveUserMediaPermissionDecision(uint64_t, bool allow, const String& audioDeviceUID, const String& videoDeviceUID); 40 40 41 41 private: -
trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp
r188385 r190262 27 27 namespace WebKit { 28 28 29 UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy(UserMediaPermissionRequestManagerProxy& manager, uint64_t userMediaID, bool requiresAudio, bool requiresVideo, const Vector<String>& deviceUIDsVideo, const Vector<String>& deviceUIDsAudio)29 UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy(UserMediaPermissionRequestManagerProxy& manager, uint64_t userMediaID, const Vector<String>& audioDeviceUIDs, const Vector<String>& videoDeviceUIDs) 30 30 : m_manager(manager) 31 31 , m_userMediaID(userMediaID) 32 , m_requiresAudio(requiresAudio) 33 , m_requiresVideo(requiresVideo) 34 , m_videoDeviceUIDs(deviceUIDsVideo) 35 , m_audiodeviceUIDs(deviceUIDsAudio) 32 , m_videoDeviceUIDs(videoDeviceUIDs) 33 , m_audioDeviceUIDs(audioDeviceUIDs) 36 34 { 37 35 } 38 36 39 void UserMediaPermissionRequestProxy::allow(const String& videoDeviceUID, const String& audioDeviceUID)37 void UserMediaPermissionRequestProxy::allow(const String& audioDeviceUID, const String& videoDeviceUID) 40 38 { 41 m_manager.didReceiveUserMediaPermissionDecision(m_userMediaID, true, videoDeviceUID, audioDeviceUID);39 m_manager.didReceiveUserMediaPermissionDecision(m_userMediaID, true, audioDeviceUID, videoDeviceUID); 42 40 } 43 41 … … 52 50 } 53 51 54 #if ENABLE(MEDIA_STREAM)55 const String& UserMediaPermissionRequestProxy::getDeviceNameForUID(const String& UID, WebCore::RealtimeMediaSource::Type type)56 {57 return WebCore::RealtimeMediaSourceCenter::singleton().sourceWithUID(UID, type, nullptr)->label();58 }59 #endif60 61 52 } // namespace WebKit 62 53 -
trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.h
r188385 r190262 32 32 class UserMediaPermissionRequestProxy : public API::ObjectImpl<API::Object::Type::UserMediaPermissionRequest> { 33 33 public: 34 static PassRefPtr<UserMediaPermissionRequestProxy> create(UserMediaPermissionRequestManagerProxy& manager, uint64_t userMediaID, bool requiresAudio, bool requiresVideo, const Vector<String>& deviceUIDsVideo, const Vector<String>& deviceUIDsAudio)34 static PassRefPtr<UserMediaPermissionRequestProxy> create(UserMediaPermissionRequestManagerProxy& manager, uint64_t userMediaID, const Vector<String>& videoDeviceUIDs, const Vector<String>& audioDeviceUIDs) 35 35 { 36 return adoptRef(new UserMediaPermissionRequestProxy(manager, userMediaID, requiresAudio, requiresVideo, deviceUIDsVideo, deviceUIDsAudio));36 return adoptRef(new UserMediaPermissionRequestProxy(manager, userMediaID, videoDeviceUIDs, audioDeviceUIDs)); 37 37 } 38 38 … … 42 42 void invalidate(); 43 43 44 #if ENABLE(MEDIA_STREAM) 45 const String& getDeviceNameForUID(const String&, WebCore::RealtimeMediaSource::Type); 46 #endif 44 bool requiresAudio() const { return m_audioDeviceUIDs.size(); } 45 bool requiresVideo() const { return m_videoDeviceUIDs.size(); } 47 46 48 bool requiresAudio() const { return m_requiresAudio; }49 bool requiresVideo() const { return m_requiresVideo; }50 51 47 const Vector<String>& videoDeviceUIDs() const { return m_videoDeviceUIDs; } 52 const Vector<String>& audioDeviceUIDs() const { return m_audio deviceUIDs; }48 const Vector<String>& audioDeviceUIDs() const { return m_audioDeviceUIDs; } 53 49 54 50 const String& firstVideoDeviceUID() const { return !videoDeviceUIDs().isEmpty() ? videoDeviceUIDs().at(0) : emptyString(); } … … 56 52 57 53 private: 58 UserMediaPermissionRequestProxy(UserMediaPermissionRequestManagerProxy&, uint64_t userMediaID, bool requiresAudio, bool requiresVideo, const Vector<String>& deviceUIDsVideo, const Vector<String>& deviceUIDsAudio);54 UserMediaPermissionRequestProxy(UserMediaPermissionRequestManagerProxy&, uint64_t userMediaID, const Vector<String>& videoDeviceUIDs, const Vector<String>& audioDeviceUIDs); 59 55 60 56 UserMediaPermissionRequestManagerProxy& m_manager; 61 57 uint64_t m_userMediaID; 62 bool m_requiresAudio;63 bool m_requiresVideo;64 58 Vector<String> m_videoDeviceUIDs; 65 Vector<String> m_audio deviceUIDs;59 Vector<String> m_audioDeviceUIDs; 66 60 }; 67 61 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r190260 r190262 5280 5280 } 5281 5281 5282 void WebPageProxy::requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String originIdentifier, bool audio, bool video, const Vector<String>& deviceUIDsVideo, const Vector<String>& deviceUIDsAudio)5282 void WebPageProxy::requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String originIdentifier, const Vector<String>& audioDeviceUIDs, const Vector<String>& videoDeviceUIDs) 5283 5283 { 5284 5284 WebFrameProxy* frame = m_process->webFrame(frameID); … … 5286 5286 5287 5287 RefPtr<API::SecurityOrigin> origin = API::SecurityOrigin::create(SecurityOrigin::createFromDatabaseIdentifier(originIdentifier)); 5288 RefPtr<UserMediaPermissionRequestProxy> request = m_userMediaPermissionRequestManager.createRequest(userMediaID, audio , video, deviceUIDsVideo, deviceUIDsAudio);5288 RefPtr<UserMediaPermissionRequestProxy> request = m_userMediaPermissionRequestManager.createRequest(userMediaID, audioDeviceUIDs, videoDeviceUIDs); 5289 5289 5290 5290 if (!m_uiClient->decidePolicyForUserMediaPermissionRequest(*this, *frame, *origin.get(), *request.get())) -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r190260 r190262 1185 1185 void requestGeolocationPermissionForFrame(uint64_t geolocationID, uint64_t frameID, String originIdentifier); 1186 1186 1187 void requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String originIdentifier, bool audio, bool video, const Vector<String>& deviceUIDsVideo, const Vector<String>& deviceUIDsAudio);1187 void requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String originIdentifier, const Vector<String>& audioDeviceUIDs, const Vector<String>& videoDeviceUIDs); 1188 1188 1189 1189 void runModal(); -
trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in
r190064 r190262 268 268 #if ENABLE(MEDIA_STREAM) 269 269 # MediaSteam messages 270 RequestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String originIdentifier, bool audio, bool video, Vector<String> deviceUIDsVideo, Vector<String> deviceUIDsAudio)270 RequestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String originIdentifier, Vector<String> audioDeviceUIDs, Vector<String> videoDeviceUIDs) 271 271 #endif 272 272 -
trunk/Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp
r188385 r190262 64 64 65 65 SecurityOrigin* origin = request.securityOrigin(); 66 m_page.send(Messages::WebPageProxy::RequestUserMediaPermissionForFrame(requestID, webFrame->frameID(), origin->databaseIdentifier(), request. requiresAudio(), request.requiresVideo(), request.videoDeviceUIDs(), request.audioDeviceUIDs()));66 m_page.send(Messages::WebPageProxy::RequestUserMediaPermissionForFrame(requestID, webFrame->frameID(), origin->databaseIdentifier(), request.audioDeviceUIDs(), request.videoDeviceUIDs())); 67 67 } 68 68 … … 75 75 } 76 76 77 void UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision(uint64_t requestID, bool allowed, const String& deviceUIDVideo, const String& deviceUIDAudio)77 void UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision(uint64_t requestID, bool allowed, const String& audioDeviceUID, const String& videoDeviceUID) 78 78 { 79 79 RefPtr<UserMediaRequest> request = m_idToRequestMap.take(requestID); … … 83 83 84 84 if (allowed) 85 request->userMediaAccessGranted( deviceUIDVideo, deviceUIDAudio);85 request->userMediaAccessGranted(audioDeviceUID, videoDeviceUID); 86 86 else 87 87 request->userMediaAccessDenied(); -
trunk/Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.h
r187258 r190262 38 38 void cancelRequest(WebCore::UserMediaRequest&); 39 39 40 void didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed, const String& deviceUIDVideo, const String& deviceUIDAudio);40 void didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed, const String& audioDeviceUID, const String& videoDeviceUID); 41 41 42 42 private: -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r190152 r190262 3313 3313 3314 3314 #if ENABLE(MEDIA_STREAM) 3315 void WebPage::didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed, const String& deviceUIDVideo, const String& deviceUIDAudio)3316 { 3317 m_userMediaPermissionRequestManager.didReceiveUserMediaPermissionDecision(userMediaID, allowed, deviceUIDVideo, deviceUIDAudio);3315 void WebPage::didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed, const String& audioDeviceUID, const String& videoDeviceUID) 3316 { 3317 m_userMediaPermissionRequestManager.didReceiveUserMediaPermissionDecision(userMediaID, allowed, audioDeviceUID, videoDeviceUID); 3318 3318 } 3319 3319 #endif -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h
r190064 r190262 1108 1108 1109 1109 #if ENABLE(MEDIA_STREAM) 1110 WK_EXPORT void didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed, const String& deviceUIDVideo, const String& deviceUIDAudio);1110 WK_EXPORT void didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed, const String& audioDeviceUID, const String& videoDeviceUID); 1111 1111 #endif 1112 1112 -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in
r189105 r190262 282 282 #if ENABLE(MEDIA_STREAM) 283 283 # MediaSteam 284 DidReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed, String deviceUIDVideo, String deviceUIDAudio)284 DidReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed, String audioDeviceUID, String videoDeviceUID) 285 285 #endif 286 286 -
trunk/Source/WebKit2/WebProcess/com.apple.WebProcess.sb.in
r188365 r190262 313 313 (global-name "com.apple.coremedia.endpointplaybacksession.xpc") 314 314 (global-name "com.apple.coremedia.endpointpicker.xpc")) 315 316 317 ;; Camera access 318 (allow device-camera) 319 (allow file-read* 320 (literal "/Library/Preferences/com.apple.coremedia") 321 (home-literal "/Library/Preferences/com.apple.coremedia")) 322 (allow mach-lookup (extension "com.apple.app-sandbox.mach")) 323 (allow mach-lookup 324 (global-name "com.apple.cmio.AppleCameraAssistant") 325 ;; Apple DAL assistants 326 (global-name "com.apple.cmio.VDCAssistant") 327 (global-name "com.apple.cmio.AVCAssistant") 328 (global-name "com.apple.cmio.IIDCVideoAssistant") 329 ;; QuickTimeIIDCDigitizer assistant 330 (global-name "com.apple.IIDCAssistant")) 331 (allow iokit-open 332 ;; QuickTimeUSBVDCDigitizer 333 (iokit-user-client-class "IOUSBDeviceUserClientV2") 334 (iokit-user-client-class "IOUSBInterfaceUserClientV2")) 335 336 ;; Microphone 337 (allow device-microphone) -
trunk/Tools/ChangeLog
r190260 r190262 1 2015-09-25 Eric Carlson <eric.carlson@apple.com> 2 3 Clean up user media request internal API 4 https://bugs.webkit.org/show_bug.cgi?id=149527 5 6 Reviewed by Tim Horton. 7 8 * TestWebKitAPI/Tests/WebKit2/UserMedia.cpp: 9 (TestWebKitAPI::decidePolicyForUserMediaPermissionRequestCallBack): Update for API changes. 10 11 * WebKitTestRunner/TestController.cpp: 12 (WTR::TestController::decidePolicyForUserMediaPermissionRequestIfPossible): Ditto. 13 1 14 2015-09-25 Simon Fraser <simon.fraser@apple.com> 2 15 -
trunk/Tools/TestWebKitAPI/Tests/WebKit2/UserMedia.cpp
r188385 r190262 35 35 void decidePolicyForUserMediaPermissionRequestCallBack(WKPageRef, WKFrameRef, WKSecurityOriginRef, WKUserMediaPermissionRequestRef permissionRequest, const void* /* clientInfo */) 36 36 { 37 WKUserMediaPermissionRequestAllowBest(permissionRequest); 37 WKRetainPtr<WKArrayRef> audioDeviceUIDs = WKUserMediaPermissionRequestAudioDeviceUIDs(permissionRequest); 38 WKRetainPtr<WKArrayRef> videoDeviceUIDs = WKUserMediaPermissionRequestVideoDeviceUIDs(permissionRequest); 39 40 if (WKArrayGetSize(videoDeviceUIDs.get()) || WKArrayGetSize(audioDeviceUIDs.get())) { 41 WKRetainPtr<WKStringRef> videoDeviceUID; 42 if (WKArrayGetSize(videoDeviceUIDs.get())) 43 videoDeviceUID = reinterpret_cast<WKStringRef>(WKArrayGetItemAtIndex(videoDeviceUIDs.get(), 0)); 44 else 45 videoDeviceUID = WKStringCreateWithUTF8CString(""); 46 47 WKRetainPtr<WKStringRef> audioDeviceUID; 48 if (WKArrayGetSize(audioDeviceUIDs.get())) 49 audioDeviceUID = reinterpret_cast<WKStringRef>(WKArrayGetItemAtIndex(audioDeviceUIDs.get(), 0)); 50 else 51 audioDeviceUID = WKStringCreateWithUTF8CString(""); 52 53 WKUserMediaPermissionRequestAllow(permissionRequest, videoDeviceUID.get(), audioDeviceUID.get()); 54 } 55 38 56 done = true; 39 57 } -
trunk/Tools/WebKitTestRunner/TestController.cpp
r190065 r190262 1620 1620 1621 1621 for (auto& request : m_userMediaPermissionRequests) { 1622 if (m_isUserMediaPermissionAllowed) { 1623 if (WKArrayGetSize(WKUserMediaPermissionRequestDeviceNamesVideo(request.get())) || WKArrayGetSize(WKUserMediaPermissionRequestDeviceNamesAudio(request.get()))) 1624 WKUserMediaPermissionRequestAllow(request.get(), WKUserMediaPermissionRequestFirstVideoDeviceUID(request.get()), WKUserMediaPermissionRequestFirstAudioDeviceUID(request.get())); 1622 WKRetainPtr<WKArrayRef> audioDeviceUIDs = WKUserMediaPermissionRequestAudioDeviceUIDs(request.get()); 1623 WKRetainPtr<WKArrayRef> videoDeviceUIDs = WKUserMediaPermissionRequestVideoDeviceUIDs(request.get()); 1624 1625 if (m_isUserMediaPermissionAllowed && (WKArrayGetSize(videoDeviceUIDs.get()) || WKArrayGetSize(audioDeviceUIDs.get()))) { 1626 WKRetainPtr<WKStringRef> videoDeviceUID; 1627 if (WKArrayGetSize(videoDeviceUIDs.get())) 1628 videoDeviceUID = reinterpret_cast<WKStringRef>(WKArrayGetItemAtIndex(videoDeviceUIDs.get(), 0)); 1629 else 1630 videoDeviceUID = WKStringCreateWithUTF8CString(""); 1631 1632 WKRetainPtr<WKStringRef> audioDeviceUID; 1633 if (WKArrayGetSize(audioDeviceUIDs.get())) 1634 audioDeviceUID = reinterpret_cast<WKStringRef>(WKArrayGetItemAtIndex(audioDeviceUIDs.get(), 0)); 1635 else 1636 audioDeviceUID = WKStringCreateWithUTF8CString(""); 1637 1638 WKUserMediaPermissionRequestAllow(request.get(), videoDeviceUID.get(), audioDeviceUID.get()); 1639 1625 1640 } else 1626 1641 WKUserMediaPermissionRequestDeny(request.get());
Note: See TracChangeset
for help on using the changeset viewer.