Diff
Modified: trunk/Source/WebCore/ChangeLog (187257 => 187258)
--- trunk/Source/WebCore/ChangeLog 2015-07-23 22:06:56 UTC (rev 187257)
+++ trunk/Source/WebCore/ChangeLog 2015-07-23 22:15:22 UTC (rev 187258)
@@ -1,3 +1,16 @@
+2015-07-23 Matthew Daiter <[email protected]>
+
+ Bridged passing lists of devices between the UIProcess and the WebProcess
+ https://bugs.webkit.org/show_bug.cgi?id=147056
+ <rdar://problem/21883094>
+
+ Reviewed by Brent Fulgham.
+
+ * Modules/mediastream/UserMediaRequest.h: Added fields to store and
+ retrieve lists of devices
+ (WebCore::UserMediaRequest::deviceUIDsVideo):
+ (WebCore::UserMediaRequest::deviceUIDsAudio):
+
2015-07-19 Matt Rajca <[email protected]>
Media Session: add support for ducking media elements
Modified: trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h (187257 => 187258)
--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h 2015-07-23 22:06:56 UTC (rev 187257)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h 2015-07-23 22:15:22 UTC (rev 187258)
@@ -73,6 +73,8 @@
const Vector<String>& videoDeviceUIDs() const { return m_videoDeviceUIDs; }
const Vector<String>& audioDeviceUIDs() const { return m_audioDeviceUIDs; }
+ const Vector<String>& deviceUIDsVideo() const { return m_deviceUIDsVideo; }
+ const Vector<String>& deviceUIDsAudio() const { return m_deviceUIDsAudio; }
private:
UserMediaRequest(ScriptExecutionContext*, UserMediaController*, PassRefPtr<MediaConstraints> audioConstraints, PassRefPtr<MediaConstraints> videoConstraints, MediaDevices::Promise&&);
@@ -88,6 +90,9 @@
RefPtr<MediaConstraints> m_audioConstraints;
RefPtr<MediaConstraints> m_videoConstraints;
+
+ Vector<String> m_deviceUIDsVideo;
+ Vector<String> m_deviceUIDsAudio;
Vector<String> m_videoDeviceUIDs;
Vector<String> m_audioDeviceUIDs;
Modified: trunk/Source/WebKit2/ChangeLog (187257 => 187258)
--- trunk/Source/WebKit2/ChangeLog 2015-07-23 22:06:56 UTC (rev 187257)
+++ trunk/Source/WebKit2/ChangeLog 2015-07-23 22:15:22 UTC (rev 187258)
@@ -1,3 +1,35 @@
+2015-07-23 Matthew Daiter <[email protected]>
+
+ Bridged passing lists of devices between the UIProcess and the WebProcess
+ https://bugs.webkit.org/show_bug.cgi?id=147056
+ <rdar://problem/21883094>
+
+ Reviewed by Brent Fulgham.
+
+ * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: Modified file
+ to reflect changes made to the header in the .messages.in file
+ (WebKit::UserMediaPermissionRequestManagerProxy::createRequest): Ditto
+ (WebKit::UserMediaPermissionRequestManagerProxy::didReceiveUserMediaPermissionDecision):
+ * UIProcess/UserMediaPermissionRequestManagerProxy.h: Ditto
+ * UIProcess/UserMediaPermissionRequestProxy.cpp: Ditto
+ (WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):
+ * UIProcess/UserMediaPermissionRequestProxy.h:
+ (WebKit::UserMediaPermissionRequestProxy::create):
+ (WebKit::UserMediaPermissionRequestProxy::deviceUIDsVideo):
+ (WebKit::UserMediaPermissionRequestProxy::deviceUIDsAudio):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::requestUserMediaPermissionForFrame):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.messages.in: Changed heading
+ * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
+ (WebKit::UserMediaPermissionRequestManager::startRequest):
+ (WebKit::UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision):
+ * WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::didReceiveUserMediaPermissionDecision):
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/WebPage.messages.in: Changed heading
+
2015-07-23 Yongjun Zhang <[email protected]>
Adopt the new _previewItemControllerDidCancelPreview delegate method.
Modified: trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp (187257 => 187258)
--- trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp 2015-07-23 22:06:56 UTC (rev 187257)
+++ trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp 2015-07-23 22:15:22 UTC (rev 187258)
@@ -38,9 +38,9 @@
m_pendingRequests.clear();
}
-PassRefPtr<UserMediaPermissionRequestProxy> UserMediaPermissionRequestManagerProxy::createRequest(uint64_t userMediaID, bool requiresAudio, bool requiresVideo)
+PassRefPtr<UserMediaPermissionRequestProxy> UserMediaPermissionRequestManagerProxy::createRequest(uint64_t userMediaID, bool requiresAudio, bool requiresVideo, const Vector<String>& deviceUIDsVideo, const Vector<String>& deviceUIDsAudio)
{
- RefPtr<UserMediaPermissionRequestProxy> request = UserMediaPermissionRequestProxy::create(*this, userMediaID, requiresAudio, requiresVideo);
+ RefPtr<UserMediaPermissionRequestProxy> request = UserMediaPermissionRequestProxy::create(*this, userMediaID, requiresAudio, requiresVideo, deviceUIDsVideo, deviceUIDsAudio);
m_pendingRequests.add(userMediaID, request.get());
return request.release();
}
@@ -54,7 +54,8 @@
return;
#if ENABLE(MEDIA_STREAM)
- m_page.process().send(Messages::WebPage::DidReceiveUserMediaPermissionDecision(userMediaID, allowed), m_page.pageID());
+ // 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
+ m_page.process().send(Messages::WebPage::DidReceiveUserMediaPermissionDecision(userMediaID, allowed, "", ""), m_page.pageID());
#else
UNUSED_PARAM(allowed);
#endif
Modified: trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.h (187257 => 187258)
--- trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.h 2015-07-23 22:06:56 UTC (rev 187257)
+++ trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.h 2015-07-23 22:15:22 UTC (rev 187258)
@@ -33,7 +33,7 @@
void invalidateRequests();
// Create a request to be presented to the user.
- PassRefPtr<UserMediaPermissionRequestProxy> createRequest(uint64_t userMediaID, bool audio, bool video);
+ PassRefPtr<UserMediaPermissionRequestProxy> createRequest(uint64_t userMediaID, bool audio, bool video, const Vector<String>& deviceUIDsVideo, const Vector<String>& deviceUIDsAudio);
// Called by UserMediaPermissionRequestProxy when a decision is made by the user.
void didReceiveUserMediaPermissionDecision(uint64_t, bool allow);
Modified: trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp (187257 => 187258)
--- trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp 2015-07-23 22:06:56 UTC (rev 187257)
+++ trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.cpp 2015-07-23 22:15:22 UTC (rev 187258)
@@ -24,11 +24,13 @@
namespace WebKit {
-UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy(UserMediaPermissionRequestManagerProxy& manager, uint64_t userMediaID, bool requiresAudio, bool requiresVideo)
+UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy(UserMediaPermissionRequestManagerProxy& manager, uint64_t userMediaID, bool requiresAudio, bool requiresVideo, const Vector<String>& deviceUIDsVideo, const Vector<String>& deviceUIDsAudio)
: m_manager(manager)
, m_userMediaID(userMediaID)
, m_requiresAudio(requiresAudio)
, m_requiresVideo(requiresVideo)
+ , m_deviceUIDsVideo(deviceUIDsVideo)
+ , m_deviceUIDsAudio(deviceUIDsAudio)
{
}
Modified: trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.h (187257 => 187258)
--- trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.h 2015-07-23 22:06:56 UTC (rev 187257)
+++ trunk/Source/WebKit2/UIProcess/UserMediaPermissionRequestProxy.h 2015-07-23 22:15:22 UTC (rev 187258)
@@ -21,6 +21,8 @@
#include "APIObject.h"
#include <wtf/PassRefPtr.h>
+#include <wtf/Vector.h>
+#include <wtf/text/WTFString.h>
namespace WebKit {
@@ -28,9 +30,9 @@
class UserMediaPermissionRequestProxy : public API::ObjectImpl<API::Object::Type::UserMediaPermissionRequest> {
public:
- static PassRefPtr<UserMediaPermissionRequestProxy> create(UserMediaPermissionRequestManagerProxy& manager, uint64_t userMediaID, bool requiresAudio, bool requiresVideo)
+ static PassRefPtr<UserMediaPermissionRequestProxy> create(UserMediaPermissionRequestManagerProxy& manager, uint64_t userMediaID, bool requiresAudio, bool requiresVideo, const Vector<String>& deviceUIDsVideo, const Vector<String>& deviceUIDsAudio)
{
- return adoptRef(new UserMediaPermissionRequestProxy(manager, userMediaID, requiresAudio, requiresVideo));
+ return adoptRef(new UserMediaPermissionRequestProxy(manager, userMediaID, requiresAudio, requiresVideo, deviceUIDsVideo, deviceUIDsAudio));
}
void allow();
@@ -40,14 +42,19 @@
bool requiresAudio() const { return m_requiresAudio; }
bool requiresVideo() const { return m_requiresVideo; }
+
+ const Vector<String>& deviceUIDsVideo() const { return m_deviceUIDsVideo; }
+ const Vector<String>& deviceUIDsAudio() const { return m_deviceUIDsAudio; }
private:
- UserMediaPermissionRequestProxy(UserMediaPermissionRequestManagerProxy&, uint64_t userMediaID, bool requiresAudio, bool requiresVideo);
+ UserMediaPermissionRequestProxy(UserMediaPermissionRequestManagerProxy&, uint64_t userMediaID, bool requiresAudio, bool requiresVideo, const Vector<String>& deviceUIDsVideo, const Vector<String>& deviceUIDsAudio);
UserMediaPermissionRequestManagerProxy& m_manager;
uint64_t m_userMediaID;
bool m_requiresAudio;
bool m_requiresVideo;
+ Vector<String> m_deviceUIDsVideo;
+ Vector<String> m_deviceUIDsAudio;
};
} // namespace WebKit
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (187257 => 187258)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2015-07-23 22:06:56 UTC (rev 187257)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2015-07-23 22:15:22 UTC (rev 187258)
@@ -5313,13 +5313,13 @@
request->deny();
}
-void WebPageProxy::requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String originIdentifier, bool audio, bool video)
+void WebPageProxy::requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String originIdentifier, bool audio, bool video, const Vector<String>& deviceUIDsVideo, const Vector<String>& deviceUIDsAudio)
{
WebFrameProxy* frame = m_process->webFrame(frameID);
MESSAGE_CHECK(frame);
RefPtr<API::SecurityOrigin> origin = API::SecurityOrigin::create(SecurityOrigin::createFromDatabaseIdentifier(originIdentifier));
- RefPtr<UserMediaPermissionRequestProxy> request = m_userMediaPermissionRequestManager.createRequest(userMediaID, audio, video);
+ RefPtr<UserMediaPermissionRequestProxy> request = m_userMediaPermissionRequestManager.createRequest(userMediaID, audio, video, deviceUIDsVideo, deviceUIDsAudio);
if (!m_uiClient->decidePolicyForUserMediaPermissionRequest(*this, *frame, *origin.get(), *request.get()))
request->deny();
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (187257 => 187258)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2015-07-23 22:06:56 UTC (rev 187257)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2015-07-23 22:15:22 UTC (rev 187258)
@@ -1207,7 +1207,7 @@
void reachedApplicationCacheOriginQuota(const String& originIdentifier, uint64_t currentQuota, uint64_t totalBytesNeeded, PassRefPtr<Messages::WebPageProxy::ReachedApplicationCacheOriginQuota::DelayedReply>);
void requestGeolocationPermissionForFrame(uint64_t geolocationID, uint64_t frameID, String originIdentifier);
- void requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String originIdentifier, bool audio, bool video);
+ void requestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String originIdentifier, bool audio, bool video, const Vector<String>& deviceUIDsVideo, const Vector<String>& deviceUIDsAudio);
void runModal();
void notifyScrollerThumbIsVisibleInRect(const WebCore::IntRect&);
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in (187257 => 187258)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in 2015-07-23 22:06:56 UTC (rev 187257)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in 2015-07-23 22:15:22 UTC (rev 187258)
@@ -267,7 +267,7 @@
#if ENABLE(MEDIA_STREAM)
# MediaSteam messages
- RequestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String originIdentifier, bool audio, bool video)
+ RequestUserMediaPermissionForFrame(uint64_t userMediaID, uint64_t frameID, String originIdentifier, bool audio, bool video, Vector<String> deviceUIDsVideo, Vector<String> deviceUIDsAudio)
#endif
# Notification messages
Modified: trunk/Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp (187257 => 187258)
--- trunk/Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp 2015-07-23 22:06:56 UTC (rev 187257)
+++ trunk/Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp 2015-07-23 22:15:22 UTC (rev 187258)
@@ -63,7 +63,7 @@
ASSERT(webFrame);
SecurityOrigin* origin = request.securityOrigin();
- m_page.send(Messages::WebPageProxy::RequestUserMediaPermissionForFrame(requestID, webFrame->frameID(), origin->databaseIdentifier(), request.requiresAudio(), request.requiresVideo()));
+ m_page.send(Messages::WebPageProxy::RequestUserMediaPermissionForFrame(requestID, webFrame->frameID(), origin->databaseIdentifier(), request.requiresAudio(), request.requiresVideo(), request.deviceUIDsVideo(), request.deviceUIDsAudio()));
}
void UserMediaPermissionRequestManager::cancelRequest(UserMediaRequest& request)
@@ -74,7 +74,7 @@
m_idToRequestMap.remove(requestID);
}
-void UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision(uint64_t requestID, bool allowed)
+void UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision(uint64_t requestID, bool allowed, const String& deviceUIDVideo, const String& deviceUIDAudio)
{
RefPtr<UserMediaRequest> request = m_idToRequestMap.take(requestID);
if (!request)
Modified: trunk/Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.h (187257 => 187258)
--- trunk/Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.h 2015-07-23 22:06:56 UTC (rev 187257)
+++ trunk/Source/WebKit2/WebProcess/MediaStream/UserMediaPermissionRequestManager.h 2015-07-23 22:15:22 UTC (rev 187258)
@@ -37,7 +37,7 @@
void startRequest(WebCore::UserMediaRequest&);
void cancelRequest(WebCore::UserMediaRequest&);
- void didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed);
+ void didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed, const String& deviceUIDVideo, const String& deviceUIDAudio);
private:
WebPage& m_page;
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (187257 => 187258)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2015-07-23 22:06:56 UTC (rev 187257)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2015-07-23 22:15:22 UTC (rev 187258)
@@ -3361,9 +3361,9 @@
}
#if ENABLE(MEDIA_STREAM)
-void WebPage::didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed)
+void WebPage::didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed, const String& deviceUIDVideo, const String& deviceUIDAudio)
{
- m_userMediaPermissionRequestManager.didReceiveUserMediaPermissionDecision(userMediaID, allowed);
+ m_userMediaPermissionRequestManager.didReceiveUserMediaPermissionDecision(userMediaID, allowed, deviceUIDVideo, deviceUIDAudio);
}
#endif
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (187257 => 187258)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2015-07-23 22:06:56 UTC (rev 187257)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2015-07-23 22:15:22 UTC (rev 187258)
@@ -1092,7 +1092,7 @@
void didReceiveNotificationPermissionDecision(uint64_t notificationID, bool allowed);
#if ENABLE(MEDIA_STREAM)
- WK_EXPORT void didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed);
+ WK_EXPORT void didReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed, const String& deviceUIDVideo, const String& deviceUIDAudio);
#endif
void advanceToNextMisspelling(bool startBeforeSelection);
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (187257 => 187258)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in 2015-07-23 22:06:56 UTC (rev 187257)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in 2015-07-23 22:15:22 UTC (rev 187258)
@@ -288,7 +288,7 @@
#if ENABLE(MEDIA_STREAM)
# MediaSteam
- DidReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed)
+ DidReceiveUserMediaPermissionDecision(uint64_t userMediaID, bool allowed, String deviceUIDVideo, String deviceUIDAudio)
#endif
# Notification