[webkit-changes] [WebKit/WebKit] 0ee91a: Use an ephemeral device ID for the Continuity came...

Eric Carlson noreply at github.com
Mon Oct 31 11:27:33 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0ee91ab89adb35d40fb7557159dfbb5380326156
      https://github.com/WebKit/WebKit/commit/0ee91ab89adb35d40fb7557159dfbb5380326156
  Author: Eric Carlson <eric.carlson at apple.com>
  Date:   2022-10-31 (Mon, 31 Oct 2022)

  Changed paths:
    A LayoutTests/http/tests/media/media-stream/enumerate-devices-ephemeral-id-expected.txt
    A LayoutTests/http/tests/media/media-stream/enumerate-devices-ephemeral-id.html
    A LayoutTests/http/tests/media/media-stream/resources/enumerate-devices-ephemeral-id-iframe.html
    M Source/WTF/wtf/PlatformHave.h
    M Source/WebCore/Headers.cmake
    M Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp
    A Source/WebCore/Modules/mediastream/MediaDeviceHashSalts.h
    M Source/WebCore/Modules/mediastream/MediaDevices.cpp
    M Source/WebCore/Modules/mediastream/MediaDevices.h
    M Source/WebCore/Modules/mediastream/UserMediaClient.h
    M Source/WebCore/Modules/mediastream/UserMediaController.cpp
    M Source/WebCore/Modules/mediastream/UserMediaController.h
    M Source/WebCore/Modules/mediastream/UserMediaRequest.cpp
    M Source/WebCore/Modules/mediastream/UserMediaRequest.h
    M Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.cpp
    M Source/WebCore/Modules/webaudio/MediaStreamAudioSource.cpp
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/platform/mediastream/CaptureDevice.h
    M Source/WebCore/platform/mediastream/RealtimeIncomingAudioSource.cpp
    M Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSource.h
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceFactory.h
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.h
    M Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp
    M Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.h
    M Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp
    M Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp
    M Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerDisplayCaptureDeviceManager.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h
    M Source/WebCore/platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp
    M Source/WebCore/platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.h
    M Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp
    M Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h
    M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.cpp
    M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.cpp
    M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.h
    M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp
    M Source/WebCore/platform/mediastream/ios/CoreAudioCaptureSourceIOS.h
    M Source/WebCore/platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm
    M Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm
    M Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h
    M Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm
    M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp
    M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h
    M Source/WebCore/platform/mediastream/mac/MockAudioSharedUnit.mm
    M Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.h
    M Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm
    M Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp
    M Source/WebCore/platform/mock/MockMediaDevice.h
    M Source/WebCore/platform/mock/MockRealtimeAudioSource.cpp
    M Source/WebCore/platform/mock/MockRealtimeAudioSource.h
    M Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp
    M Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h
    M Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp
    M Source/WebCore/platform/mock/MockRealtimeVideoSource.h
    M Source/WebKit/GPUProcess/GPUProcess.cpp
    M Source/WebKit/GPUProcess/GPUProcess.h
    M Source/WebKit/GPUProcess/GPUProcess.messages.in
    M Source/WebKit/UIProcess/API/C/WKMockMediaDevice.cpp
    M Source/WebKit/UIProcess/API/C/WKMockMediaDevice.h
    M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp
    M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h
    M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in
    M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp
    M Source/WebKit/UIProcess/GPU/GPUProcessProxy.h
    M Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp
    M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp
    M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h
    M Source/WebKit/UIProcess/UserMediaPermissionRequestProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    M Source/WebKit/UIProcess/WebProcessPool.cpp
    M Source/WebKit/UIProcess/WebProcessPool.h
    M Source/WebKit/UIProcess/glib/UserMediaPermissionRequestManagerProxyGLib.cpp
    M Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp
    M Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h
    M Source/WebKit/WebProcess/WebCoreSupport/WebUserMediaClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebUserMediaClient.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
    M Source/WebKit/WebProcess/WebProcess.cpp
    M Source/WebKit/WebProcess/WebProcess.h
    M Source/WebKit/WebProcess/WebProcess.messages.in
    M Source/WebKit/WebProcess/cocoa/RemoteRealtimeAudioSource.cpp
    M Source/WebKit/WebProcess/cocoa/RemoteRealtimeAudioSource.h
    M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.cpp
    M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h
    M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp
    M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h
    M Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.cpp
    M Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.h
    M Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp
    M Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h
    M Source/WebKit/WebProcess/glib/UserMediaCaptureManager.cpp
    M Source/WebKit/WebProcess/glib/UserMediaCaptureManager.h
    M Source/WebKit/WebProcess/glib/UserMediaCaptureManager.messages.in
    M Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
    M Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
    M Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
    M Tools/WebKitTestRunner/TestController.cpp
    M Tools/WebKitTestRunner/TestController.h
    M Tools/WebKitTestRunner/TestInvocation.cpp

  Log Message:
  -----------
  Use an ephemeral device ID for the Continuity camera when it is not the system preferred
