Changeset 188385 in webkit
- Timestamp:
- Aug 13, 2015 10:33:43 AM (9 years ago)
- Location:
- trunk
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r188379 r188385 1 2015-08-13 Matthew Daiter <mdaiter@apple.com> 2 3 UserMediaRequest should supply IDs of devices selected by user 4 https://bugs.webkit.org/show_bug.cgi?id=147263 5 <rdar://problem/21983345> 6 7 Reviewed by Jer Noble. 8 9 * Modules/mediastream/UserMediaRequest.cpp: 10 (WebCore::UserMediaRequest::userMediaAccessGranted): 11 * Modules/mediastream/UserMediaRequest.h: 12 * platform/mock/UserMediaClientMock.h: 13 1 14 2015-08-12 Carlos Garcia Campos <cgarcia@igalia.com> 2 15 -
trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp
r188356 r188385 144 144 } 145 145 146 void UserMediaRequest::userMediaAccessGranted() 147 { 146 void UserMediaRequest::userMediaAccessGranted(const String& videoDeviceUID, const String& audioDeviceUID) 147 { 148 m_chosenVideoDeviceUID = videoDeviceUID; 149 m_chosenAudioDeviceUID = audioDeviceUID; 148 150 RefPtr<UserMediaRequest> protectedThis(this); 149 151 callOnMainThread([protectedThis] { -
trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h
r188356 r188385 67 67 68 68 void start(); 69 WEBCORE_EXPORT void userMediaAccessGranted( );69 WEBCORE_EXPORT void userMediaAccessGranted(const String& videoDeviceUID, const String& audioDeviceUID); 70 70 WEBCORE_EXPORT void userMediaAccessDenied(); 71 71 … … 75 75 const Vector<String>& videoDeviceUIDs() const { return m_videoDeviceUIDs; } 76 76 const Vector<String>& audioDeviceUIDs() const { return m_audioDeviceUIDs; } 77 78 const String& firstVideoDeviceUID() const { return !videoDeviceUIDs().isEmpty() ? videoDeviceUIDs().at(0) : emptyString(); } 79 const String& firstAudioDeviceUID() const { return !audioDeviceUIDs().isEmpty() ? audioDeviceUIDs().at(0) : emptyString(); } 77 80 78 81 private: … … 95 98 Vector<String> m_audioDeviceUIDs; 96 99 100 String m_chosenVideoDeviceUID; 101 String m_chosenAudioDeviceUID; 102 97 103 UserMediaController* m_controller; 98 104 -
trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h
r187282 r188385 51 51 virtual ~RealtimeMediaSourceCenter(); 52 52 53 static RealtimeMediaSourceCenter& singleton();53 WEBCORE_EXPORT static RealtimeMediaSourceCenter& singleton(); 54 54 static void setSharedStreamCenter(RealtimeMediaSourceCenter*); 55 55 -
trunk/Source/WebCore/platform/mock/UserMediaClientMock.h
r177259 r188385 46 46 { 47 47 if (m_requestSuccess) 48 m_request->userMediaAccessGranted( );48 m_request->userMediaAccessGranted(m_request->videoDeviceUIDs().at(0), m_request->audioDeviceUIDs().at(0)); 49 49 else 50 50 m_request->userMediaAccessDenied(); -
trunk/Source/WebKit/mac/ChangeLog
r188217 r188385 1 2015-08-13 Matthew Daiter <mdaiter@apple.com> 2 3 Linking device query ability from WebKit2 to clients 4 https://bugs.webkit.org/show_bug.cgi?id=147263 5 <rdar://problem/21983345> 6 7 Reviewed by Jer Noble. 8 9 * WebCoreSupport/WebUserMediaClient.mm: 10 (-[WebUserMediaPolicyListener allow]): 11 (-[WebUserMediaPolicyListener allowDeviceWithVideoUID:andAudioUID:]): 12 13 1 14 2015-08-10 Chris Dumez <cdumez@apple.com> 2 15 -
trunk/Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.mm
r186279 r188385 48 48 - (id)initWithUserMediaRequest:(PassRefPtr<UserMediaRequest>)request; 49 49 - (void)cancelRequest; 50 - (void)allow ;50 - (void)allowDeviceWithVideoUID:(const String&)videoUID andAudioUID:(const String&)audioUID; 51 51 - (void)deny; 52 52 @end … … 153 153 if (!_request) 154 154 return; 155 156 _request->userMediaAccessGranted(); 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 } 163 164 - (void)allowDeviceWithVideoUID:(const String&)videoUID andAudioUID:(const String&)audioUID 165 { 166 #if ENABLE(MEDIA_STREAM) 167 if (!_request) 168 return; 169 170 _request->userMediaAccessGranted(videoUID, audioUID); 171 157 172 RemoveRequestFromMap(_request.get()); 158 173 #endif -
trunk/Source/WebKit2/ChangeLog
r188365 r188385 1 2015-08-13 Matthew Daiter <mdaiter@apple.com> 2 3 Linking device query ability from WebKit2 to clients 4 https://bugs.webkit.org/show_bug.cgi?id=147263 5 <rdar://problem/21983345> 6 7 Reviewed by Jer Noble. 8 9 * Platform/mac/LayerHostingContext.mm: 10 (WebKit::LayerHostingContext::setColorMatchUntaggedContent): 11 (WebKit::LayerHostingContext::colorMatchUntaggedContent): 12 * UIProcess/API/C/WKUserMediaPermissionRequest.cpp: 13 (WKUserMediaPermissionRequestAllow): 14 (WKUserMediaPermissionRequestDeviceNamesVideo): 15 (WKUserMediaPermissionRequestDeviceNamesAudio): 16 * UIProcess/API/C/WKUserMediaPermissionRequest.h: 17 * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: 18 (WebKit::UserMediaPermissionRequestManagerProxy::didReceiveUserMediaPermissionDecision): Deleted. 19 * UIProcess/UserMediaPermissionRequestManagerProxy.h: 20 * UIProcess/UserMediaPermissionRequestProxy.cpp: 21 (WebKit::UserMediaPermissionRequestProxy::allow): 22 (WebKit::UserMediaPermissionRequestProxy::deny): 23 * UIProcess/UserMediaPermissionRequestProxy.h: 24 * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: 25 (WebKit::UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision): 26 27 1 28 2015-08-12 Alexey Proskuryakov <ap@apple.com> 2 29 -
trunk/Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.cpp
r176011 r188385 22 22 #include "UserMediaPermissionRequestProxy.h" 23 23 #include "WKAPICast.h" 24 #include "WKArray.h" 25 #include "WKMutableArray.h" 26 #include "WKString.h" 24 27 25 28 using namespace WebKit; … … 30 33 } 31 34 32 void WKUserMediaPermissionRequestAllow(WKUserMediaPermissionRequestRef userMediaPermissionRequestRef) 35 36 void WKUserMediaPermissionRequestAllowBest(WKUserMediaPermissionRequestRef userMediaPermissionRequestRef) 33 37 { 34 toImpl(userMediaPermissionRequestRef)->allow(); 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)); 35 46 } 36 47 … … 39 50 toImpl(userMediaPermissionRequestRef)->deny(); 40 51 } 52 53 WKArrayRef WKUserMediaPermissionRequestDeviceNamesVideo(WKUserMediaPermissionRequestRef userMediaPermissionRef) 54 { 55 WKMutableArrayRef array = WKMutableArrayRef(); 56 for (auto& name : toImpl(userMediaPermissionRef)->videoDeviceUIDs()) { 57 String deviceName = toImpl(userMediaPermissionRef)->getDeviceNameForUID(name, WebCore::RealtimeMediaSource::Type::Video); 58 WKArrayAppendItem(array, toAPI(API::String::create(deviceName).ptr())); 59 } 60 return array; 61 } 62 63 WKArrayRef WKUserMediaPermissionRequestDeviceNamesAudio(WKUserMediaPermissionRequestRef userMediaPermissionRef) 64 { 65 WKMutableArrayRef array = WKMutableArrayRef(); 66 for (auto& name : toImpl(userMediaPermissionRef)->audioDeviceUIDs()) { 67 String deviceName = toImpl(userMediaPermissionRef)->getDeviceNameForUID(name, WebCore::RealtimeMediaSource::Type::Audio); 68 WKArrayAppendItem(array, toAPI(API::String::create(deviceName).ptr())); 69 } 70 return array; 71 } 72 73 WKStringRef WKUserMediaPermissionRequestFirstVideoDeviceUID(WKUserMediaPermissionRequestRef userMediaPermissionRef) 74 { 75 return !toImpl(userMediaPermissionRef)->videoDeviceUIDs().isEmpty() ? reinterpret_cast<WKStringRef>(WKArrayGetItemAtIndex(WKUserMediaPermissionRequestDeviceNamesVideo(userMediaPermissionRef), 0)) : reinterpret_cast<WKStringRef>(WKStringCreateWithUTF8CString("")); 76 } 77 78 WKStringRef WKUserMediaPermissionRequestFirstAudioDeviceUID(WKUserMediaPermissionRequestRef userMediaPermissionRef) 79 { 80 return !toImpl(userMediaPermissionRef)->audioDeviceUIDs().isEmpty() ? reinterpret_cast<WKStringRef>(WKArrayGetItemAtIndex(WKUserMediaPermissionRequestDeviceNamesAudio(userMediaPermissionRef), 0)) : reinterpret_cast<WKStringRef>(WKStringCreateWithUTF8CString("")); 81 } -
trunk/Source/WebKit2/UIProcess/API/C/WKUserMediaPermissionRequest.h
r176011 r188385 28 28 WK_EXPORT WKTypeID WKUserMediaPermissionRequestGetTypeID(); 29 29 30 WK_EXPORT void WKUserMediaPermissionRequestAllow(WKUserMediaPermissionRequestRef); 30 WK_EXPORT void WKUserMediaPermissionRequestAllowBest(WKUserMediaPermissionRequestRef); 31 WK_EXPORT void WKUserMediaPermissionRequestAllow(WKUserMediaPermissionRequestRef, WKStringRef videoDeviceUID, WKStringRef audioDeviceUID); 31 32 WK_EXPORT void WKUserMediaPermissionRequestDeny(WKUserMediaPermissionRequestRef); 33 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); 32 39 33 40 #ifdef __cplusplus -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitUserMediaPermissionRequest.cpp
r188121 r188385 71 71 72 72 priv->madeDecision = true; 73 priv->request->allow(); 73 74 const String& videoDevice = priv->request->firstVideoDeviceUID(); 75 const String& audioDevice = priv->request->firstAudioDeviceUID(); 76 77 priv->request->allow(videoDevice, audioDevice); 78 } 79 80 static void webkitUserMediaPermissionRequestAllow(WebKitPermissionRequest* request, const char* videoDeviceUID, const char* audioDeviceUID) 81 { 82 ASSERT(WEBKIT_IS_USER_MEDIA_PERMISSION_REQUEST(request)); 83 84 WebKitUserMediaPermissionRequestPrivate* priv = WEBKIT_USER_MEDIA_PERMISSION_REQUEST(request)->priv; 85 86 // Only one decision at a time. 87 if (priv->madeDecision) 88 return; 89 90 priv->madeDecision = true; 91 priv->request->allow(String::fromUTF8(videoDeviceUID), String::fromUTF8(audioDeviceUID)); 74 92 } 75 93 -
trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp
r187258 r188385 46 46 } 47 47 48 void UserMediaPermissionRequestManagerProxy::didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed )48 void UserMediaPermissionRequestManagerProxy::didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed, const String& videoDeviceUID, const String& audioDeviceUID) 49 49 { 50 50 if (!m_page.isValid()) … … 55 55 56 56 #if ENABLE(MEDIA_STREAM) 57 // FIXME(147062): Need to add in the support for Safari to pass strings given from user's decision on what piece of media to open 58 m_page.process().send(Messages::WebPage::DidReceiveUserMediaPermissionDecision(userMediaID, allowed, "", ""), m_page.pageID()); 57 m_page.process().send(Messages::WebPage::DidReceiveUserMediaPermissionDecision(userMediaID, allowed, videoDeviceUID, audioDeviceUID), m_page.pageID()); 59 58 #else 60 59 UNUSED_PARAM(allowed); -
trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.h
r187258 r188385 37 37 38 38 // Called by UserMediaPermissionRequestProxy when a decision is made by the user. 39 void didReceiveUserMediaPermissionDecision(uint64_t, bool allow );39 void didReceiveUserMediaPermissionDecision(uint64_t, bool allow, const String& videoDeviceUID, const String& audioDeviceUID); 40 40 41 41 private: -
trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp
r187435 r188385 37 37 } 38 38 39 void UserMediaPermissionRequestProxy::allow( )39 void UserMediaPermissionRequestProxy::allow(const String& videoDeviceUID, const String& audioDeviceUID) 40 40 { 41 m_manager.didReceiveUserMediaPermissionDecision(m_userMediaID, true );41 m_manager.didReceiveUserMediaPermissionDecision(m_userMediaID, true, videoDeviceUID, audioDeviceUID); 42 42 } 43 43 44 44 void UserMediaPermissionRequestProxy::deny() 45 45 { 46 m_manager.didReceiveUserMediaPermissionDecision(m_userMediaID, false );46 m_manager.didReceiveUserMediaPermissionDecision(m_userMediaID, false, emptyString(), emptyString()); 47 47 } 48 48 -
trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.h
r187435 r188385 37 37 } 38 38 39 void allow( );39 void allow(const String& videoDeviceUID, const String& audioDeviceUID); 40 40 void deny(); 41 41 … … 51 51 const Vector<String>& videoDeviceUIDs() const { return m_videoDeviceUIDs; } 52 52 const Vector<String>& audioDeviceUIDs() const { return m_audiodeviceUIDs; } 53 54 const String& firstVideoDeviceUID() const { return !videoDeviceUIDs().isEmpty() ? videoDeviceUIDs().at(0) : emptyString(); } 55 const String& firstAudioDeviceUID() const { return !audioDeviceUIDs().isEmpty() ? audioDeviceUIDs().at(0) : emptyString(); } 53 56 54 57 private: -
trunk/Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp
r187435 r188385 83 83 84 84 if (allowed) 85 request->userMediaAccessGranted( );85 request->userMediaAccessGranted(deviceUIDVideo, deviceUIDAudio); 86 86 else 87 87 request->userMediaAccessDenied(); -
trunk/Tools/TestWebKitAPI/Tests/WebKit2/UserMedia.cpp
r186182 r188385 35 35 void decidePolicyForUserMediaPermissionRequestCallBack(WKPageRef, WKFrameRef, WKSecurityOriginRef, WKUserMediaPermissionRequestRef permissionRequest, const void* /* clientInfo */) 36 36 { 37 WKUserMediaPermissionRequestAllow (permissionRequest);37 WKUserMediaPermissionRequestAllowBest(permissionRequest); 38 38 done = true; 39 39 } -
trunk/Tools/WebKitTestRunner/TestController.cpp
r188157 r188385 32 32 #include "StringFunctions.h" 33 33 #include "TestInvocation.h" 34 #include <WebKit/WKArray.h> 34 35 #include <WebKit/WKAuthenticationChallenge.h> 35 36 #include <WebKit/WKAuthenticationDecisionListener.h> … … 1493 1494 1494 1495 for (auto& request : m_userMediaPermissionRequests) { 1495 if (m_isUserMediaPermissionAllowed) 1496 WKUserMediaPermissionRequestAllow(request.get()); 1497 else 1496 if (m_isUserMediaPermissionAllowed) { 1497 if (WKArrayGetSize(WKUserMediaPermissionRequestDeviceNamesVideo(request.get())) || WKArrayGetSize(WKUserMediaPermissionRequestDeviceNamesAudio(request.get()))) 1498 WKUserMediaPermissionRequestAllow(request.get(), WKUserMediaPermissionRequestFirstVideoDeviceUID(request.get()), WKUserMediaPermissionRequestFirstAudioDeviceUID(request.get())); 1499 } else 1498 1500 WKUserMediaPermissionRequestDeny(request.get()); 1499 1501 }
Note: See TracChangeset
for help on using the changeset viewer.