Diff
Modified: trunk/Source/WebCore/ChangeLog (269243 => 269244)
--- trunk/Source/WebCore/ChangeLog 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebCore/ChangeLog 2020-11-02 08:35:36 UTC (rev 269244)
@@ -1,3 +1,21 @@
+2020-11-02 Youenn Fablet <[email protected]>
+
+ Stop sending origins from WebProcess to UIProcess for getUserMedia requests
+ https://bugs.webkit.org/show_bug.cgi?id=218192
+
+ Reviewed by Eric Carlson.
+
+ No change of behavior, move UserMediaRequestIdentifier in its own header.
+ Covered by existing tests.
+
+ * Headers.cmake:
+ * Modules/mediastream/UserMediaRequest.cpp:
+ (WebCore::UserMediaRequest::userMediaDocumentOrigin const): Deleted.
+ (WebCore::UserMediaRequest::topLevelDocumentOrigin const): Deleted.
+ * Modules/mediastream/UserMediaRequest.h:
+ * Modules/mediastream/UserMediaRequestIdentifier.h:
+ * WebCore.xcodeproj/project.pbxproj:
+
2020-11-01 Mason Xiao <[email protected]>
REGRESSION (r252689): box-shadow with inset and negative spread renders incorrectly
Modified: trunk/Source/WebCore/Headers.cmake (269243 => 269244)
--- trunk/Source/WebCore/Headers.cmake 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebCore/Headers.cmake 2020-11-02 08:35:36 UTC (rev 269244)
@@ -103,6 +103,7 @@
Modules/mediastream/UserMediaClient.h
Modules/mediastream/UserMediaController.h
Modules/mediastream/UserMediaRequest.h
+ Modules/mediastream/UserMediaRequestIdentifier.h
Modules/notifications/Notification.h
Modules/notifications/NotificationClient.h
Modified: trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp (269243 => 269244)
--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp 2020-11-02 08:35:36 UTC (rev 269244)
@@ -73,20 +73,6 @@
m_allowCompletionHandler();
}
-SecurityOrigin* UserMediaRequest::userMediaDocumentOrigin() const
-{
- if (!m_scriptExecutionContext)
- return nullptr;
- return m_scriptExecutionContext->securityOrigin();
-}
-
-SecurityOrigin* UserMediaRequest::topLevelDocumentOrigin() const
-{
- if (!m_scriptExecutionContext)
- return nullptr;
- return &m_scriptExecutionContext->topOrigin();
-}
-
static bool hasInvalidGetDisplayMediaConstraint(const MediaConstraints& constraints)
{
// https://w3c.github.io/mediacapture-screen-share/#navigator-additions
Modified: trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h (269243 => 269244)
--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h 2020-11-02 08:35:36 UTC (rev 269244)
@@ -40,8 +40,8 @@
#include "MediaConstraints.h"
#include "MediaStreamPrivate.h"
#include "MediaStreamRequest.h"
+#include "UserMediaRequestIdentifier.h"
#include <wtf/CompletionHandler.h>
-#include <wtf/ObjectIdentifier.h>
#include <wtf/UniqueRef.h>
namespace WebCore {
@@ -51,9 +51,6 @@
template<typename IDLType> class DOMPromiseDeferred;
-enum UserMediaRequestIdentifierType { };
-using UserMediaRequestIdentifier = ObjectIdentifier<UserMediaRequestIdentifierType>;
-
class UserMediaRequest : public RefCounted<UserMediaRequest>, public ActiveDOMObject {
public:
static Ref<UserMediaRequest> create(Document&, MediaStreamRequest&&, DOMPromiseDeferred<IDLInterface<MediaStream>>&&);
@@ -74,8 +71,6 @@
const MediaConstraints& audioConstraints() const { return m_request.audioConstraints; }
const MediaConstraints& videoConstraints() const { return m_request.videoConstraints; }
- WEBCORE_EXPORT SecurityOrigin* userMediaDocumentOrigin() const;
- WEBCORE_EXPORT SecurityOrigin* topLevelDocumentOrigin() const;
WEBCORE_EXPORT Document* document() const;
const MediaStreamRequest& request() const { return m_request; }
Added: trunk/Source/WebCore/Modules/mediastream/UserMediaRequestIdentifier.h (0 => 269244)
--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequestIdentifier.h (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequestIdentifier.h 2020-11-02 08:35:36 UTC (rev 269244)
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2020 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include <wtf/ObjectIdentifier.h>
+
+namespace WebCore {
+
+enum UserMediaRequestIdentifierType { };
+using UserMediaRequestIdentifier = ObjectIdentifier<UserMediaRequestIdentifierType>;
+
+} // namespace WebCore
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (269243 => 269244)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2020-11-02 08:35:36 UTC (rev 269244)
@@ -1036,6 +1036,7 @@
412DE4B8219285C00075F3A7 /* RTCRtpCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 412DE4B6219285BF0075F3A7 /* RTCRtpCapabilities.h */; };
412DEF1D23A9186600D840F6 /* MockAudioSharedUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 0744ECEB1E0C4AE5000D0944 /* MockAudioSharedUnit.h */; settings = {ATTRIBUTES = (Private, ); }; };
412DEF1F23A918A300D840F6 /* BaseAudioSharedUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 4177F51E2382545E00C04486 /* BaseAudioSharedUnit.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 412FF93D25472083001DF036 /* UserMediaRequestIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 412FF93B25470970001DF036 /* UserMediaRequestIdentifier.h */; settings = {ATTRIBUTES = (Private, ); }; };
4133CB8B20F80E9900E89B11 /* MediaStreamAudioSourceCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4133CB8920F80E8600E89B11 /* MediaStreamAudioSourceCocoa.cpp */; };
4136C57A2398E5BE002497D3 /* InternalsMapLike.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4136C5782398E5B5002497D3 /* InternalsMapLike.cpp */; };
4136C57C2398ECCF002497D3 /* JSInternalsMapLike.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2D6F3E921C1F85550061DBD6 /* JSInternalsMapLike.cpp */; };
@@ -7516,6 +7517,7 @@
4129C9871F58662D009D7403 /* ReadableStreamSink.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ReadableStreamSink.cpp; sourceTree = "<group>"; };
412BA5FE218C651800365474 /* RTCPMuxPolicy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCPMuxPolicy.h; sourceTree = "<group>"; };
412DE4B6219285BF0075F3A7 /* RTCRtpCapabilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCRtpCapabilities.h; sourceTree = "<group>"; };
+ 412FF93B25470970001DF036 /* UserMediaRequestIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserMediaRequestIdentifier.h; sourceTree = "<group>"; };
413015D51C7B570400091C6E /* FetchResponse.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FetchResponse.cpp; sourceTree = "<group>"; };
413015D51C7B570400091C6F /* FetchBodySource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FetchBodySource.cpp; sourceTree = "<group>"; };
413015D61C7B570400091C6E /* FetchResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FetchResponse.h; sourceTree = "<group>"; };
@@ -17046,6 +17048,7 @@
07221B8F17CEC32700848E51 /* UserMediaController.h */,
07221B9017CEC32700848E51 /* UserMediaRequest.cpp */,
07221B9117CEC32700848E51 /* UserMediaRequest.h */,
+ 412FF93B25470970001DF036 /* UserMediaRequestIdentifier.h */,
);
path = mediastream;
sourceTree = "<group>";
@@ -34699,6 +34702,7 @@
078E092E17D14D1C00420AA1 /* UserMediaClient.h in Headers */,
078E092F17D14D1C00420AA1 /* UserMediaController.h in Headers */,
078E093017D14D1C00420AA1 /* UserMediaRequest.h in Headers */,
+ 412FF93D25472083001DF036 /* UserMediaRequestIdentifier.h in Headers */,
7C3B79721908757B00B47A2D /* UserMessageHandler.h in Headers */,
7CE68345192143A800F4D928 /* UserMessageHandlerDescriptor.h in Headers */,
7CE683471921821500F4D928 /* UserMessageHandlerDescriptorTypes.h in Headers */,
Modified: trunk/Source/WebKit/ChangeLog (269243 => 269244)
--- trunk/Source/WebKit/ChangeLog 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebKit/ChangeLog 2020-11-02 08:35:36 UTC (rev 269244)
@@ -1,3 +1,47 @@
+2020-11-02 Youenn Fablet <[email protected]>
+
+ Stop sending origins from WebProcess to UIProcess for getUserMedia requests
+ https://bugs.webkit.org/show_bug.cgi?id=218192
+
+ Reviewed by Eric Carlson.
+
+ Pass directly a UserMediaRequestIdentifier through IPC.
+ Stop passing origins from IPC and instead compute them from UIProcess side.
+
+ * Scripts/webkit/messages.py:
+ * UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
+ (WebKit::UserMediaPermissionRequestManagerProxy::denyRequest):
+ (WebKit::UserMediaPermissionRequestManagerProxy::grantRequest):
+ (WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):
+ (WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
+ (WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionRequest):
+ (WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionInvalidRequest):
+ (WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionValidRequest):
+ (WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo):
+ (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
+ * UIProcess/UserMediaPermissionRequestManagerProxy.h:
+ * UIProcess/UserMediaPermissionRequestProxy.cpp:
+ (WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):
+ * UIProcess/UserMediaPermissionRequestProxy.h:
+ (WebKit::UserMediaPermissionRequestProxy::create):
+ (WebKit::UserMediaPermissionRequestProxy::userMediaID const):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::requestUserMediaPermissionForFrame):
+ (WebKit::WebPageProxy::enumerateMediaDevicesForFrame):
+ * UIProcess/WebPageProxy.h:
+ * UIProcess/WebPageProxy.messages.in:
+ * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
+ (WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest):
+ (WebKit::UserMediaPermissionRequestManager::userMediaAccessWasGranted):
+ (WebKit::UserMediaPermissionRequestManager::userMediaAccessWasDenied):
+ (WebKit::UserMediaPermissionRequestManager::enumerateMediaDevices):
+ * WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::userMediaAccessWasGranted):
+ (WebKit::WebPage::userMediaAccessWasDenied):
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/WebPage.messages.in:
+
2020-11-01 Sam Weinig <[email protected]>
Remove remaining alternative preference setting mechanisms from LayoutTests
Modified: trunk/Source/WebKit/Scripts/webkit/messages.py (269243 => 269244)
--- trunk/Source/WebKit/Scripts/webkit/messages.py 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebKit/Scripts/webkit/messages.py 2020-11-02 08:35:36 UTC (rev 269244)
@@ -233,6 +233,7 @@
'WebCore::SharedStringHash',
'WebCore::SleepDisablerIdentifier',
'WebCore::SWServerConnectionIdentifier',
+ 'WebCore::UserMediaRequestIdentifier',
'WebCore::WebSocketIdentifier',
'WebKit::ActivityStateChangeID',
'WebKit::AudioMediaStreamTrackRendererIdentifier',
Modified: trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp (269243 => 269244)
--- trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp 2020-11-02 08:35:36 UTC (rev 269244)
@@ -204,7 +204,7 @@
if (!m_page.hasRunningProcess())
return;
- ALWAYS_LOG(LOGIDENTIFIER, request.userMediaID(), ", reason: ", reason);
+ ALWAYS_LOG(LOGIDENTIFIER, request.userMediaID().toUInt64(), ", reason: ", reason);
if (reason == UserMediaPermissionRequestProxy::UserMediaAccessDenialReason::PermissionDenied)
m_deniedRequests.append(DeniedRequest { request.mainFrameID(), request.userMediaDocumentSecurityOrigin(), request.topLevelDocumentSecurityOrigin(), request.requiresAudioCapture(), request.requiresVideoCapture(), request.requiresDisplayCapture() });
@@ -225,7 +225,7 @@
return;
#if ENABLE(MEDIA_STREAM)
- ALWAYS_LOG(LOGIDENTIFIER, request.userMediaID(), ", video: ", request.videoDevice().label(), ", audio: ", request.audioDevice().label());
+ ALWAYS_LOG(LOGIDENTIFIER, request.userMediaID().toUInt64(), ", video: ", request.videoDevice().label(), ", audio: ", request.audioDevice().label());
auto& userMediaDocumentSecurityOrigin = request.userMediaDocumentSecurityOrigin();
auto& topLevelDocumentSecurityOrigin = request.topLevelDocumentSecurityOrigin();
@@ -242,7 +242,7 @@
#if ENABLE(MEDIA_STREAM)
void UserMediaPermissionRequestManagerProxy::finishGrantingRequest(UserMediaPermissionRequestProxy& request)
{
- ALWAYS_LOG(LOGIDENTIFIER, request.userMediaID());
+ ALWAYS_LOG(LOGIDENTIFIER, request.userMediaID().toUInt64());
if (!UserMediaProcessManager::singleton().willCreateMediaStream(*this, request.hasAudioDevice(), request.hasVideoDevice())) {
denyRequest(request, UserMediaPermissionRequestProxy::UserMediaAccessDenialReason::OtherFailure, "Unable to extend sandbox.");
return;
@@ -392,14 +392,23 @@
}
#endif
-void UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame(uint64_t userMediaID, FrameIdentifier frameID, Ref<SecurityOrigin>&& userMediaDocumentOrigin, Ref<SecurityOrigin>&& topLevelDocumentOrigin, MediaStreamRequest&& userRequest)
+void UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame(WebCore::UserMediaRequestIdentifier userMediaID, FrameIdentifier frameID, MediaStreamRequest&& userRequest)
{
#if ENABLE(MEDIA_STREAM)
if (!m_page.hasRunningProcess())
return;
- ALWAYS_LOG(LOGIDENTIFIER, userMediaID);
+ ALWAYS_LOG(LOGIDENTIFIER, userMediaID.toUInt64());
+ auto* webFrame = m_page.process().webFrame(frameID);
+ if (!webFrame) {
+ m_page.send(Messages::WebPage::UserMediaAccessWasDenied(userMediaID, toWebCore(UserMediaPermissionRequestProxy::UserMediaAccessDenialReason::PermissionDenied), { }));
+ return;
+ }
+
+ auto topLevelDocumentOrigin = SecurityOrigin::createFromString(m_page.pageLoadState().activeURL());
+ auto userMediaDocumentOrigin = SecurityOrigin::createFromString(webFrame->url().string());
+
auto request = UserMediaPermissionRequestProxy::create(*this, userMediaID, m_page.mainFrame()->frameID(), frameID, WTFMove(userMediaDocumentOrigin), WTFMove(topLevelDocumentOrigin), { }, { }, WTFMove(userRequest));
if (m_currentUserMediaRequest) {
m_pendingUserMediaRequests.append(WTFMove(request));
@@ -417,8 +426,6 @@
#else
UNUSED_PARAM(userMediaID);
UNUSED_PARAM(frameID);
- UNUSED_PARAM(userMediaDocumentOrigin);
- UNUSED_PARAM(topLevelDocumentOrigin);
UNUSED_PARAM(userRequest);
#endif
}
@@ -461,7 +468,7 @@
void UserMediaPermissionRequestManagerProxy::processUserMediaPermissionRequest()
{
- ALWAYS_LOG(LOGIDENTIFIER, m_currentUserMediaRequest->userMediaID(), ", persistent access: ", m_currentUserMediaRequest->hasPersistentAccess());
+ ALWAYS_LOG(LOGIDENTIFIER, m_currentUserMediaRequest->userMediaID().toUInt64(), ", persistent access: ", m_currentUserMediaRequest->hasPersistentAccess());
auto& userMediaDocumentSecurityOrigin = m_currentUserMediaRequest->userMediaDocumentSecurityOrigin();
auto& topLevelDocumentSecurityOrigin = m_currentUserMediaRequest->topLevelDocumentSecurityOrigin();
@@ -499,7 +506,7 @@
#if ENABLE(MEDIA_STREAM)
void UserMediaPermissionRequestManagerProxy::processUserMediaPermissionInvalidRequest(const String& invalidConstraint)
{
- ALWAYS_LOG(LOGIDENTIFIER, m_currentUserMediaRequest->userMediaID());
+ ALWAYS_LOG(LOGIDENTIFIER, m_currentUserMediaRequest->userMediaID().toUInt64());
bool filterConstraint = !m_currentUserMediaRequest->hasPersistentAccess() && !wasGrantedVideoOrAudioAccess(m_currentUserMediaRequest->frameID(), m_currentUserMediaRequest->userMediaDocumentSecurityOrigin(), m_currentUserMediaRequest->topLevelDocumentSecurityOrigin());
denyRequest(*m_currentUserMediaRequest, UserMediaPermissionRequestProxy::UserMediaAccessDenialReason::InvalidConstraint, filterConstraint ? String { } : invalidConstraint);
@@ -507,7 +514,7 @@
void UserMediaPermissionRequestManagerProxy::processUserMediaPermissionValidRequest(Vector<CaptureDevice>&& audioDevices, Vector<CaptureDevice>&& videoDevices, String&& deviceIdentifierHashSalt)
{
- ALWAYS_LOG(LOGIDENTIFIER, m_currentUserMediaRequest->userMediaID(), ", video: ", videoDevices.size(), " audio: ", audioDevices.size());
+ ALWAYS_LOG(LOGIDENTIFIER, m_currentUserMediaRequest->userMediaID().toUInt64(), ", video: ", videoDevices.size(), " audio: ", audioDevices.size());
if (videoDevices.isEmpty() && audioDevices.isEmpty()) {
denyRequest(*m_currentUserMediaRequest, UserMediaPermissionRequestProxy::UserMediaAccessDenialReason::NoConstraints, emptyString());
return;
@@ -518,7 +525,7 @@
m_currentUserMediaRequest->setEligibleAudioDeviceUIDs(WTFMove(audioDevices));
auto action = ""
- ALWAYS_LOG(LOGIDENTIFIER, m_currentUserMediaRequest->userMediaID(), ", action: ", action);
+ ALWAYS_LOG(LOGIDENTIFIER, m_currentUserMediaRequest->userMediaID().toUInt64(), ", action: ", action);
if (action == RequestAction::Deny) {
denyRequest(*m_currentUserMediaRequest, UserMediaPermissionRequestProxy::UserMediaAccessDenialReason::PermissionDenied, emptyString());
@@ -538,7 +545,7 @@
if (m_page.isControlledByAutomation()) {
if (WebAutomationSession* automationSession = m_page.process().processPool().automationSession()) {
- ALWAYS_LOG(LOGIDENTIFIER, m_currentUserMediaRequest->userMediaID(), ", page controlled by automation");
+ ALWAYS_LOG(LOGIDENTIFIER, m_currentUserMediaRequest->userMediaID().toUInt64(), ", page controlled by automation");
if (automationSession->shouldAllowGetUserMediaForPage(m_page))
grantRequest(*m_currentUserMediaRequest);
else
@@ -548,7 +555,7 @@
}
if (m_page.preferences().mockCaptureDevicesEnabled() && !m_page.preferences().mockCaptureDevicesPromptEnabled()) {
- ALWAYS_LOG(LOGIDENTIFIER, m_currentUserMediaRequest->userMediaID(), ", mock devices don't require prompt");
+ ALWAYS_LOG(LOGIDENTIFIER, m_currentUserMediaRequest->userMediaID().toUInt64(), ", mock devices don't require prompt");
grantRequest(*m_currentUserMediaRequest);
return;
}
@@ -678,12 +685,20 @@
}
#endif
-void UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame(FrameIdentifier frameID, Ref<SecurityOrigin>&& userMediaDocumentOrigin, Ref<SecurityOrigin>&& topLevelDocumentOrigin, CompletionHandler<void(const Vector<CaptureDevice>&, const String&)>&& completionHandler)
+void UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame(FrameIdentifier frameID, CompletionHandler<void(const Vector<CaptureDevice>&, const String&)>&& completionHandler)
{
#if ENABLE(MEDIA_STREAM)
ALWAYS_LOG(LOGIDENTIFIER);
- auto callback = [this, frameID, userMediaDocumentOrigin, topLevelDocumentOrigin, completionHandler = WTFMove(completionHandler)](PermissionInfo permissionInfo) mutable {
+ auto* webFrame = m_page.process().webFrame(frameID);
+ if (!webFrame) {
+ completionHandler({ }, { });
+ return;
+ }
+ auto topLevelDocumentOrigin = SecurityOrigin::createFromString(m_page.pageLoadState().activeURL());
+ auto userMediaDocumentOrigin = SecurityOrigin::createFromString(webFrame->url().string());
+
+ auto callback = [this, frameID, topLevelDocumentOrigin, userMediaDocumentOrigin, completionHandler = WTFMove(completionHandler)](PermissionInfo permissionInfo) mutable {
auto callCompletionHandler = makeScopeExit([&completionHandler] {
completionHandler({ }, { });
});
@@ -733,8 +748,6 @@
getUserMediaPermissionInfo(frameID, WTFMove(userMediaDocumentOrigin), WTFMove(topLevelDocumentOrigin), WTFMove(callback));
#else
UNUSED_PARAM(frameID);
- UNUSED_PARAM(userMediaDocumentOrigin);
- UNUSED_PARAM(topLevelDocumentOrigin);
completionHandler({ }, { });
#endif
}
Modified: trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h (269243 => 269244)
--- trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h 2020-11-02 08:35:36 UTC (rev 269244)
@@ -23,6 +23,7 @@
#include "UserMediaPermissionRequestProxy.h"
#include <WebCore/MediaProducer.h>
#include <WebCore/SecurityOrigin.h>
+#include <WebCore/UserMediaRequestIdentifier.h>
#include <wtf/CompletionHandler.h>
#include <wtf/Deque.h>
#include <wtf/HashMap.h>
@@ -63,7 +64,7 @@
void invalidatePendingRequests();
- void requestUserMediaPermissionForFrame(uint64_t userMediaID, WebCore::FrameIdentifier, Ref<WebCore::SecurityOrigin>&& userMediaDocumentOrigin, Ref<WebCore::SecurityOrigin>&& topLevelDocumentOrigin, WebCore::MediaStreamRequest&&);
+ void requestUserMediaPermissionForFrame(WebCore::UserMediaRequestIdentifier, WebCore::FrameIdentifier, WebCore::MediaStreamRequest&&);
void resetAccess(Optional<WebCore::FrameIdentifier> mainFrameID = { });
void viewIsBecomingVisible();
@@ -71,7 +72,7 @@
void grantRequest(UserMediaPermissionRequestProxy&);
void denyRequest(UserMediaPermissionRequestProxy&, UserMediaPermissionRequestProxy::UserMediaAccessDenialReason, const String& invalidConstraint = { });
- void enumerateMediaDevicesForFrame(WebCore::FrameIdentifier, Ref<WebCore::SecurityOrigin>&& userMediaDocumentOrigin, Ref<WebCore::SecurityOrigin>&& topLevelDocumentOrigin, CompletionHandler<void(const Vector<WebCore::CaptureDevice>&, const String&)>&&);
+ void enumerateMediaDevicesForFrame(WebCore::FrameIdentifier, CompletionHandler<void(const Vector<WebCore::CaptureDevice>&, const String&)>&&);
void stopCapture();
void scheduleNextRejection();
Modified: trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestProxy.cpp (269243 => 269244)
--- trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestProxy.cpp 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestProxy.cpp 2020-11-02 08:35:36 UTC (rev 269244)
@@ -30,7 +30,7 @@
namespace WebKit {
using namespace WebCore;
-UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy(UserMediaPermissionRequestManagerProxy& manager, uint64_t userMediaID, FrameIdentifier mainFrameID, FrameIdentifier frameID, Ref<WebCore::SecurityOrigin>&& userMediaDocumentOrigin, Ref<WebCore::SecurityOrigin>&& topLevelDocumentOrigin, Vector<WebCore::CaptureDevice>&& audioDevices, Vector<WebCore::CaptureDevice>&& videoDevices, WebCore::MediaStreamRequest&& request)
+UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy(UserMediaPermissionRequestManagerProxy& manager, UserMediaRequestIdentifier userMediaID, FrameIdentifier mainFrameID, FrameIdentifier frameID, Ref<WebCore::SecurityOrigin>&& userMediaDocumentOrigin, Ref<WebCore::SecurityOrigin>&& topLevelDocumentOrigin, Vector<WebCore::CaptureDevice>&& audioDevices, Vector<WebCore::CaptureDevice>&& videoDevices, WebCore::MediaStreamRequest&& request)
: m_manager(&manager)
, m_userMediaID(userMediaID)
, m_mainFrameID(mainFrameID)
Modified: trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestProxy.h (269243 => 269244)
--- trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestProxy.h 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebKit/UIProcess/UserMediaPermissionRequestProxy.h 2020-11-02 08:35:36 UTC (rev 269244)
@@ -23,6 +23,7 @@
#include <WebCore/CaptureDevice.h>
#include <WebCore/FrameIdentifier.h>
#include <WebCore/MediaStreamRequest.h>
+#include <WebCore/UserMediaRequestIdentifier.h>
#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>
@@ -36,7 +37,7 @@
class UserMediaPermissionRequestProxy : public API::ObjectImpl<API::Object::Type::UserMediaPermissionRequest> {
public:
- static Ref<UserMediaPermissionRequestProxy> create(UserMediaPermissionRequestManagerProxy& manager, uint64_t userMediaID, WebCore::FrameIdentifier mainFrameID, WebCore::FrameIdentifier frameID, Ref<WebCore::SecurityOrigin>&& userMediaDocumentOrigin, Ref<WebCore::SecurityOrigin>&& topLevelDocumentOrigin, Vector<WebCore::CaptureDevice>&& audioDevices, Vector<WebCore::CaptureDevice>&& videoDevices, WebCore::MediaStreamRequest&& request)
+ static Ref<UserMediaPermissionRequestProxy> create(UserMediaPermissionRequestManagerProxy& manager, WebCore::UserMediaRequestIdentifier userMediaID, WebCore::FrameIdentifier mainFrameID, WebCore::FrameIdentifier frameID, Ref<WebCore::SecurityOrigin>&& userMediaDocumentOrigin, Ref<WebCore::SecurityOrigin>&& topLevelDocumentOrigin, Vector<WebCore::CaptureDevice>&& audioDevices, Vector<WebCore::CaptureDevice>&& videoDevices, WebCore::MediaStreamRequest&& request)
{
return adoptRef(*new UserMediaPermissionRequestProxy(manager, userMediaID, mainFrameID, frameID, WTFMove(userMediaDocumentOrigin), WTFMove(topLevelDocumentOrigin), WTFMove(audioDevices), WTFMove(videoDevices), WTFMove(request)));
}
@@ -67,7 +68,7 @@
bool hasPersistentAccess() const { return m_hasPersistentAccess; }
void setHasPersistentAccess() { m_hasPersistentAccess = true; }
- uint64_t userMediaID() const { return m_userMediaID; }
+ WebCore::UserMediaRequestIdentifier userMediaID() const { return m_userMediaID; }
WebCore::FrameIdentifier mainFrameID() const { return m_mainFrameID; }
WebCore::FrameIdentifier frameID() const { return m_frameID; }
@@ -91,10 +92,10 @@
#endif
private:
- UserMediaPermissionRequestProxy(UserMediaPermissionRequestManagerProxy&, uint64_t userMediaID, WebCore::FrameIdentifier mainFrameID, WebCore::FrameIdentifier, Ref<WebCore::SecurityOrigin>&& userMediaDocumentOrigin, Ref<WebCore::SecurityOrigin>&& topLevelDocumentOrigin, Vector<WebCore::CaptureDevice>&& audioDevices, Vector<WebCore::CaptureDevice>&& videoDevices, WebCore::MediaStreamRequest&&);
+ UserMediaPermissionRequestProxy(UserMediaPermissionRequestManagerProxy&, WebCore::UserMediaRequestIdentifier, WebCore::FrameIdentifier mainFrameID, WebCore::FrameIdentifier, Ref<WebCore::SecurityOrigin>&& userMediaDocumentOrigin, Ref<WebCore::SecurityOrigin>&& topLevelDocumentOrigin, Vector<WebCore::CaptureDevice>&& audioDevices, Vector<WebCore::CaptureDevice>&& videoDevices, WebCore::MediaStreamRequest&&);
UserMediaPermissionRequestManagerProxy* m_manager;
- uint64_t m_userMediaID;
+ WebCore::UserMediaRequestIdentifier m_userMediaID;
WebCore::FrameIdentifier m_mainFrameID;
WebCore::FrameIdentifier m_frameID;
Ref<WebCore::SecurityOrigin> m_userMediaDocumentSecurityOrigin;
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (269243 => 269244)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2020-11-02 08:35:36 UTC (rev 269244)
@@ -8076,32 +8076,28 @@
#endif
-void WebPageProxy::requestUserMediaPermissionForFrame(uint64_t userMediaID, FrameIdentifier frameID, const WebCore::SecurityOriginData& userMediaDocumentOriginData, const WebCore::SecurityOriginData& topLevelDocumentOriginData, WebCore::MediaStreamRequest&& request)
+void WebPageProxy::requestUserMediaPermissionForFrame(UserMediaRequestIdentifier userMediaID, FrameIdentifier frameID, WebCore::MediaStreamRequest&& request)
{
#if ENABLE(MEDIA_STREAM)
MESSAGE_CHECK(m_process, m_process->webFrame(frameID));
- userMediaPermissionRequestManager().requestUserMediaPermissionForFrame(userMediaID, frameID, userMediaDocumentOriginData.securityOrigin(), topLevelDocumentOriginData.securityOrigin(), WTFMove(request));
+ userMediaPermissionRequestManager().requestUserMediaPermissionForFrame(userMediaID, frameID, WTFMove(request));
#else
UNUSED_PARAM(userMediaID);
UNUSED_PARAM(frameID);
- UNUSED_PARAM(userMediaDocumentOriginData);
- UNUSED_PARAM(topLevelDocumentOriginData);
UNUSED_PARAM(request);
#endif
}
-void WebPageProxy::enumerateMediaDevicesForFrame(FrameIdentifier frameID, const WebCore::SecurityOriginData& userMediaDocumentOriginData, const WebCore::SecurityOriginData& topLevelDocumentOriginData, CompletionHandler<void(const Vector<CaptureDevice>&, const String&)>&& completionHandler)
+void WebPageProxy::enumerateMediaDevicesForFrame(FrameIdentifier frameID, CompletionHandler<void(const Vector<CaptureDevice>&, const String&)>&& completionHandler)
{
#if ENABLE(MEDIA_STREAM)
WebFrameProxy* frame = m_process->webFrame(frameID);
MESSAGE_CHECK(m_process, frame);
- userMediaPermissionRequestManager().enumerateMediaDevicesForFrame(frameID, userMediaDocumentOriginData.securityOrigin(), topLevelDocumentOriginData.securityOrigin(), WTFMove(completionHandler));
+ userMediaPermissionRequestManager().enumerateMediaDevicesForFrame(frameID, WTFMove(completionHandler));
#else
UNUSED_PARAM(frameID);
- UNUSED_PARAM(userMediaDocumentOriginData);
- UNUSED_PARAM(topLevelDocumentOriginData);
UNUSED_PARAM(completionHandler);
#endif
}
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (269243 => 269244)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.h 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.h 2020-11-02 08:35:36 UTC (rev 269244)
@@ -105,6 +105,7 @@
#include <WebCore/TextGranularity.h>
#include <WebCore/TextManipulationController.h>
#include <WebCore/UserInterfaceLayoutDirection.h>
+#include <WebCore/UserMediaRequestIdentifier.h>
#include <WebCore/ViewportArguments.h>
#include <memory>
#include <wtf/CompletionHandler.h>
@@ -1972,8 +1973,8 @@
#if ENABLE(MEDIA_STREAM)
UserMediaPermissionRequestManagerProxy& userMediaPermissionRequestManager();
#endif
- void requestUserMediaPermissionForFrame(uint64_t userMediaID, WebCore::FrameIdentifier, const WebCore::SecurityOriginData& userMediaDocumentOriginIdentifier, const WebCore::SecurityOriginData& topLevelDocumentOriginIdentifier, WebCore::MediaStreamRequest&&);
- void enumerateMediaDevicesForFrame(WebCore::FrameIdentifier, const WebCore::SecurityOriginData& userMediaDocumentOriginData, const WebCore::SecurityOriginData& topLevelDocumentOriginData, CompletionHandler<void(const Vector<WebCore::CaptureDevice>&, const String&)>&&);
+ void requestUserMediaPermissionForFrame(WebCore::UserMediaRequestIdentifier, WebCore::FrameIdentifier, WebCore::MediaStreamRequest&&);
+ void enumerateMediaDevicesForFrame(WebCore::FrameIdentifier, CompletionHandler<void(const Vector<WebCore::CaptureDevice>&, const String&)>&&);
void beginMonitoringCaptureDevices();
void runModal();
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in (269243 => 269244)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in 2020-11-02 08:35:36 UTC (rev 269244)
@@ -285,8 +285,8 @@
#if ENABLE(MEDIA_STREAM)
# MediaSteam messages
- RequestUserMediaPermissionForFrame(uint64_t userMediaID, WebCore::FrameIdentifier frameID, struct WebCore::SecurityOriginData userMediaDocumentOriginIdentifier, struct WebCore::SecurityOriginData topLevelDocumentOriginIdentifier, struct WebCore::MediaStreamRequest request)
- EnumerateMediaDevicesForFrame(WebCore::FrameIdentifier frameID, struct WebCore::SecurityOriginData userMediaDocumentOriginIdentifier, struct WebCore::SecurityOriginData topLevelDocumentOriginIdentifier) -> (Vector<WebCore::CaptureDevice> devices, String mediaDeviceIdentifierHashSalt) Async
+ RequestUserMediaPermissionForFrame(WebCore::UserMediaRequestIdentifier userMediaID, WebCore::FrameIdentifier frameID, struct WebCore::MediaStreamRequest request)
+ EnumerateMediaDevicesForFrame(WebCore::FrameIdentifier frameID) -> (Vector<WebCore::CaptureDevice> devices, String mediaDeviceIdentifierHashSalt) Async
BeginMonitoringCaptureDevices()
#endif
Modified: trunk/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp (269243 => 269244)
--- trunk/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp 2020-11-02 08:35:36 UTC (rev 269244)
@@ -79,8 +79,7 @@
WebFrame* webFrame = WebFrame::fromCoreFrame(*frame);
ASSERT(webFrame);
- auto* topLevelDocumentOrigin = userRequest.topLevelDocumentOrigin();
- m_page.send(Messages::WebPageProxy::RequestUserMediaPermissionForFrame(userRequest.identifier().toUInt64(), webFrame->frameID(), userRequest.userMediaDocumentOrigin()->data(), topLevelDocumentOrigin->data(), userRequest.request()));
+ m_page.send(Messages::WebPageProxy::RequestUserMediaPermissionForFrame(userRequest.identifier(), webFrame->frameID(), userRequest.request()));
}
void UserMediaPermissionRequestManager::cancelUserMediaRequest(UserMediaRequest& request)
@@ -117,9 +116,9 @@
sendUserMediaRequest(pendingRequest);
}
-void UserMediaPermissionRequestManager::userMediaAccessWasGranted(uint64_t requestID, CaptureDevice&& audioDevice, CaptureDevice&& videoDevice, String&& deviceIdentifierHashSalt, CompletionHandler<void()>&& completionHandler)
+void UserMediaPermissionRequestManager::userMediaAccessWasGranted(UserMediaRequestIdentifier requestID, CaptureDevice&& audioDevice, CaptureDevice&& videoDevice, String&& deviceIdentifierHashSalt, CompletionHandler<void()>&& completionHandler)
{
- auto request = m_ongoingUserMediaRequests.take(makeObjectIdentifier<UserMediaRequestIdentifierType>(requestID));
+ auto request = m_ongoingUserMediaRequests.take(requestID);
if (!request) {
completionHandler();
return;
@@ -128,9 +127,9 @@
request->allow(WTFMove(audioDevice), WTFMove(videoDevice), WTFMove(deviceIdentifierHashSalt), WTFMove(completionHandler));
}
-void UserMediaPermissionRequestManager::userMediaAccessWasDenied(uint64_t requestID, UserMediaRequest::MediaAccessDenialReason reason, String&& invalidConstraint)
+void UserMediaPermissionRequestManager::userMediaAccessWasDenied(UserMediaRequestIdentifier requestID, UserMediaRequest::MediaAccessDenialReason reason, String&& invalidConstraint)
{
- auto request = m_ongoingUserMediaRequests.take(makeObjectIdentifier<UserMediaRequestIdentifierType>(requestID));
+ auto request = m_ongoingUserMediaRequests.take(requestID);
if (!request)
return;
@@ -145,7 +144,7 @@
return;
}
- m_page.sendWithAsyncReply(Messages::WebPageProxy::EnumerateMediaDevicesForFrame { WebFrame::fromCoreFrame(*frame)->frameID(), document.securityOrigin().data(), document.topOrigin().data() }, WTFMove(completionHandler));
+ m_page.sendWithAsyncReply(Messages::WebPageProxy::EnumerateMediaDevicesForFrame { WebFrame::fromCoreFrame(*frame)->frameID() }, WTFMove(completionHandler));
}
UserMediaClient::DeviceChangeObserverToken UserMediaPermissionRequestManager::addDeviceChangeObserver(Function<void()>&& observer)
Modified: trunk/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h (269243 => 269244)
--- trunk/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h 2020-11-02 08:35:36 UTC (rev 269244)
@@ -42,8 +42,8 @@
void startUserMediaRequest(WebCore::UserMediaRequest&);
void cancelUserMediaRequest(WebCore::UserMediaRequest&);
- void userMediaAccessWasGranted(uint64_t, WebCore::CaptureDevice&& audioDevice, WebCore::CaptureDevice&& videoDevice, String&& deviceIdentifierHashSalt, CompletionHandler<void()>&&);
- void userMediaAccessWasDenied(uint64_t, WebCore::UserMediaRequest::MediaAccessDenialReason, String&&);
+ void userMediaAccessWasGranted(WebCore::UserMediaRequestIdentifier, WebCore::CaptureDevice&& audioDevice, WebCore::CaptureDevice&& videoDevice, String&& deviceIdentifierHashSalt, CompletionHandler<void()>&&);
+ void userMediaAccessWasDenied(WebCore::UserMediaRequestIdentifier, WebCore::UserMediaRequest::MediaAccessDenialReason, String&&);
void enumerateMediaDevices(WebCore::Document&, CompletionHandler<void(const Vector<WebCore::CaptureDevice>&, const String&)>&&);
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (269243 => 269244)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp 2020-11-02 08:35:36 UTC (rev 269244)
@@ -4435,7 +4435,7 @@
#if ENABLE(MEDIA_STREAM)
-void WebPage::userMediaAccessWasGranted(uint64_t userMediaID, WebCore::CaptureDevice&& audioDevice, WebCore::CaptureDevice&& videoDevice, String&& mediaDeviceIdentifierHashSalt, SandboxExtension::Handle&& handle, CompletionHandler<void()>&& completionHandler)
+void WebPage::userMediaAccessWasGranted(UserMediaRequestIdentifier userMediaID, WebCore::CaptureDevice&& audioDevice, WebCore::CaptureDevice&& videoDevice, String&& mediaDeviceIdentifierHashSalt, SandboxExtension::Handle&& handle, CompletionHandler<void()>&& completionHandler)
{
SandboxExtension::consumePermanently(handle);
@@ -4442,7 +4442,7 @@
m_userMediaPermissionRequestManager->userMediaAccessWasGranted(userMediaID, WTFMove(audioDevice), WTFMove(videoDevice), WTFMove(mediaDeviceIdentifierHashSalt), WTFMove(completionHandler));
}
-void WebPage::userMediaAccessWasDenied(uint64_t userMediaID, uint64_t reason, String&& invalidConstraint)
+void WebPage::userMediaAccessWasDenied(UserMediaRequestIdentifier userMediaID, uint64_t reason, String&& invalidConstraint)
{
m_userMediaPermissionRequestManager->userMediaAccessWasDenied(userMediaID, static_cast<UserMediaRequest::MediaAccessDenialReason>(reason), WTFMove(invalidConstraint));
}
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.h (269243 => 269244)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.h 2020-11-02 08:35:36 UTC (rev 269244)
@@ -85,6 +85,7 @@
#include <WebCore/UserActivity.h>
#include <WebCore/UserContentTypes.h>
#include <WebCore/UserInterfaceLayoutDirection.h>
+#include <WebCore/UserMediaRequestIdentifier.h>
#include <WebCore/UserScriptTypes.h>
#include <WebCore/VisibilityState.h>
#include <WebCore/WebCoreKeyboardUIMode.h>
@@ -1653,8 +1654,8 @@
void didReceiveNotificationPermissionDecision(uint64_t notificationID, bool allowed);
#if ENABLE(MEDIA_STREAM)
- void userMediaAccessWasGranted(uint64_t userMediaID, WebCore::CaptureDevice&& audioDeviceUID, WebCore::CaptureDevice&& videoDeviceUID, String&& mediaDeviceIdentifierHashSalt, SandboxExtension::Handle&&, CompletionHandler<void()>&&);
- void userMediaAccessWasDenied(uint64_t userMediaID, uint64_t reason, String&& invalidConstraint);
+ void userMediaAccessWasGranted(WebCore::UserMediaRequestIdentifier, WebCore::CaptureDevice&& audioDeviceUID, WebCore::CaptureDevice&& videoDeviceUID, String&& mediaDeviceIdentifierHashSalt, SandboxExtension::Handle&&, CompletionHandler<void()>&&);
+ void userMediaAccessWasDenied(WebCore::UserMediaRequestIdentifier, uint64_t reason, String&& invalidConstraint);
#endif
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in (269243 => 269244)
--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in 2020-11-02 08:32:56 UTC (rev 269243)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in 2020-11-02 08:35:36 UTC (rev 269244)
@@ -373,8 +373,8 @@
#if ENABLE(MEDIA_STREAM)
# MediaSteam
- UserMediaAccessWasGranted(uint64_t userMediaID, WebCore::CaptureDevice audioDevice, WebCore::CaptureDevice videoDevice, String mediaDeviceIdentifierHashSalt, WebKit::SandboxExtension::Handle sandboxExtensionHandle) -> () Async
- UserMediaAccessWasDenied(uint64_t userMediaID, uint64_t reason, String invalidConstraint)
+ UserMediaAccessWasGranted(WebCore::UserMediaRequestIdentifier userMediaID, WebCore::CaptureDevice audioDevice, WebCore::CaptureDevice videoDevice, String mediaDeviceIdentifierHashSalt, WebKit::SandboxExtension::Handle sandboxExtensionHandle) -> () Async
+ UserMediaAccessWasDenied(WebCore::UserMediaRequestIdentifier userMediaID, uint64_t reason, String invalidConstraint)
CaptureDevicesChanged()
#endif