https://bugs.webkit.org/show_bug.cgi?id=247208
rdar://100335624

Reviewed by Jer Noble.

A "Continuity Camera", an iPhone used as a camera for a Macintosh, is listed as an
AVCaptureDevice whenever it is in close enough to the Macintosh to be used, but it is only
the "system preferred camera" when it is in an appropriate position and orientation to be
used as a camera for the device. This means that a script may remember the device ID when
a user has set up the phone to be used as a camera, and then pass it to getUserMedia later
when the phone is near the Macintosh but not usable as a camera - e.g. in the user's pocket.

To prevent this problem, use a device ID that is only valid for the lifetime of the
current frame when a Continuity Camera is available but is not the system preferred camera.

* LayoutTests/http/tests/media/media-stream/enumerate-devices-ephemeral-id-expected.txt: Added.
* LayoutTests/http/tests/media/media-stream/enumerate-devices-ephemeral-id.html: Added.
* LayoutTests/http/tests/media/media-stream/resources/enumerate-devices-ephemeral-id-iframe.html: Added.

* Source/WTF/wtf/PlatformHave.h: Define HAVE_CONTINUITY_CAMEARA

* Source/WebCore/Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
(WebCore::CanvasCaptureMediaStreamTrack::Source::Source): Update for RealtimeMediaSource constructor
changes.
* Source/WebCore/Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::exposeDevices): Take a MediaDeviceHashSalts instead of a String
because there are now two hash salts.
(WebCore::MediaDevices::enumerateDevices): Ditto.
* Source/WebCore/Modules/mediastream/MediaDevices.h:

* Source/WebCore/Modules/mediastream/UserMediaClient.h: Ditto.
* Source/WebCore/Modules/mediastream/UserMediaController.cpp:
* Source/WebCore/Modules/mediastream/UserMediaController.h:
(WebCore::UserMediaController::enumerateMediaDevices): Ditto.

* Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::allow): Ditto.
* Source/WebCore/Modules/mediastream/UserMediaRequest.h:

* Source/WebCore/Modules/speech/SpeechRecognitionCaptureSource.cpp:
(WebCore::SpeechRecognitionCaptureSource::createRealtimeMediaSource): Update for
RealtimeMediaSource constructor changes.

* Source/WebCore/Modules/webaudio/MediaStreamAudioSource.cpp:
(WebCore::MediaStreamAudioSource::MediaStreamAudioSource): Ditto.

* Source/WebCore/WebCore.xcodeproj/project.pbxproj:

* Source/WebCore/platform/mediastream/CaptureDevice.h:
(WebCore::CaptureDevice::CaptureDevice): Add `isEphemeral` parameter.
(WebCore::CaptureDevice::setPersistentId):
(WebCore::CaptureDevice::setLabel):
(WebCore::CaptureDevice::isEphemeral const):
(WebCore::CaptureDevice::setIsEphemeral):
(WebCore::CaptureDevice::encode const):
(WebCore::CaptureDevice::decode):
(WebCore::CaptureDevice::isolatedCopy):

* Source/WebCore/platform/mediastream/RealtimeIncomingAudioSource.cpp:
(WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): Update for
RealtimeMediaSource constructor changes.

* Source/WebCore/platform/mediastream/RealtimeIncomingVideoSource.cpp:
(WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): Ditto.

* Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::toSourceType):
(WebCore::RealtimeMediaSource::RealtimeMediaSource): Take a CaptureDevice instead of a
type, name, and device ID. Take a MediaDeviceHashSalts instead of a String for the salts.
(WebCore::RealtimeMediaSource::setPersistentId):
(WebCore::RealtimeMediaSource::initializePersistentId): Calculate persistent and ephemeral
hashed IDs.
(WebCore::RealtimeMediaSource::fitnessDistance): m_hashedID -> hashedID()
(WebCore::RealtimeMediaSource::hashedId const): Consider ephemeral state.
(WebCore::RealtimeMediaSource::deviceIDHashSalts const):
(WebCore::RealtimeMediaSource::setLogger):
(WebCore::RealtimeMediaSource::deviceIDHashSalt const): Deleted.
* Source/WebCore/platform/mediastream/RealtimeMediaSource.h:

* Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::createMediaStream): Take MediaDeviceHashSalts with the
hash salts.
(WebCore::RealtimeMediaSourceCenter::getDisplayMediaDevices): Ditto.
(WebCore::RealtimeMediaSourceCenter::getUserMediaDevices): Ditto.
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): Ditto.
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraintsAfterEnumeration): Ditto.
* Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h:

* Source/WebCore/platform/mediastream/RealtimeMediaSourceFactory.h: Ditto.
* Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.h: Ditto.

* Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp:
(WebCore::RealtimeVideoCaptureSource::RealtimeVideoCaptureSource): Update for RealtimeMediaSource
constructor changes.
* Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.h:

* Source/WebCore/platform/mediastream/RealtimeVideoSource.cpp:
(WebCore::RealtimeVideoSource::RealtimeVideoSource): Ditto.

* Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:
(WebCore::DisplayCaptureSourceCocoa::create): Ditto.
(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa): Ditto.
* Source/WebCore/platform/mediastream/cocoa/DisplayCaptureSourceCocoa.h:

* Source/WebCore/platform/mediastream/ios/CoreAudioCaptureSourceIOS.h:
* Source/WebCore/platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm:
(WebCore::CoreAudioCaptureSourceFactoryIOS::createAudioCaptureSource): Ditto.

* Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm:
(WebCore::AVCaptureDeviceManager::updateCachedAVCaptureDevices):
(WebCore::toCaptureDevice): Make Continuity Camera ephemeral when it is not the system
preferred camera.
(WebCore::AVCaptureDeviceManager::retrieveCaptureDevices):

* Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h:
* Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::create): Update for RealtimeMediaSource constructor changes.
(WebCore::AVVideoCaptureSource::AVVideoCaptureSource): Ditto.

* Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSource::create): Ditto.
(WebCore::CoreAudioCaptureSource::createForTesting): Ditto.
(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): Ditto.
* Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h:
(WebCore::CoreAudioCaptureSourceFactory::createAudioCaptureSource):

* Source/WebCore/platform/mediastream/mac/MockAudioSharedUnit.mm:
(WebCore::MockRealtimeAudioSource::create): Ditto.

* Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.h:
* Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
(WebCore::MockRealtimeVideoSource::create): Ditto.
(WebCore::MockRealtimeVideoSourceMac::createForMockDisplayCapturer): Ditto.
(WebCore::MockRealtimeVideoSourceMac::MockRealtimeVideoSourceMac): Ditto.

* Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
* Source/WebCore/platform/mock/MockMediaDevice.h:
(WebCore::MockMediaDevice::captureDevice const): Allow to be ephemeral .
(WebCore::MockMediaDevice::encode const):
(WebCore::MockMediaDevice::decodeMockMediaDevice):
(WebCore::MockMediaDevice::decode):

* Source/WebCore/platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::create): Update for RealtimeMediaSource constructor changes.
(WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource): Ditto.
* Source/WebCore/platform/mock/MockRealtimeAudioSource.h:

* Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::defaultDevices): No devices are ephemeral by default.
(WebCore::MockDisplayCapturer::MockDisplayCapturer): Update for RealtimeMediaSource constructor
changes.
(WebCore::MockRealtimeMediaSourceCenter::setDeviceIsEphemeral):
* Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h:

* Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::create): Ditto.
(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): Ditto.
* Source/WebCore/platform/mock/MockRealtimeVideoSource.h:

* Source/WebKit/GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::setMockMediaDeviceIsEphemeral): Added for testing.
* Source/WebKit/GPUProcess/GPUProcess.h:
* Source/WebKit/GPUProcess/GPUProcess.messages.in:
* Source/WebKit/UIProcess/API/C/WKMockMediaDevice.cpp:
(WKAddMockMediaDevice):
(WKSetMockMediaDeviceIsEphemeral):
* Source/WebKit/UIProcess/API/C/WKMockMediaDevice.h:

* Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::createMicrophoneSource):
(WebKit::UserMediaCaptureManagerProxy::createCameraSource):
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
* Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
* Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::setMockMediaDeviceIsEphemeral):
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.h:
* Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp:
(WebKit::SpeechRecognitionRemoteRealtimeMediaSource::SpeechRecognitionRemoteRealtimeMediaSource):
(): Deleted.
* Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest): Take MediaDeviceHashSalts
for hash salts.
(WebKit::UserMediaPermissionRequestManagerProxy::didCommitLoadForFrame): Clear ephemeral
salt for a frame.
(WebKit::UserMediaPermissionRequestManagerProxy::resetAccess): Ditto.
(WebKit::UserMediaPermissionRequestManagerProxy::ephemeralDeviceHashSaltForFrame): Calculate
or lookup an ephemeral salt for a frame.
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionRequest): Use
MediaDeviceHashSalts.
(WebKit::UserMediaPermissionRequestManagerProxy::platformValidateUserMediaRequestConstraints): Ditto.
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionValidRequest): Ditto.
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): Ditto.
* Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h:

* Source/WebKit/UIProcess/UserMediaPermissionRequestProxy.h:
(WebKit::UserMediaPermissionRequestProxy::setDeviceIdentifierHashSalts): *HashSalt -> *HashSalts
(WebKit::UserMediaPermissionRequestProxy::deviceIdentifierHashSalts const): Ditto
(WebKit::UserMediaPermissionRequestProxy::setDeviceIdentifierHashSalt): Deleted.
(WebKit::UserMediaPermissionRequestProxy::deviceIdentifierHashSalt const): Deleted.

* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame): Let UserMediaPermissionRequestManager know the
frame has reloaded so it can clear the ephemeral salt ID.
(WebKit::WebPageProxy::enumerateMediaDevicesForFrame):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:

* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setMockMediaDeviceIsEphemeral):
* Source/WebKit/UIProcess/WebProcessPool.h:

* Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::userMediaAccessWasGranted):
(WebKit::UserMediaPermissionRequestManager::enumerateMediaDevices):
* Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:

* Source/WebKit/WebProcess/WebCoreSupport/WebUserMediaClient.cpp:
(WebKit::WebUserMediaClient::enumerateMediaDevices):
* Source/WebKit/WebProcess/WebCoreSupport/WebUserMediaClient.h:

* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::userMediaAccessWasGranted):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:

* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setMockMediaDeviceIsEphemeral):
* Source/WebKit/WebProcess/WebProcess.h:
* Source/WebKit/WebProcess/WebProcess.messages.in:

* Source/WebKit/WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:
(WebKit::RemoteRealtimeAudioSource::create): Update for RealtimeMediaSource constructor change.
(WebKit::RemoteRealtimeAudioSource::RemoteRealtimeAudioSource): Ditto.
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeAudioSource.h:

* Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.cpp:
(WebKit::RemoteRealtimeMediaSource::RemoteRealtimeMediaSource): Ditto.
(WebKit::RemoteRealtimeMediaSource::createRemoteMediaSource): Ditto.
(WebKit::toSourceType): Deleted.
(WebKit::m_manager): Deleted.
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h:

* Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
(WebKit::RemoteRealtimeMediaSourceProxy::createRemoteMediaSource): Ditto.
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:

* Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
(WebKit::RemoteRealtimeVideoSource::create): Ditto.
(WebKit::RemoteRealtimeVideoSource::RemoteRealtimeVideoSource): Ditto.
(WebKit::RemoteRealtimeVideoSource::clone): Ditto.
* Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.h:

* Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::AudioFactory::createAudioCaptureSource): Ditto.
(WebKit::UserMediaCaptureManager::VideoFactory::createVideoCaptureSource): Ditto.
(WebKit::UserMediaCaptureManager::DisplayFactory::createDisplayCaptureSource): Ditto.
* Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h:

* Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: Add setMockMediaDeviceIsEphemeral.
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setMockMediaDeviceIsEphemeral):
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.h:

* Tools/WebKitTestRunner/TestController.cpp:
(WTR::TestController::setMockMediaDeviceIsEphemeral):
* Tools/WebKitTestRunner/TestController.h:

* Tools/WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

Canonical link: https://commits.webkit.org/256161@main




More information about the webkit-changes mailing list