Branch: refs/heads/safari-7614.3.7.2-branch Home: https://github.com/WebKit/WebKit Commit: 2d1cbc7d47a94183efcfee83b53f81f51e0a1732 https://github.com/WebKit/WebKit/commit/2d1cbc7d47a94183efcfee83b53f81f51e0a1732 Author: Alan Coon <alanc...@apple.com> Date: 2022-11-12 (Sat, 12 Nov 2022)
Changed paths: M Source/JavaScriptCore/Configurations/Version.xcconfig M Source/ThirdParty/ANGLE/Configurations/Version.xcconfig M Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig M Source/WebCore/Configurations/Version.xcconfig M Source/WebCore/PAL/Configurations/Version.xcconfig M Source/WebGPU/Configurations/Version.xcconfig M Source/WebInspectorUI/Configurations/Version.xcconfig M Source/WebKit/Configurations/Version.xcconfig M Source/WebKitLegacy/mac/Configurations/Version.xcconfig Log Message: ----------- Versioning. WebKit-7614.3.7.2.1 Canonical link: https://commits.webkit.org/252432.805@safari-7614.3.7.2-branch Commit: c7e21bf141799f6c04bb0a069489e9465a522ae7 https://github.com/WebKit/WebKit/commit/c7e21bf141799f6c04bb0a069489e9465a522ae7 Author: Youenn Fablet <youe...@gmail.com> Date: 2022-11-12 (Sat, 12 Nov 2022) Changed paths: A LayoutTests/fast/mediastream/mediastreamtrack-configurationchange-expected.txt A LayoutTests/fast/mediastream/mediastreamtrack-configurationchange.html M LayoutTests/platform/glib/TestExpectations M Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp M Source/WebCore/Modules/mediastream/MediaStreamTrack.h M Source/WebCore/Modules/mediastream/MediaStreamTrack.idl M Source/WebCore/dom/EventNames.h M Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.cpp M Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h M Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp M Source/WebCore/platform/mediastream/RealtimeMediaSource.h M Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h M Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm M Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.cpp M Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.h M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h M Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.mm M Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp M Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.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/WKPage.cpp M Source/WebKit/UIProcess/API/C/WKPagePrivate.h M Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp M Source/WebKit/UIProcess/GPU/GPUProcessProxy.h M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.cpp M Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h M Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp M Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h M Source/WebKit/WebProcess/cocoa/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: ----------- Cherry-pick 78a2a0119f7b. rdar://problem/100335624 [iOS] Fire configurationchange event in case of switching automatically to another microphone while capturing https://bugs.webkit.org/show_bug.cgi?id=244535 rdar://problem/99331061 Reviewed by Eric Carlson. On iOS, the user may change of audio device through control center, while capturing. In that case, the microphone automatically switches to the new device. To expose this to the WebPage, we can use configurationchange event. The flow is: - AVAudioSessionCaptureDeviceManager detects microphone change - CoreAudioSharedUnit notifies CoreAudioCaptureSource in GPUProcess. - UserMediaCaptureManagerProxy is notified by CoreAudioCaptureSource and notifies UserMediaCaptureManager through IPC. - UserMediaCaptureManager in WebProcess notifies its source which notifies its MediaStreamTrack(s). - At the same time, settings and capabilities are updated. We add a mock API to test this code path. Covered by LayoutTests/fast/mediastream/mediastreamtrack-configurationchange.html. * LayoutTests/fast/mediastream/mediastreamtrack-configurationchange-expected.txt: Added. * LayoutTests/fast/mediastream/mediastreamtrack-configurationchange.html: Added. * Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp: (WebCore::MediaStreamTrack::trackConfigurationChanged): * Source/WebCore/Modules/mediastream/MediaStreamTrack.h: * Source/WebCore/Modules/mediastream/MediaStreamTrack.idl: * Source/WebCore/dom/EventNames.h: * Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.cpp: (WebCore::MediaStreamTrackPrivate::sourceConfigurationChanged): * Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h: * Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::RealtimeMediaSource): (WebCore::RealtimeMediaSource::setPersistentId): (WebCore::RealtimeMediaSource::initializePersistentId): * Source/WebCore/platform/mediastream/RealtimeMediaSource.h: * Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h: * Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: (WebCore::AVAudioSessionCaptureDeviceManager::retrieveAudioSessionCaptureDevices const): * Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.cpp: (WebCore::BaseAudioSharedUnit::handleNewCurrentMicrophoneDevice): * Source/WebCore/platform/mediastream/mac/BaseAudioSharedUnit.h: * Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioCaptureSource::handleNewCurrentMicrophoneDevice): * Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.h: * Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.mm: (WebCore::RealtimeMediaSourceCenter::shouldInterruptAudioOnPageVisibilityChange): * Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp: (WebCore::MockRealtimeMediaSourceCenter::triggerMockMicrophoneConfigurationChange): * Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.h: * Source/WebKit/GPUProcess/GPUProcess.cpp: (WebKit::GPUProcess::triggerMockMicrophoneConfigurationChange): * Source/WebKit/GPUProcess/GPUProcess.h: * Source/WebKit/GPUProcess/GPUProcess.messages.in: * Source/WebKit/UIProcess/API/C/WKPage.cpp: (WKPageTriggerMockMicrophoneConfigurationChange): * Source/WebKit/UIProcess/API/C/WKPagePrivate.h: * Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: * Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp: (WebKit::GPUProcessProxy::triggerMockMicrophoneConfigurationChange): * Source/WebKit/UIProcess/GPU/GPUProcessProxy.h: * Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.cpp: (WebKit::RemoteRealtimeMediaSource::configurationChanged): * Source/WebKit/WebProcess/cocoa/RemoteRealtimeMediaSource.h: * Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp: (WebKit::UserMediaCaptureManager::sourceConfigurationChanged): * Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h: * Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.messages.in: * Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::triggerMockMicrophoneConfigurationChange): * Tools/WebKitTestRunner/InjectedBundle/TestRunner.h: * Tools/WebKitTestRunner/TestController.cpp: (WTR::TestController::triggerMockMicrophoneConfigurationChange): * Tools/WebKitTestRunner/TestController.h: * Tools/WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): Canonical link: https://commits.webkit.org/254035@main Canonical link: https://commits.webkit.org/252432.806@safari-7614.3.7.2-branch Commit: f18d06522d0b5e169ba457a991da634f9c44bc85 https://github.com/WebKit/WebKit/commit/f18d06522d0b5e169ba457a991da634f9c44bc85 Author: Youenn Fablet <youe...@gmail.com> Date: 2022-11-12 (Sat, 12 Nov 2022) Changed paths: M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h M Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm M Tools/TestWebKitAPI/Tests/WebKit/getUserMedia.html Log Message: ----------- Cherry-pick 3142453d3762. rdar://problem/100335624 enumerateDevices may return filtered devices even if page is capturing https://bugs.webkit.org/show_bug.cgi?id=244713 rdar://problem/99484964 Reviewed by Eric Carlson. Stop using m_grantedRequests for enumerateDevices since it might be reset to ask for prompting again. Instead, manage a HashSet<FrameID> to store whether a particular document can get access to the whole information. We still reset this hash set in case we are ordered to stop capture. * Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::grantRequest): (WebKit::UserMediaPermissionRequestManagerProxy::resetAccess): (WebKit::UserMediaPermissionRequestManagerProxy::searchForGrantedRequest const): (WebKit::UserMediaPermissionRequestManagerProxy::updateStoredRequests): (WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionInvalidRequest): (WebKit::UserMediaPermissionRequestManagerProxy::shouldChangeDeniedToPromptForCamera const): (WebKit::UserMediaPermissionRequestManagerProxy::shouldChangeDeniedToPromptForMicrophone const): (WebKit::UserMediaPermissionRequestManagerProxy::wasGrantedVideoOrAudioAccess): (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): (WebKit::UserMediaPermissionRequestManagerProxy::captureStateChanged): (WebKit::UserMediaPermissionRequestManagerProxy::watchdogTimerFired): * Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.h: * Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm: * Tools/TestWebKitAPI/Tests/WebKit/getUserMedia.html: Canonical link: https://commits.webkit.org/254165@main Canonical link: https://commits.webkit.org/252432.807@safari-7614.3.7.2-branch Commit: b171154b284e77a5fafab7fd9cf34af21713ac1b https://github.com/WebKit/WebKit/commit/b171154b284e77a5fafab7fd9cf34af21713ac1b Author: Philippe Normand <ph...@igalia.com> Date: 2022-11-12 (Sat, 12 Nov 2022) Changed paths: M Source/WebCore/platform/mediastream/RealtimeMediaSource.h M Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.cpp M Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.h 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/gstreamer/RealtimeIncomingVideoSourceGStreamer.h Log Message: ----------- Cherry-pick e6b4012424bf. rdar://problem/100335624 [GStreamer][WebRTC] Events forwarding between end-point and its consumers https://bugs.webkit.org/show_bug.cgi?id=247126 Reviewed by Xabier Rodriguez-Calvar. We need to relay upstream events coming from depayloaders to webrtcbin and we also need to relay downstream events from webrtcbin to the incoming media sources. This should help improving RTP retransmission, for instance. RealtimeIncomingSourceGStreamer now directly inherits from RealtimeMediaSource in order to avoid duplication of the downstream event handling in each sub-class. * Source/WebCore/platform/mediastream/RealtimeMediaSource.h: * Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp: * Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.cpp: (WebCore::RealtimeIncomingAudioSourceGStreamer::RealtimeIncomingAudioSourceGStreamer): * Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.h: * Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.cpp: (WebCore::RealtimeIncomingSourceGStreamer::RealtimeIncomingSourceGStreamer): (WebCore::RealtimeIncomingSourceGStreamer::registerClient): (WebCore::RealtimeIncomingSourceGStreamer::handleUpstreamEvent): (WebCore::RealtimeIncomingSourceGStreamer::handleDownstreamEvent): * Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.h: Canonical link: https://commits.webkit.org/256149@main Canonical link: https://commits.webkit.org/252432.808@safari-7614.3.7.2-branch Commit: 04bf4b29d7b3ed0f476c62673bd1bcbb801d831f https://github.com/WebKit/WebKit/commit/04bf4b29d7b3ed0f476c62673bd1bcbb801d831f Author: Eric Carlson <eric.carl...@apple.com> Date: 2022-11-12 (Sat, 12 Nov 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/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: ----------- Cherry-pick 0ee91ab89adb. rdar://problem/100335624 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 Canonical link: https://commits.webkit.org/252432.809@safari-7614.3.7.2-branch Commit: afee474aa1d5a1644e26783e7c223cc4f2396bbf https://github.com/WebKit/WebKit/commit/afee474aa1d5a1644e26783e7c223cc4f2396bbf Author: Youenn Fablet <youe...@gmail.com> Date: 2022-11-12 (Sat, 12 Nov 2022) Changed paths: M Source/WebCore/Modules/mediastream/RTCNetworkManager.h M Source/WebCore/dom/Document.cpp M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.cpp M Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.h Log Message: ----------- Cherry-pick f394e0a05ff1. rdar://problem/99799545 Explicitly close a document RTCNetworkManager on document teardown https://bugs.webkit.org/show_bug.cgi?id=247413 rdar://99799545 Reviewed by Eric Carlson. The combination of keeping a WeakPtr of a ThreadSafeRefCounted is problematic, as we might have lost the last Ref/RefPtr (hence the object is scheduled to be deleted) but we still have a non null reference via a WeakPtr, which we could potentially create a new Ref on it. We fix the particular issue here by closing explicitly LibWebRTCNetworkManager which will remove the LibWebRTCNetworkManager from the WebRTCMonitor WeakHashSet. Add ASSERTs to ensure close is called before destroying LibWebRTCNetworkManager. * Source/WebCore/Modules/mediastream/RTCNetworkManager.h: * Source/WebCore/dom/Document.cpp: (WebCore::Document::commonTeardown): * Source/WebKit/WebProcess/Network/webrtc/LibWebRTCNetworkManager.cpp: (WebKit::LibWebRTCNetworkManager::getOrCreate): (WebKit::LibWebRTCNetworkManager::LibWebRTCNetworkManager): (WebKit::LibWebRTCNetworkManager::~LibWebRTCNetworkManager): (WebKit::LibWebRTCNetworkManager::close): Canonical link: https://commits.webkit.org/256319@main Canonical link: https://commits.webkit.org/252432.810@safari-7614.3.7.2-branch Commit: 54fd7630e37ac8f17fcbf4f2f1b4d48a306f3988 https://github.com/WebKit/WebKit/commit/54fd7630e37ac8f17fcbf4f2f1b4d48a306f3988 Author: Myles C. Maxfield <mmaxfi...@apple.com> Date: 2022-11-12 (Sat, 12 Nov 2022) Changed paths: A LayoutTests/imported/w3c/web-platform-tests/encoding/resources/unsupported-labels.window.js A LayoutTests/imported/w3c/web-platform-tests/encoding/unsupported-labels-expected.txt A LayoutTests/imported/w3c/web-platform-tests/encoding/unsupported-labels.html A LayoutTests/platform/gtk/imported/w3c/web-platform-tests/encoding/unsupported-labels-expected.txt M Source/WebCore/PAL/pal/text/TextCodecICU.cpp Log Message: ----------- Cherry-pick 996fc9db28be. rdar://problem/100893154 The EUC-TW encoding doesn't have a canonical name https://bugs.webkit.org/show_bug.cgi?id=246242 rdar://100893154 Reviewed by Alex Christensen. ucnv_getCanonicalName("EUC-TW", "IANA") is returning nullptr, which is causing us to memcmp(nullptr, ...). This patch reorganizes the file to call ucnv_getName() in the situations where ucnv_getCanonicalName() is returning nullptr, thereby elliminating the need for all the special cases. Test: imported/w3c/web-platform-tests/encoding/unsupported-labels.html * Source/WebCore/PAL/pal/text/TextCodecICU.cpp: (PAL::TextCodecICU::registerCodecs): (PAL::TextCodecICU::TextCodecICU): Canonical link: https://commits.webkit.org/256438@main Canonical link: https://commits.webkit.org/252432.811@safari-7614.3.7.2-branch Commit: 9fe521470468a397539a5a4846b413625cf7cfff https://github.com/WebKit/WebKit/commit/9fe521470468a397539a5a4846b413625cf7cfff Author: David Degazio <d_dega...@apple.com> Date: 2022-11-12 (Sat, 12 Nov 2022) Changed paths: A JSTests/stress/intl-locale-invalid-hourCycles.js M Source/JavaScriptCore/runtime/IntlLocale.cpp Log Message: ----------- Cherry-pick 86fbeb6fcd63. rdar://problem/102031379 Intl.Locale.prototype.hourCycles leaks empty JSValue to script https://bugs.webkit.org/show_bug.cgi?id=247562 rdar://102031379 Reviewed by Mark Lam. We currently don't check if IntlLocale::hourCycles returns a null JSArray, which allows it to be encoded as an empty JSValue and exposed to user code. This patch throws a TypeError when udatpg_open returns a failed status. * JSTests/stress/intl-locale-invalid-hourCycles.js: Added. (main): * Source/JavaScriptCore/runtime/IntlLocale.cpp: (JSC::IntlLocale::hourCycles): Canonical link: https://commits.webkit.org/256473@main Canonical link: https://commits.webkit.org/252432.812@safari-7614.3.7.2-branch Commit: a17447cf7bafa43153abe62e790b90207147197a https://github.com/WebKit/WebKit/commit/a17447cf7bafa43153abe62e790b90207147197a Author: Justin Michaud <justin_mich...@apple.com> Date: 2022-11-12 (Sat, 12 Nov 2022) Changed paths: A JSTests/stress/delete-cache-error.js A JSTests/stress/get-own-property-slot-cache-error.js A JSTests/stress/get-property-cache-error.js M Source/JavaScriptCore/runtime/ErrorInstance.cpp M Source/JavaScriptCore/runtime/ErrorInstance.h Log Message: ----------- Cherry-pick 28686e63de0d. rdar://problem/101906709 Error() ICs should not cache special properties. https://bugs.webkit.org/show_bug.cgi?id=247699 Reviewed by Yusuke Suzuki. HasOwnProperty/DeleteProperty are not always cacheable for special Error() properties like column. These special properties are materialized on-demand in materializeErrorInfoIfNeeded, but this function's behaviour can be changed by Error.stackTraceLimit without causing a structure transition or firing watchpoints. That is, we cannot cache property misses, and we cannot assume HasOwnProperty is deterministic for a given structure if we are using one of these properties. * Source/JavaScriptCore/runtime/ErrorInstance.cpp: (JSC::ErrorInstance::deleteProperty): * Source/JavaScriptCore/runtime/ErrorInstance.h: Canonical link: https://commits.webkit.org/256519@main Canonical link: https://commits.webkit.org/252432.813@safari-7614.3.7.2-branch Commit: 8aeadeaaadb30125cead91fae26f782d72418f22 https://github.com/WebKit/WebKit/commit/8aeadeaaadb30125cead91fae26f782d72418f22 Author: Eric Carlson <eric.carl...@apple.com> Date: 2022-11-12 (Sat, 12 Nov 2022) Changed paths: M Source/WebKit/UIProcess/WebPageProxy.cpp Log Message: ----------- Cherry-pick ff70798d7add. rdar://problem/100335624 REGRESSION (256161@main): [ macOS Debug ] TestWebKitAPI.GPUProcess.OnlyLaunchesGPUProcessWhenNecessaryMediaFeatureDetection is a consistent failure https://bugs.webkit.org/show_bug.cgi?id=247775 rdar://102221029 Reviewed by Darin Adler and John Wilander. * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didCommitLoadForFrame): Use `m_userMediaPermissionRequestManager` instead of `userMediaPermissionRequestManager()`` so we don't create the manager, and thus the GPU process, if it doesn't already exist. Canonical link: https://commits.webkit.org/256591@main Canonical link: https://commits.webkit.org/252432.814@safari-7614.3.7.2-branch Commit: ca37ec8163d9de378db43f4b50c146fdbdb2c8dd https://github.com/WebKit/WebKit/commit/ca37ec8163d9de378db43f4b50c146fdbdb2c8dd Author: Alan Coon <alanc...@apple.com> Date: 2022-11-12 (Sat, 12 Nov 2022) Changed paths: M Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp Log Message: ----------- Cherry-pick 082f404b4d5a. rdar://problem/100335624 Apply build fix. rdar://problem/100335624 Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:316:39: error: no member named 'object' in 'WTF::ObjectIdentifier<WebCore::FrameIdentifierType>' Canonical link: https://commits.webkit.org/252432.818@safari-7614.3.7.0-branch Canonical link: https://commits.webkit.org/252432.815@safari-7614.3.7.2-branch Commit: a2d05241c8c42a65a7b470b4d5c862f2ce030cfc https://github.com/WebKit/WebKit/commit/a2d05241c8c42a65a7b470b4d5c862f2ce030cfc Author: Alan Coon <alanc...@apple.com> Date: 2022-11-14 (Mon, 14 Nov 2022) Changed paths: M Source/JavaScriptCore/Configurations/Version.xcconfig M Source/ThirdParty/ANGLE/Configurations/Version.xcconfig M Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig M Source/WebCore/Configurations/Version.xcconfig M Source/WebCore/PAL/Configurations/Version.xcconfig M Source/WebGPU/Configurations/Version.xcconfig M Source/WebInspectorUI/Configurations/Version.xcconfig M Source/WebKit/Configurations/Version.xcconfig M Source/WebKitLegacy/mac/Configurations/Version.xcconfig Log Message: ----------- Versioning. WebKit-7614.3.7.2.2 Canonical link: https://commits.webkit.org/252432.816@safari-7614.3.7.2-branch Commit: b38b5029a2a01e91f9512ae36b90c8f839c1f999 https://github.com/WebKit/WebKit/commit/b38b5029a2a01e91f9512ae36b90c8f839c1f999 Author: Alan Coon <alanc...@apple.com> Date: 2022-11-14 (Mon, 14 Nov 2022) Changed paths: M LayoutTests/platform/wk2/webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt M LayoutTests/webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt M Source/WTF/Scripts/Preferences/WebPreferences.yaml M Source/WebCore/editing/cocoa/WebContentReaderCocoa.mm M Source/WebCore/loader/DocumentLoader.cpp M Source/WebCore/loader/DocumentLoader.h M Source/WebCore/loader/ResourceLoader.cpp M Source/WebCore/loader/archive/ArchiveResourceCollection.cpp M Source/WebCore/loader/archive/ArchiveResourceCollection.h M Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp M Source/WebCore/loader/archive/cf/LegacyWebArchive.h M Source/WebCore/page/SecurityOrigin.cpp M Source/WebKit/UIProcess/API/C/WKPreferences.cpp M Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h M Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm M Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h M Source/WebKitLegacy/mac/WebView/WebView.mm M Tools/TestWebKitAPI/Tests/mac/LoadWebArchive.mm Log Message: ----------- Revert 1eb47513afb8. rdar://problem/88406961 This reverts commit cd668439f112861d26613c1adca9629fd89c1c35. Canonical link: https://commits.webkit.org/252432.817@safari-7614.3.7.2-branch Compare: https://github.com/WebKit/WebKit/compare/2d1cbc7d47a9%5E...b38b5029a2a0 _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes